0

我有以下场景,1个Apache Kafka主题,其中推送了多种类型的事件。德鲁伊将从该主题中获取并根据时间戳进行聚合。

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

类型 1,

{“时间戳”:“07-08-2016”,“服务”:“注册”,“no_of_events”:8}

{“时间戳”:“08-08-2016”,“服务”:“注册”,“no_of_events”:10}

类型 2,

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

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

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

欢迎对设计提出任何其他建议:)

Q2:为了更好地理解,spec 文件中是否可以有多个数据源?

提前致谢!!

4

1 回答 1

0

Q2:是的,您绝对可以在同一个规范文件中拥有两个数据源。您可以在规范文件中将它们作为“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"
    }
}
于 2016-08-09T23:02:31.200 回答