我在kafka中有一个特定的消息格式。它们是插入符号^分隔的。现在,为了使用宁静来解析它,我使用了下面的解析规范。
"parser" : {
"type" : "string",
"parseSpec" : {
"timestampSpec" : {
"column" : "datetime",
"format" : "yyyy-MM-dd HH:mm:ss"
},
"dimensionsSpec" : {
"dimensions" : [],
"dimensionExclusions" : [
"datetime"
]
},
"format" : "javascript",
"function" : "function(str) { var parts = str.split('^'); return { key1:parts[0],key2:parts[1],key3:parts[2] } }"
}
},但是,当我通过kafka producer插入一行并检查静态日志时。它显示droppedCount=1。所以它正在丢弃消息。我在浏览器中检查了上面的javascript函数。它工作得很好。这里会有什么问题呢?
发布于 2016-11-12 04:01:15
我不认为它支持javascript格式。
我的经验是,宁静不支持全套德鲁伊配置,而文档中明确提到了"spec -没有ioConfig的德鲁伊摄取规范“,并链接到德鲁伊配置文档。我花了太多时间在非工作特性上。我甚至在调试器中单步通过代码来运行它。
我推荐最近添加到德鲁伊的Kafka extension。你不需要宁静。我相信Druid支持的所有格式都可以使用这种方法。请试一试。
宁静已经很长时间没有更新了。我建议转移到本地的卡夫卡摄取。
https://stackoverflow.com/questions/40237473
复制相似问题