Apache flink 什么';四个Flink Table API/SQL数据类型包之间的关系是什么?

Apache flink 什么';四个Flink Table API/SQL数据类型包之间的关系是什么?,apache-flink,flink-sql,Apache Flink,Flink Sql,Flink Table/SQL有很多关于数据类型系统的包,包括: org.apache.flink.table.api.DataTypes org.apache.flink.table.api.Types org.apache.flink.table.types.DataType org.apache.flink.table.data 我对软件包之间的关系感到困惑,有人能给我一些技巧来理解Flink开发者的想法吗?非常感谢 org.apache.flink.table.api.Types:包

Flink Table/SQL有很多关于数据类型系统的包,包括:

  • org.apache.flink.table.api.DataTypes
  • org.apache.flink.table.api.Types
  • org.apache.flink.table.types.DataType
  • org.apache.flink.table.data

我对软件包之间的关系感到困惑,有人能给我一些技巧来理解Flink开发者的想法吗?非常感谢

org.apache.flink.table.api.Types
:包含与SQL类型不太一致的旧类型系统。不要再使用它了。它很快就会被移除


org.apache.flink.table.api.DataTypes
:表示
数据类型的主要api类。它包含所有可用数据类型、构建器和良好文档的完整列表


org.apache.flink.table.types.DataType
:由API生成的容器类
org.apache.flink.table.API.DataTypes


org.apache.flink.table.data
:用于存储实际有效负载的结构。数据类型描述元数据(输入和输出类型等)。此包包含运行时和Flink提供的连接器使用的内部结构。使用这些类需要一些高级知识,这就是为什么
Row
是Java表API中的默认表示,而不是
RowData
来表示表的行。作为一个用户,这个软件包对你来说并不重要。内部数据结构处理二进制数据。作为一个用户,你可以用
row
表示行,它们将被Flink转换成
RowData

我仍然对
org.apache.Flink.types.row
org.apache.Flink.table.data.RowData
之间的关系感到困惑,这种混淆可能是因为对JavaAPI类型和表API类型之间关系的误解?你能详细解释一下吗?谢谢我又加了一句话:“作为一个用户,这个软件包与您的关系不大。内部数据结构处理二进制数据。作为一个用户,您可以用
row
表示row,它们将由Flink转换为
RowData
。”我希望这能让事情变得更清楚。