我有以下场景,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文件中包含多个数据源?
提前致谢!!
答案 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"
}
}