Clickhouse/Kafka:将JSON对象类型读入字段



我在Kafka主题中有这样的数据:

{..., fields: { "a": "aval", "b": "bval" } }

如果我创建 Kafka 引擎表,则在使用如下字段定义时会出现错误:

fields String

因为它(正确(无法将其识别为字符串:

2018.07.09 17:09:54.362061 [ 27 ] <Error> void DB::StorageKafka::streamThread(): Code: 26, e.displayText() = DB::Exception: Cannot parse JSON string: expected opening quote: (while read the value of key fields): (at row 1)

由于 ClickHouse 目前没有MapJSONObject类型,如果我事先不知道内部字段的名称(示例中的"a"或"b" - 所以我看不到嵌套结构的帮助(,最好的方法是什么?

显然,目前ClickHouse不支持复杂的JSON解析。

从ClickHouse Github中的这个答案:

Clickhouse使用快速而肮脏的JSON解析器,它不如何读取复杂的深层结构。因此,它不能跳过该字段,因为它不知道嵌套结构的结束位置。 不好意思。:/

所以你应该用一些外部工具预处理你的json,你可以为Clickhouse做出贡献并改进JSON解析器。

最新更新