1

我的一个主题有一个 string-json 作为键 - {"city":"X","id":22}。在我的 ksql 语句中,我想将其提取到 2 个不同的字段而不是一个,以便以后过滤和加入。在文档中,它似乎允许我只将整个字符串粘贴到键中,而不是允许将其格式化为 JSON(就像 FORMAT_VALUE 一样),见下文......对于这个优雅的解决方案有什么建议吗?

VALUE_FORMAT(必需)指定主题中消息值的序列化格式。支持的格式:JSON、DELIMITED 和 AVRO

KEY 将 Kafka 主题中的消息键与 KSQL 流中的列相关联。

4

1 回答 1

5

您应该能够使用列EXTRACTJSONFIELD上的 UDF执行此操作ROWKEY。该ROWKEY列是架构中的“列”,其中包含给定行的键。EXTRACTJSONFIELDUDF 允许您从包含 json 字符串的列中提取字段。因此,对于您的示例,您可以运行:

SELECT EXTRACTJSONFIELD(ROWKEY, '$.city') AS city, EXTRACTJSONFIELD(ROWKEY, '$.id') AS id FROM FOO;
于 2018-04-16T04:37:31.693 回答