У меня есть данные о событиях из Кафки со следующей структурой, которые я хочу использовать в 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",
...
}
}
, что, однако, приводит к тому, что кампании поступают в виде строки.Я не смог найти способ сгенерировать из него массив с помощью выражения jq в flattenSpec и не нашел ничего похожего на выражение разбиения строк, которое можно использовать в качестве transformSpec.
Есть предложения?