如何解决KSQL嵌套json需要将密钥保存在多行中
以下是指标列中的示例数据:
{
"data": "[{'val': '[{'TS': '52343223486','val': '[{ 'param': 'abc'}]'},{'TS': '9876543234','val': '[{ 'param1': 'xyz'}]'}]}]"
}
我需要在多行中填充每条记录。
结果:
指标
"{"TS": "52343223486","val": "{ "param": "abc"}"}"
"{"TS": "98765432434","val": "{ "param1": "xyz"}"}"
是否有查询可以实现?
解决方法
根据this article,您可以拆分指标,例如:
CREATE STREAM my_stream (
data struct<
val array<struct<
ts varchar,val varchar
>>
>
) WITH (KAFKA_TOPIC='my_topic',VALUE_FORMAT='JSON');
SELECT EXPLODE(DATA->VAL) FROM my_stream EMIT CHANGES;
因此,您可以创建新的流,例如:
CREATE STREAM my_metrics AS SELECT EXPLODE(DATA->VAL) EMIT FROM my_stream EMIT CHANGES;
P.S。 您输入的必须是有效的 JSON ,例如:
{"data": {"val": [{"TS": "52343223486","val": {"param": "abc"}},{"TS": "9876543234","val": {"param1": "xyz"}}]}}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。