Flink Table API& SQL编程指南(自定义Sources & Sinks)

TableSource

TableSource提供对存储在外部系统(数据库,键值存储,消息队列)或文件中的数据的访问的通用接口。在TableEnvironment中注册TableSource后,可以通过Table API或SQL查询对其进行访问。它提供了表的schema 以及与该表的schema 映射到行的记录。

TableSource[T] {
  def getTableSchema: TableSchema
  def getReturnType: TypeInformation[T]
  def explainSource: String
}
  • getTableSchema() - 返回产生的表的Schema,即表的字段的名称和类型。字段类型是使用Flink的DataType定义的。
  • getReturnType()- 返回DataStream(StreamTableSource)或DataSet(BatchTableSource)的物理类型以及TableSource生成的记录。
  • explainSource() - 返回描述TableSource的字符串。此方法是可选的,仅用于显示目的。

TableSource接口将逻辑表Schema与返回的DataStream或DataSet的物理类型分开。因此,表Schema的所有字段(getTableSchema())必须映射到具有相应物理返回类型(getReturnType())类型的字段。默认情况下,此映射是基于字段名称完成的。例如,一个TableSource用两个字段[name:String,size:Integer]定义一个表模式,它需要一个TypeInformation,该字段至少包含两个名为name和size的字段,类型分别为String和Integer,这可以是PojoTypeInfo或RowTypeInfo,它们具有两个名为name和size且具有匹配类型的字段。

但是,某些类型(例如Tuple或CaseClass类型)确实

你可能感兴趣的:(Flink实时计算)