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