如何将嵌套的json数据加载到druid中的单个列中

时间:2019-12-19 14:10:56

标签: apache druid

我正在尝试在Apache druid中加载嵌套的json数据:

数据->

{
    "a": "a_data",
    "b": "b_data",
    "c_blob_Column": {"aaaa"{"k":"sample"{"c":"sample2"}}}}

Spec -->

{ "type" : "kafka", "dataSchema" : { "dataSource" : "blob", "parser" : { "type" : "string", "parseSpec" : { "format" : "json", "dimensionsSpec" : { "dimensions" : [ "a", "b", "c_blob_Column"

        ]
      },
      "timestampSpec": {
        "column": "timestamp",
        "format": "iso"
      }
    }
  },
  "metricsSpec" : [],
  "granularitySpec" : {
    "type" : "uniform",
    "segmentGranularity" : "DAY",
    "queryGranularity" : "none",
     "rollup" : false
  }
},
"ioConfig" : {
    "topic":"blob_topic",
  "consumerProperties":{
     "bootstrap.servers":"<local server>"
  },
  "appendToExisting" : false,
  "useEarliestOffset": true,
  "taskDuration": "PT15M"
},
"tuningConfig" : {
   "type" : "kafka",
  "maxRowsPerSegment" : 5000000,
  "maxRowsInMemory" : 25000
}
}

输出列-> a,b,c_blob_Column,__ time

我能够加载数据,但是问题出在c_blob_Column列中,而数据并没有以json形式的数据形式出现。请有人帮助我找到如何加载json blob数据吗?

1 个答案:

答案 0 :(得分:1)

您可以使用jq表达式:

"flattenSpec": {
      "fields": [
        {
          "type": "jq",
          "name": "c_blob_Column",
          "expr": ".c_blob_Column | tojson"
        }
      ]
    }