Pinot -将字符串转换为可遍历的JSON

kognpnkq  于 2023-07-01  发布在  其他
关注(0)|答案(1)|浏览(134)

我有一个来自Kafka流的字符串,它看起来很像JSONFORMAT文档的用法示例。
我现在纠结的是如何将它转换成一个 traversable JSON,这样我就可以在文档的示例中将“age”值放入表中的一列。
我尝试了以下方法:
jsonPath(JSONFORMAT(meta), '$.age')"
jsonPath(TOJSONMAPSTR(meta), '$.age')"
它是JSONFORMAT和jsonPath函数的组合。
我已经验证了当我的Kafka流中的数据实际上被格式化为JSON时,jsonPath函数可以按预期工作。"jsonPath(source, '$.init_sync_state')",所以我不怀疑这是我的麻烦的根本原因。
我希望这个函数组合首先将字符串转换为JSON,然后从特定路径提取值。但是,JSONFORMAT似乎并没有将数据转换为JSON。我也试过TOJSONMAPSTR,但结果是一样的。
有没有一种方法可以将字符串转换为Pinot中的JSON结构?我错过了什么明显的东西吗?
任何帮助都是非常感谢的。谢谢你!

cgyqldqp

cgyqldqp1#

已解决:
解决方案是使用jsonIndex将JSON展平为STRING列,然后使用jsonPath访问它。
例如,在上面的例子中,我们会这样做:

"jsonIndexConfigs": {
   "meta": {
       "maxLevels": 1,
       "excludeArray": false,
       "disableCrossArrayUnnest": true,
       "includePaths": null,
       "excludePaths": null,
       "excludeFields": null
       }
}

然后使用如下所示的转换列将age插入到我的列中:

{
   "columnName": "age",
   "transformFunction": "jsonPath(document, '$.age')"
},

相关问题