我有来自 Kafka 的具有以下结构的事件数据,我想在 Druid 中摄取
{
"event": "some_event",
"id": "1",
"parameters": {
"campaigns": "campaign1, campaign2",
"other_stuff": "important_info"
}
}
具体来说,我想将维度“活动”从逗号分隔的字符串转换为数组/多值维度,以便可以很好地对其进行过滤和分组。到目前为止,我的摄取如下
{
"type": "kafka",
"dataSchema": {
"dataSource": "event-data",
"parser": {
"type": "string",
"parseSpec": {
"format": "json",
"timestampSpec": {
"column": "timestamp",
"format": "posix"
},
"flattenSpec": {
"fields": [
{
"type": "root",
"name": "parameters"
},
{
"type": "jq",
"name": "campaigns",
"expr": ".parameters.campaigns"
}
]
}
},
"dimensionSpec": {
"dimensions": [
"event",
"id",
"campaigns"
]
}
},
"metricsSpec": [
{
"type": "count",
"name": "count"
}
],
"granularitySpec": {
"type": "uniform",
...
}
},
"tuningConfig": {
"type": "kafka",
...
},
"ioConfig": {
"topic": "production-tracking",
...
}
}
然而,这会导致广告系列被作为字符串摄取。我既找不到在 flattenSpec 中使用 jq 表达式从中生成数组的方法,也找不到可以用作 transformSpec 的字符串拆分表达式之类的东西。
有什么建议么?