本文为您介绍Flink全托管支持的表类型的定义和连接器。
表类型的定义
阿里云实时计算Flink版通过Flink SQL定义表对上下游存储进行映射或者使用Datastream API进行连接来实现读写。支持以下几种Flink SQL表类型的定义:
源表(Source Table)
Flink作业的数据输入表,是计算的驱动来源。
不能作为维表,必须作为驱动表来推进后续计算。产生的记录决定了计算链的触发。
通常是需要进行转换计算的大规模业务数据,量级可以达到千万级甚至亿级别。
以流式数据的形式输入,表示连续不断的新数据,可以来自消息队列、数据库变更日志等。
包含需要Join和关联的关键字段,如用户ID、订单ID等业务主键。
维表(Dimension Table)
辅助表,用于丰富和扩展源表的数据。
不能作为主驱动表,只能辅助补充源表。维表本身不驱动计算。
数据规模通常较小,可以是静态表也可以是低吞吐的流表,数据量级可能在GB到TB级别。
提供对业务数据的额外补充信息,如用户姓名、产品详情、区域信息等。
通过与源表进行Join连接,可以丰富源表的信息,形成更加详细的宽表。
结果表(Sink Table)
Flink作业输出的结果数据表。
存储着经过计算转换后的最终结果数据,如聚合结果、过滤后的数据等。
可以输出到数据库、消息队列、文件等外部系统,用于后续的分析。
是整个作业处理链的最终产出和输出,存储了计算的输出。
例如,有如下源表和维表:
源表:订单数据表,包含用户ID、订单ID、订单金额等信息。
维表:用户信息表,包含用户ID、用户名、地址等信息。
作业首先从订单数据源表读取实时订单数据,将订单数据流与用户信息静态维表进行Join,然后按地区聚合统计订单总额,最后将统计结果写入结果表。
在这个作业中,订单表作为驱动源表输入,用户信息表作为静态维表,统计结果表作为作业最终输出。订单表不能作为维表,必须作为驱动表输入数据;而用户信息表不能作为驱动表,只能作为辅助维表补充订单数据。
支持的连接器
连接器 | 支持类型 | 运行模式 | API类型 | 是否支持更新或删除结果表数据 | ||
源表 | 维表 | 结果表 | ||||
√ | × | √ | 流模式 | SQL、DataStream和数据摄入YAML | 不支持更新和删除结果表数据,只支持插入数据。 | |
√ | √ | √ | 流模式和批模式 | SQL、DataStream和数据摄入YAML | 是 | |
√ | × | √ | 流模式 | SQL和DataStream | 不支持更新和删除结果表数据,只支持插入数据。 | |
说明 支持连接RDS MySQL版、PolarDB MySQL版及自建MySQL。 | √ | √ | √ | 流模式 | SQL、DataStream和数据摄入YAML | 是 |
说明 后续将不再支持云数据库RDS MySQL版连接器,建议您直接使用MySQL连接器。 | × | √ | √ | 流模式和批模式 | SQL | 是 |
√ | √ | √ | 流模式和批模式 | SQL和DataStream | 不支持更新和删除结果表数据,只支持插入数据。 | |
√ | × | √ | 流模式和批模式 | SQL和DataStream | 不支持更新和删除结果表数据,只支持插入数据。 | |
× | √ | √ | 流模式 | SQL | 是 | |
√ | × | √ | 流模式 | SQL和数据摄入YAML | 是 | |
√ | √ | √ | 流模式和批模式 | SQL和DataStream | 是 | |
× | √ | √ | 流模式和批模式 | SQL | 是 | |
× | × | √ | 流模式和批模式 | SQL | 是 | |
× | × | √ | 流模式和批模式 | SQL和数据摄入YAML | 是 | |
× | × | √ | 流模式和批模式 | SQL | 是 | |
× | √ | √ | 流模式 | SQL | 是 | |
√ | × | × | 流模式和批模式 | SQL | 不涉及 | |
√ | × | √ | 流模式 | SQL和DataStream | 不支持更新和删除结果表数据,只支持插入数据。 | |
√ | √ | √ | 流模式 | SQL | 是 | |
√ | √ | √ | 流模式和批模式 | SQL | 是 | |
√ | × | √ | 流模式和批模式 | SQL、DataStream和数据摄入YAML | 是 | |
√ | × | × | 流模式 | SQL | 不涉及 | |
× | √ | √ | 流模式和批模式 | SQL | 是 | |
× | √ | √ | 流模式 | SQL | 是 | |
√ | × | √ | 流模式和批模式 | SQL和DataStream | 不支持更新和删除结果表数据,只支持插入数据。 | |
√ | √ | × | 流模式和批模式 | SQL | 不涉及 | |
√ | × | √ | 流模式和批模式 | SQL | 是 | |
× | × | √ | 流模式 | SQL | 否 | |
√ | √ | √ | 流模式和批模式 | SQL和数据摄入YAML | 是 | |
√ | × | √ | 流模式和批模式 | SQL和DataStream | 是 | |
× | × | √ | 流模式 | SQL | 是 | |
√ | √ | √ | 流模式和批模式 | SQL | 是 | |
√ | √ | √ | 流模式 | SQL和DataStream | 是 | |
× | × | √ | 流模式和批模式 | SQL | 是 |