Почему задание Flink SQL меняется с "Выполняется" на "Завершено" при запросе таблицы базы данных SQL Server в задании Flink SQL?

Когда мы выбираем любую таблицу в Flink SQL CLI, которая является источником для таблицы базы данных SQL Server, почему задание Flink завершается после того, как оно извлекает все записи из таблицы базы данных? Можно ли заставить его работать, чтобы он мог извлекать последние данные из таблиц базы данных?


person Amit Shahi    schedule 24.12.2020    source источник


Ответы (1)


JdbcTableSource в коннекторе JDBC определен как ограниченный источник, что означает, что он завершится после выборки всех записей, а не отслеживает изменение таблицы базы данных SQL Server и затем непрерывно отправляет журнал изменений таблицы базы данных.

Возможно, вам нужен коннектор flink CDC, он поддерживает чтение снимка таблицы базы данных и продолжает читать бинлоги таблиц. Flink также поддерживает формат CDC с Kafka (например, тема kafa, содержащая таблицу binglog, которая загружается с помощью инструментов CDC), вы можете непрерывно читать таблицу lates из таблицы Kafka, которая определена в Flink SQL.

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

person leonard    schedule 25.12.2020