我理解最佳实践是第一种,先读出来array,再用table function展开成多行。
实际上把array转成多行是Flink 内置支持的,可以参考[1]的”Expanding arrays into a relation“部分

[1]
https://ci.apache.org/projects/flink/flink-docs-master/dev/table/sql/queries.html#joins

王 outlook <deadwi...@outlook.com> 于2020年7月6日周一 下午9:29写道:

> 像如下这种JSON输入,
>
> {
>   "id": 1,
>   "many_names": [
>     {"name": "foo"},
>     {"name": "bar"}
>   ]
> }
>
> 输出表两行  id 1, name foo  |  id 1, name bar
>
> 最佳实践是从Kafka读到后,调用TableFunction这个UDTF转出多行?
> 还是Flink SQL有更方便的操作,从Source读出来就能把数组展开。
>
>
> 来自 Outlook<http://aka.ms/weboutlook>
>


-- 

Best,
Benchao Li

回复