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

时间:2018-07-09 17:12:26

标签: json apache-kafka clickhouse

我在Kafka主题中拥有此类数据:

user.getIdToken(true)

如果我创建一个Kafka Engine表,则在使用像这样的字段定义时出现错误:

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

因为它(正确)不能将其识别为字符串:

fields String

由于ClickHouse当前没有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) Map类型,如果我不事先知道内部字段的名称(“示例中的a”或“ b”-因此我看不到嵌套结构有帮助)?

1 个答案:

答案 0 :(得分:0)

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

来自ClickHouse Github中的answer

  

Clickhouse使用快速且肮脏的JSON解析器,该解析器不读取复杂的深层结构。因此它不能跳过该字段,因为它不知道嵌套结构在哪里结束。   抱歉。 :/

     

因此,您应该使用一些外部工具对json进行预处理,以便为Clickhouse做出贡献并改善JSON解析器。