德鲁伊模式概念 - 在同一个规范文件

时间:2016-08-08 11:11:39

标签: apache-kafka druid

我有以下场景,1个Apache Kafka主题,其中推送了多种类型的事件。德鲁伊将从这个主题中选择并基于时间戳进行聚合。

比如说以下是kafka主题中的消息,

输入1,

{"时间戳" :" 07-08-2016"," service" :"注册"," no_of_events" :8}

{"时间戳" :" 08-08-2016"," service" :"注册"," no_of_events" :10}

输入2,

{"时间戳" :" 08-08-2016","用户" :" xyz"," no_of_events" :3}

{"时间戳" :" 08-08-2016","用户" :" abc"," no_of_events" :2}

Q1:我可以在指向同一主题的事件的同一规范文件中编写两个解析器吗?如果是,那么spec文件的结构是什么?

欢迎任何有关设计的其他建议:)

Q2:另外要了解更好,是否可以在spec文件中包含多个数据源?

提前致谢!!

1 个答案:

答案 0 :(得分:0)

Q2:是的,你绝对可以在同一个spec文件中有两个数据源。您可以在spec文件中将它们列为“dataSources”属性下的数组:

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

Q1:你有两个不同的数据源指向同一个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"
    }
}