我的一个主题有一个字符串json作为键 - {" city":" X"," id":22}。 在我的ksql语句中,我想将它提取到2个不同的字段而不是一个,以便我可以在以后过滤和加入。在文档中,它似乎允许我只将整个字符串粘贴到键中,而不是允许将其格式化为JSON(就像FORMAT_VALUE一样),请参阅下面的内容...对此优雅解决方案的任何建议?
VALUE_FORMAT(必需)指定主题中消息值的序列化格式。支持的格式:JSON,DELIMITED和AVRO
KEY将Kafka主题中的消息密钥与KSQL流中的列关联。
答案 0 :(得分:4)
您应该可以使用EXTRACTJSONFIELD
列上的ROWKEY
UDF执行此操作。 ROWKEY
列是架构中的“列”,其中包含给定行的键。 EXTRACTJSONFIELD
UDF允许您从包含json字符串的列中提取字段。因此,对于您的示例,您可以运行:
SELECT EXTRACTJSONFIELD(ROWKEY, '$.city') AS city, EXTRACTJSONFIELD(ROWKEY, '$.id') AS id FROM FOO;