数据湖探索 DLI-MySql CDC:参数说明

时间:2024-04-18 20:33:04

参数说明

表2 源表参数说明

参数

是否必选

默认值

数据类型

说明

connector

String

connector类型,需配置为'mysql-cdc'。

hostname

String

MySQL 数据库服务器的 IP 地址或主机名。

username

String

连接到 MySQL 数据库服务器时要使用的 MySQL 用户的名称。

password

String

连接 MySQL 数据库服务器时使用的密码。

database-name

String

要监视的 MySQL 服务器的数据库名称。

数据库名称还支持正则表达式,以监视多个与正则表达式匹配的表。

  • 前缀匹配:^(test).* 匹配前缀为test的数据库名,例如test1、test2等。
  • 后缀匹配:.*[p$] 匹配后缀为p的数据库名,例如cdcp、edcp等。
  • 特定匹配:txc 匹配具体的数据库名。

table-name

String

需要监视的 MySQL 数据库的表名。表名支持正则表达式,以监视满足正则表达式的多个表。

注意:MySQL CDC 连接器在正则匹配表名时,会把用户填写的 database-name, table-name 通过字符串 `\\.` 连接成一个全路径的正则表达式,然后使用该正则表达式和 MySQL 数据库中表的全限定名进行正则匹配。

  • 前缀匹配:^(test).* 匹配前缀为test的表名,例如test1、test2等。
  • 后缀匹配:.*[p$] 匹配后缀为p的表名,例如cdcp、edcp等。
  • 特定匹配:txc 匹配具体的表名。

port

3306

Integer

MySQL 数据库服务器的整数端口号。

server-id

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.enabled

true

Boolean

增量快照是一种读取表快照的新机制,与旧的快照机制相比, 增量快照有许多优点,包括:

  • 在快照读取期间,Source 支持并发读取
  • 在快照读取期间,Source 支持进行 chunk 粒度的 checkpoint
  • 在快照读取之前,Source 不需要数据库锁权限。

    如果希望 Source 并行运行,则每个并行 Readers 都应该具有唯一的 Server id,所以 Server id 必须是类似 `5400-6400` 的范围,并且该范围必须大于并行度。

scan.incremental.snapshot.chunk.size

8096

Integer

表快照的块大小(行数),读取表的快照时,捕获的表被拆分为多个块。

scan.snapshot.fetch.size

1024

Integer

读取表快照时每次读取数据的最大条数。

scan.startup.mode

initial

String

MySQL CDC 消费者可选的启动模式, 合法的模式为 "initial","earliest-offset","latest-offset","specific-offset" 和 "timestamp"。

  • initial (默认):在第一次启动时对受监视的数据库表执行初始快照,并继续读取最新的 binlog。
  • earliest-offset:跳过快照阶段,从可读取的最早 binlog 位点开始读取。
  • latest-offset:首次启动时,从不对受监视的数据库表执行快照, 连接器仅从 binlog 的结尾处开始读取,这意味着连接器只能读取在连接器启动之后的数据更改。
  • specific-offset:跳过快照阶段,从指定的 binlog 位点开始读取。位点可通过 binlog 文件名和位置指定,或者在 GTID 在集群上启用时通过 GTID 集合指定。
  • timestamp:跳过快照阶段,从指定的时间戳开始读取 binlog 事件。

scan.startup.specific-offset.file

String

在 "specific-offset" 启动模式下,启动位点的 binlog 文件名。

scan.startup.specific-offset.pos

Long

在 "specific-offset" 启动模式下,启动位点的 binlog 文件位置。

scan.startup.specific-offset.gtid-set

String

在 "specific-offset" 启动模式下,启动位点的 GTID 集合。

scan.startup.specific-offset.skip-events

Long

在指定的启动位点后需要跳过的事件数量。

scan.startup.specific-offset.skip-rows

Long

在指定的启动位点后需要跳过的数据行数量。

server-time-zone

String

数据库服务器中的会话时区, 例如: "Asia/Shanghai". 它控制 MYSQL 中的时间戳类型如何转换为字符串。 更多请参考 这里.

如果没有设置,则使用ZoneId.systemDefault()来确定服务器时区。

debezium.min.row. count.to.stream.result

1000

Integer

在快照操作期间,连接器将查询每个包含的表,以生成该表中所有行的读取事件。

此参数确定 MySQL 连接是否将表的所有结果拉入内存(速度很快,但需要大量内存), 或者结果是否需要流式传输(传输速度可能较慢,但适用于非常大的表)。 该值指定了在连接器对结果进行流式处理之前,表必须包含的最小行数,默认值为1000。

将此参数设置为`0`以跳过所有表大小检查,并始终在快照期间对所有结果进行流式处理。

connect.timeout

30s

Duration

连接器在尝试连接到 MySQL 数据库服务器后超时前应等待的最长时间。

connect.max-retries

3

Integer

连接器应重试以建立 MySQL 数据库服务器连接的最大重试次数。

connection.pool.size

20

Integer

连接池大小。

jdbc.properties.*

String

传递自定义 JDBC URL 属性的选项。

用户可以传递自定义属性,如 'jdbc.properties.useSSL' = 'false'.

heartbeat.interval

30s

Duration

用于跟踪最新可用 binlog 偏移的发送心跳事件的间隔。

debezium.*

String

将 Debezium 的属性传递给 Debezium 嵌入式引擎,该引擎用于从 MySQL 服务器捕获数据更改。

例如: 'debezium.snapshot.mode' = 'never'. 查看更多关于 Debezium 的 MySQL 连接器属性

scan.incremental.close-idle-reader.enabled

false

Boolean

是否在快照结束后关闭空闲的 Reader。 此特性需要'execution.checkpointing.checkpoints-after-tasks-finish.enabled' 需要设置为 true。

support.huaweicloud.com/sqlref-flink-dli/dli_08_15059.html