org.apache.flink.table.api.ValidationException: Could not find any factory for identifier 'jdbc' that implements 'org.apache.flink.table.factories.DynamicTableFactory' in the classpath.
Available factory identifiers are:
blackhole
datagen
filesystem
mysql-cdc
print
python-input-format
复制代码
JDBC SQL 连接器:JDBC 连接器(利用地点)允许利用 JDBC 驱动向恣意类型的关系型数据库读取或者写入数据。针对关系型数据库怎样通过创建 JDBC 连接器来实行 SQL 查询。假如在 DDL 中定义了主键,JDBC sink 将以 upsert 模式与外部系统交换 UPDATE/DELETE 消息;否则,它将以 append 模式与外部系统交换消息且不支持消耗 UPDATE/DELETE 消息。下载JDBC SQL连接器的依靠包,放到目录 {flink-1.18.0}/lib/ 下,用于利用JDBC SQL连接器连接MySQL的sink库。 Mysql连接器选项:
OptionRequiredDefaultTypeDescriptionconnectorrequired(none)String指定要利用的连接器, 这里应该是 'mysql-cdc'.hostnamerequired(none)StringMySQL 数据库服务器的 IP 地点或主机名。usernamerequired(none)String连接到 MySQL 数据库服务器时要利用的 MySQL 用户的名称。passwordrequired(none)String连接 MySQL 数据库服务器时利用的密码。database-namerequired(none)String要监视的 MySQL 服务器的数据库名称。数据库名称还支持正则表达式,以监视多个与正则表达式匹配的表。table-namerequired(none)String必要监视的 MySQL 数据库的表名。表名支持正则表达式,以监视满足正则表达式的多个表。注意:MySQL CDC 连接器在正则匹配表名时,会把用户填写的 database-name, table-name 通过字符串 `\\.` 连接成一个全路径的正则表达式,然后利用该正则表达式和 MySQL 数据库中表的全限定名进行正则匹配。portoptional3306IntegerMySQL 数据库服务器的整数端标语。server-idoptional(none)String读取数据利用的 server id,server id 可以是个整数或者一个整数范围,好比 '5400' 或 '5400-5408', 建议在 'scan.incremental.snapshot.enabled' 参数为启用时,设置成整数范围。因为在当前 MySQL 集群中运行的所有 slave 节点,标记每个 salve 节点的 id 都必须是唯一的。 以是当连接器参加 MySQL 集群作为另一个 slave 节点(并且具有唯一 id 的情况下),它就可以读取 binlog。 默认情况下,连接器会在 5400 和 6400 之间天生一个随机数,但是我们建议用户明确指定 Server id。scan.incremental.snapshot.enabledoptionaltrueBoolean增量快照是一种读取表快照的新机制,与旧的快照机制相比, 增量快照有许多长处,包罗: (1)在快照读取期间,Source 支持并发读取, (2)在快照读取期间,Source 支持进行 chunk 粒度的 checkpoint, (3)在快照读取之前,Source 不必要数据库锁权限。 假如希望 Source 并行运行,则每个并行 Readers 都应该具有唯一的 Server id,以是 Server id 必须是类似 `5400-6400` 的范围,并且该范围必须大于并行度。 请查阅 增量快照读取 章节了解更多详细信息。scan.incremental.snapshot.chunk.sizeoptional8096Integer表快照的块大小(行数),读取表的快照时,捕捉的表被拆分为多个块。scan.snapshot.fetch.sizeoptional1024Integer读取表快照时每次读取数据的最大条数。scan.startup.modeoptionalinitialStringMySQL CDC 消耗者可选的启动模式, 合法的模式为 "initial","earliest-offset","latest-offset","specific-offset" 和 "timestamp"。 请查阅 启动模式 章节了解更多详细信息。scan.startup.specific-offset.fileoptional(none)String在 "specific-offset" 启动模式下,启动位点的 binlog 文件名。scan.startup.specific-offset.posoptional(none)Long在 "specific-offset" 启动模式下,启动位点的 binlog 文件位置。scan.startup.specific-offset.gtid-setoptional(none)String在 "specific-offset" 启动模式下,启动位点的 GTID 集合。scan.startup.specific-offset.skip-eventsoptional(none)Long在指定的启动位点后必要跳过的事件数量。scan.startup.specific-offset.skip-rowsoptional(none)Long在指定的启动位点后必要跳过的数据行数量。server-time-zoneoptional(none)String数据库服务器中的会话时区, 比方: "Asia/Shanghai". 它控制 MYSQL 中的时间戳类型怎样转换为字符串。 更多请参考 这里. 假如没有设置,则利用ZoneId.systemDefault()来确定服务器时区。debezium.min.row. count.to.stream.resultoptional1000Integer在快照操作期间,连接器将查询每个包罗的表,以天生该表中所有行的读取事件。 此参数确定 MySQL 连接是否将表的所有用果拉入内存(速率很快,但必要大量内存), 或者效果是否必要流式传输(传输速率可能较慢,但适用于非常大的表)。 该值指定了在连接器对效果进行流式处理之前,表必须包罗的最小行数,默认值为1000。将此参数设置为`0`以跳过所有表大小检查,并始终在快照期间对所有用果进行流式处理。connect.timeoutoptional30sDuration连接器在尝试连接到 MySQL 数据库服务器后超时前应等待的最长时间。connect.max-retriesoptional3Integer连接器应重试以创建 MySQL 数据库服务器连接的最大重试次数。connection.pool.sizeoptional20Integer连接池大小。jdbc.properties.*optional20String转达自定义 JDBC URL 属性的选项。用户可以转达自定义属性,如 'jdbc.properties.useSSL' = 'false'.heartbeat.intervaloptional30sDuration用于跟踪最新可用 binlog 偏移的发送心跳事件的间隔。debezium.*optional(none)String将 Debezium 的属性转达给 Debezium 嵌入式引擎,该引擎用于从 MySQL 服务器捕捉数据更改。 For example: 'debezium.snapshot.mode' = 'never'. 查察更多关于 Debezium 的 MySQL 连接器属性scan.incremental.close-idle-reader.enabledoptionalfalseBoolean是否在快照结束后关闭空闲的 Reader。 此特性必要 flink 版本大于即是 1.14 并且 'execution.checkpointing.checkpoints-after-tasks-finish.enabled' 必要设置为 true。 Jdbc连接器选项:
参数是否必填默认值类型描述 connector