【问题标题】:Clickhouse/Kafka: reading a JSON Object type into a fieldClickhouse/Kafka:将 JSON 对象类型读入字段
【发布时间】:2018-12-17 10:42:35
【问题描述】:

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

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

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

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" 在示例中 - 所以我看不到嵌套结构有帮助)?

【问题讨论】:

标签: json apache-kafka clickhouse


【解决方案1】:

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

来自 ClickHouse Github 中的 answer

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

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

【讨论】:

    猜你喜欢
    • 2020-09-27
    • 2019-11-23
    • 1970-01-01
    • 2017-01-16
    • 1970-01-01
    • 1970-01-01
    • 2014-01-29
    • 2019-07-27
    • 2021-12-04
    相关资源
    最近更新 更多