7、Flink SQL 的 TypeInformation 和 DataType 的映射详解

a)概述

DataStream API 使用 org.apache.flink.API.common.typeinfo.TypeInformation 实例,描述流中传输的记录类型,它定义了如何将记录从一个 DataStream 运算符序列化和反序列化到另一个,它还有助于将状态序列化为保存点和检查点。

表 API 使用自定义数据结构在内部表示记录,并公开 org.apache.flink.Table.types.DataType 用于声明数据结构转换为外部格式,以便在源、接收器、UDF 或 DataStream API 中更容易使用。

DataType 比 TypeInformation 更丰富,因为它还包括有关逻辑 SQL 类型的详细信息,因此在转换过程中会隐式添加一些细节。

表的列名和类型是从数据流的 TypeInformation 自动派生的,使用 DataStream.getType() 检查是否已通过 DataStream API 的反射类型提取功能正确检测到类型信息,如果最外层记录的 TypeInformation 是 CompositeType,则在派生表的架构时,它将在第一级被展平。

b)注意

DataStream API 并不总是能够基于反射提取更具体的 TypeInformation,这通常由通用 Kryo 序列化程序支持的GenericTypeInfo 导致。

例如 Ro

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猫猫爱吃小鱼粮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值