【发布时间】:2021-04-03 01:10:18
【问题描述】:
当我们在 Flink SQL CLI 中选择作为 SQL Server 数据库表的 Source 的任何表时,为什么 Flink 作业从数据库表中获取所有记录后“完成”?是否可以使其“运行”以便从数据库表中获取最新数据?
【问题讨论】:
当我们在 Flink SQL CLI 中选择作为 SQL Server 数据库表的 Source 的任何表时,为什么 Flink 作业从数据库表中获取所有记录后“完成”?是否可以使其“运行”以便从数据库表中获取最新数据?
【问题讨论】:
JDBC连接器中的JdbcTableSource被定义为有界源,这意味着它会在获取所有记录后完成,而不是监控SQL Server数据库表的变化,然后连续发送数据库表的变化日志。
也许flink CDC connector是你想要的,它支持读取数据库表快照并继续读取表binlog。 Flink 还支持 Kafka 的 CDC 格式(例如:一个 kafa 主题,其中包含由 CDC 工具加载的表 binglog),您可以从 Flink SQL 中定义的 Kafka 表中连续读取 lates 表。
Flink 与 CDC 连接器和 CDC 格式配合良好,您可以查找 [1][2] 了解更多信息。
[1] flink-cdc-connector:https://github.com/ververica/flink-cdc-connectors
[2] flink CDC 格式:https://ci.apache.org/projects/flink/flink-docs-release-1.12/dev/table/connectors/formats/debezium.html
【讨论】: