Flink 1.11 支持 RAW 作为 sql 类型,基于此,你可以自己扩展 SE/DE 的逻辑实现部分动态解析[1]

[1] 
https://ci.apache.org/projects/flink/flink-docs-release-1.11/dev/table/types.html#raw

Best,
Danny Chan
在 2020年8月11日 +0800 PM3:40,Zhao,Yi(SEC) <zhaoy...@baidu.com>,写道:
> <>
>
>
> 如上图,field api被标注过期。替换写法被注释掉,使用注视掉的写法会报错如下。
>
> Exception in thread "main" org.apache.flink.table.api.TableException: A raw 
> type backed by type information has no serializable string representation. It 
> needs to be resolved into a proper raw type.
>        at 
> org.apache.flink.table.types.logical.TypeInformationRawType.asSerializableString(TypeInformationRawType.java:97)
>        at org.apache.flink.table.descriptors.Schema.field(Schema.java:88)
>        at jobs.IpGapUserFt2.main(IpGapUserFt2.java:83)
>
> 不清楚有啥解决方法吗?
>
>
> 其次,我这边鼓捣了半天,发现使用json schema貌似也没办法实现整个表的动态结构。
> 我业务中json实际如下:
> {
> “d”:{
>   “key”: value
>     …. … .  .. ..// 此处key动态扩展
> }
> }
> 我大概想法是d作为一个field,类型是map(但好像不支持map?必须用row)。用row呢,又必须指定其所有field,就不是动态扩展字段了。

回复