我有一个表1(源代码是Kafka)事件作为
{
"id": "id-1",
"segs": ["seg-id-1", "segs-id-2"]
}
字符串
我有表2(源代码是Kafka)事件作为
{
"id": "seg-id-1",
"name": "segs-name-1"
}
型
我有我的sql作为
CREATE VIEW IF NOT EXISTS FINAL_UNESTED_WITH_SEGMENTS AS (
SELECT
id
segs_id,
sc.name as segs_name,
from table1 r CROSS JOIN unnest(json_string_array_to_array(segs)) AS SegmentContentTable (unnested_segments_id)
LEFT JOIN table2 sc on (unnested_segments_id = sc.id));
型
这里json_string_array_to_array
是一个自定义UDF,它将JSON字符串转换为数组。
一旦我有了这个,我就可以在这个上面创建一个视图,然后运行select as
inert into final_table
select json_agg_custom('seg_id', unnested_segments_id, 'seg_name', segment_name) as segs
from FINAL_UNESTED_WITH_SEGMENTS group by id;
型
这里的最终汇是Kafka的主题。关于Kafka的主题。我看到两条不同消息出现
{
"id": "id-1"
"segs": [{"id":"seg-id-1", "name":"segs-name-1"}]
}
{
"id": "id-1"
"segs": [{"id":"seg-id-2", "name":"segs-name-2"}]
}
型
要我想看到的是这个,我怎么才能实现这个呢?
{
"id": "id-1",
"segs": [
{
"id": "seg-id-1",
"name": "segs-name-1"
},
{
"id": "seg-id-2",
"name": "segs-name-2"
}
]
}
型
1条答案
按热度按时间zsohkypk1#
自定义udf
json_agg_custom
定义为字符串