druid模式概念-在同一spec文件中使用多个数据源或解析器

rryofs0p  于 2021-06-08  发布在  Kafka
关注(0)|答案(1)|浏览(267)

我有以下场景,1 apache kafka主题,其中推送了多种类型的事件。Druid将从这个主题中提取并基于时间戳进行聚合。
例如,下面是Kafka主题中的信息,
类型1,
{“timestamp”:“07-08-2016”,“service”:“signup”,“无事件”:8}
{“timestamp”:“08-08-2016”,“service”:“signup”,“无事件”:10}
类型2,
{“timestamp”:“08-08-2016”,“user”:“xyz”,“无事件”:3}
{“timestamp”:“08-08-2016”,“user”:“”,“无事件”:2}
问题1:我可以在同一个spec文件中编写两个解析器,指向来自同一主题的事件吗?如果是,spec文件的结构是什么?
欢迎对设计提出任何其他建议:)
问题2:为了更好地理解,spec文件中是否可能有多个数据源?
提前谢谢!!

pcww981p

pcww981p1#

问题2:是的,在同一个spec文件中可以有两个数据源。您可以在spec文件中将它们列为“datasources”属性下的数组:

"dataSources" : [
  {
  "spec" : {
    "dataSchema" : {
      "dataSource" : "Data Souce1"
      ...other stuff
      }
    }
  },
  {
  "spec" : {
    "dataSchema" : {
      "dataSource" : "Data Source 2"
      ...other stuff
    }
  },

问题1:你不想要两个不同的数据源指向同一个Kafka主题吗?我没有试过,但我很确定你可以做到-它们在数据源规范的“属性”部分中指定:

"dataSources" : [
  {
  "spec" : {
    "dataSchema" : {
      "dataSource" : "Data Souce1"
      ...other stuff
      }
    }
    "properties" : {
        "topicPattern.priority" : "1",
        "topicPattern" : "kafka_topic"
    }
  },
{
  "spec" : {
    "dataSchema" : {
      "dataSource" : "Data Souce1"
      ...other stuff
      }
    }
    "properties" : {
        "topicPattern.priority" : "1",
        "topicPattern" : "kafka_topic"
    }
}

相关问题