必需的 Debezium MySQL 连接器配置属性

必需的 Debezium MySQL 连接器配置属性

官网地址: https://debezium.io/documentation/reference/1.5/connectors/mysql.html
name

连接器的唯一名称。尝试使用相同名称再次注册失败。所有 Kafka Connect 连接器都需要此属性。

connector.class

连接器的 Java 类的名称。始终io.debezium.connector.mysql.MySqlConnector为 MySQL 连接器指定 。

tasks.max

默认 1

应为此连接器创建的最大任务数。MySQL 连接器始终使用单个任务,因此不使用此值,因此默认值始终是可接受的。

database.hostname

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

database.port

默认 3306

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

database.user

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

database.password

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

database.server.name

标识并为 Debezium 捕获更改的特定 MySQL 数据库服务器/集群提供命名空间的逻辑名称。逻辑名称在所有其他连接器中应该是唯一的,因为它用作所有接收此连接器发出的事件的 Kafka 主题名称的前缀。此名称中只允许使用字母数字字符和下划线。

database.server.id

默认: 随机的

此数据库客户端的数字 ID,在 MySQL 集群中所有当前运行的数据库进程中必须是唯一的。此连接器作为另一台服务器(具有此唯一 ID)加入 MySQL 数据库集群,以便它可以读取 binlog。默认情况下,会生成 5400 到 6400 之间的随机数,但建议明确设置一个值。

database.include.list

默认: 空字符串

一个可选的、以逗号分隔的正则表达式列表,与要为其捕获更改的数据库的名称相匹配。连接器不会捕获名称不在database.include.list. 默认情况下,连接器捕获所有数据库中的更改。不要同时设置database.exclude.list连接器配置属性。

database.exclude.list

默认: 空字符串

一个可选的、以逗号分隔的正则表达式列表,与您不想捕获更改的数据库的名称相匹配。连接器捕获名称不在database.exclude.list. 不要同时设置database.include.list连接器配置属性。

table.include.list

默认: 空字符串

一个可选的、以逗号分隔的正则表达式列表,与您要捕获其更改的表的完全限定表标识符相匹配。连接器不会捕获任何未包含在table.include.list. 每个标识符的格式为databaseName。表名。默认情况下,连接器会捕获每个数据库中每个非系统表中的更改,这些更改正在被捕获。不要同时指定table.exclude.list连接器配置属性。

table.exclude.list

默认: 空字符串

一个可选的、以逗号分隔的正则表达式列表,用于匹配您不想捕获其更改的表的完全限定表标识符。连接器捕获未包含在table.exclude.list. 每个标识符的格式为databaseName。表名。不要同时指定table.include.list连接器配置属性。

column.exclude.list

默认: 空字符串

一个可选的、以逗号分隔的正则表达式列表,与列的完全限定名称匹配以从更改事件记录值中排除。列的完全限定名称的格式为databaseName。表名。列名。

column.include.list

默认: 空字符串

一个可选的、以逗号分隔的正则表达式列表,与列的完全限定名称匹配以包含在更改事件记录值中。列的完全限定名称的格式为databaseName。表名。列名。

column.truncate.to.length.chars

默认: 不适用

一个可选的、以逗号分隔的正则表达式列表,与基于字符的列的完全限定名称匹配,如果字段值长于指定的字符数,则这些列的值应在更改事件记录值中被截断。您可以在单个配置中配置具有不同长度的多个属性。长度必须是正整数。列的完全限定名称的格式为databaseName。表名。列名。

column.mask.with.length.chars

默认: 不适用

一个可选的、以逗号分隔的正则表达式列表,与基于字符的列的完全限定名称匹配,这些列的值应在更改事件消息值中替换为由指定数量的星号 ( *) 字符组成的字段值。您可以在单个配置中配置具有不同长度的多个属性。每个长度必须是正整数或零。列的完全限定名称的格式为databaseName。表名。列名。

column.mask.hash.hashAlgorithm.with.salt.salt

不适用

一个可选的、以逗号分隔的正则表达式列表,与基于字符的列的完全限定名称匹配,其值应该是更改事件记录值中的假名。假名由通过应用算法获得的散列值hashAlgorithm和 salt 组成salt。

根据使用的散列函数,在对数据进行假名化的同时保持参照完整性。Java 密码体系结构标准算法名称文档的MessageDigest 部分描述了支持的哈希函数。散列结果会自动缩短为列的长度。

您可以在单个配置中配置具有不同长度的多个属性。每个长度必须是正整数或零。列的完全限定名称的格式为databaseName。表名。列名。例如:

column.mask.hash.SHA-256.with.salt.CzQMA0cB5K = inventory.orders.customerName, inventory.shipment.customerName

CzQMA0cB5K是随机选择的盐。
根据配置的hashAlgorithm、选定的salt和实际数据集,生成的屏蔽数据集可能不会完全匿名。

column.propagate.source.type

默认: 不适用

一个可选的、以逗号分隔的正则表达式列表,与列的完全限定名称匹配,列的原始类型和长度应作为参数添加到发出的更改事件记录中的相应字段模式中。这些架构参数:

__Debezium.source.column.type

__Debezium.source.column.length

__Debezium.source.column.scale

分别用于传播可变宽度类型的原始类型名称和长度。这对于正确调整接收器数据库中相应列的大小很有用。列的完全限定名称具有以下形式之一:

数据库名称。表名。列名

数据库名称。架构名称。表名。列名

datatype.propagate.source.type

默认: 不适用

一个可选的、以逗号分隔的正则表达式列表,与列的特定于数据库的数据类型名称匹配,这些列的原始类型和长度应作为参数添加到发出的更改事件记录中的相应字段模式中。这些架构参数:

__debezium.source.column.type

__debezium.source.column.length

__debezium.source.column.scale

分别用于传播可变宽度类型的原始类型名称和长度。这对于正确调整接收器数据库中相应列的大小很有用。完全限定的数据类型名称具有以下形式之一:

数据库名称。表名。类型名称

数据库名称。架构名称。表名。类型名称

查看MySQL 连接器如何映射MySQL 特定数据类型名称列表的数据类型。

time.precision.mode

默认: adaptive_time_microseconds

时间、日期和时间戳可以用不同类型的精度表示,包括:(

adaptive_time_microseconds默认)根据数据库列的类型使用毫秒、微秒或纳秒精度值捕获与数据库中完全相同的日期、日期时间和时间戳值,但 TIME 类型的字段除外,它们总是以微秒为单位捕获。

adaptive(已弃用)根据数据库列的类型使用毫秒、微秒或纳秒精度值准确地捕获数据库中的时间和时间戳值。

connect总是使用 Kafka Connect 内置的时间、日期和时间戳表示来表示时间和时间戳值,无论数据库列的精度如何,它们都使用毫秒精度。

decimal.handling.mode

默认: precise

指定连接器应如何处理DECIMAL和NUMERIC列的值:(

precise默认)使用java.math.BigDecimal二进制形式的更改事件中表示的值精确表示它们。

double使用double值表示它们,这可能会导致精度损失,但更易于使用。

string将值编码为格式化字符串,这很容易使用,但会丢失有关真实类型的语义信息。

bigint.unsigned.handling.mode

默认: long

指定 BIGINT UNSIGNED 列应如何在更改事件中表示。可能的设置有:

long使用 Java 的 表示值long,这可能无法提供精确度,但在消费者中易于使用。long通常是首选设置。

precise用于java.math.BigDecimal表示值,这些值通过使用二进制表示和 Kafka Connect 的org.apache.kafka.connect.data.Decimal类型在更改事件中编码。在处理大于 2^63 的值时使用此设置,因为这些值无法通过使用long.

include.schema.changes

默认: true

布尔值,指定连接器是否应将数据库架构中的更改发布到与数据库服务器 ID 同名的 Kafka 主题。使用包含数据库名称且其值包含 DDL 语句的键来记录每个模式更改。这与连接器内部记录数据库历史的方式无关。

include.query

默认: false

布尔值,指定连接器是否应包括生成更改事件的原始 SQL 查询。

如果您将此选项设置为 ,true那么您还必须将该binlog_rows_query_log_events选项设置为 来配置 MySQL ON。当include.query是 时true,对于快照进程生成的事件不存在查询。

设置include.query为true可能会公开通过在更改事件中包含原始 SQL 语句而显式排除或屏蔽的表或字段。因此,默认设置为false。

event.deserialization.failure.handling.mode

默认: fail

指定连接器在二进制日志事件反序列化期间应如何对异常做出反应。

fail传播异常,指示有问题的事件及其二进制日志偏移,并导致连接器停止。

warn记录有问题的事件及其二进制日志偏移,然后跳过该事件。

ignore传递有问题的事件并且不记录任何内容。

inconsistent.schema.handling.mode

默认: fail

指定连接器应如何对与内部架构表示中不存在的表相关的二进制日志事件做出反应。即内部表示与数据库不一致。

fail抛出一个异常,指示有问题的事件及其二进制日志偏移,并导致连接器停止。

warn记录有问题的事件及其二进制日志偏移量并跳过该事件。

skip传递有问题的事件并且不记录任何内容。

max.queue.size

默认: 8192

正整数值,指定阻塞队列的最大大小,从数据库日志读取的更改事件在写入 Kafka 之前放置在该队列中。例如,当写入 Kafka 很慢或 Kafka 不可用时,此队列可以为 binlog 读取器提供背压。出现在队列中的事件不包括在此连接器定期记录的偏移量中。默认为 8192,并且应始终大于max.batch.size属性指定的最大批量大小。

max.batch.size

默认: 2048

指定在此连接器的每次迭代期间应处理的每批事件的最大大小的正整数值。默认为 2048。

max.queue.size.in.bytes

默认: 0

阻塞队列的最大大小(以字节为单位)的 Long 值。该功能默认是禁用的,如果它设置为正的 long 值,它将被激活。

poll.interval.ms

默认: 1000

正整数值,指定连接器在开始处理一批事件之前应等待新更改事件出现的毫秒数。默认为 1000 毫秒或 1 秒。

connect.timeout.ms

默认: 30000

一个正整数值,指定此连接器在尝试连接到 MySQL 数据库服务器后超时前应等待的最长时间(以毫秒为单位)。默认为 30 秒。

gtid.source.includes

以逗号分隔的正则表达式列表,与用于在 MySQL 服务器中查找 binlog 位置的 GTID 集中的源 UUID 匹配。仅使用源与这些包含模式之一匹配的 GTID 范围。不要同时为 指定设置gtid.source.excludes。

gtid.source.excludes

以逗号分隔的正则表达式列表,与用于在 MySQL 服务器中查找 binlog 位置的 GTID 集中的源 UUID 匹配。仅使用源与这些排除模式中的任何一个都不匹配的 GTID 范围。不要同时为 指定值gtid.source.includes。

tombstones.on.delete

默认:true

控制删除事件后是否跟随逻辑删除事件。

true- 删除操作由删除事件和随后的逻辑删除事件表示。

false- 仅发出删除事件。

删除源记录后,发出墓碑事件(默认行为)允许 Kafka 完全删除与已删除行的键相关的所有事件,以防为主题启用日志压缩。

message.key.columns

默认:不适用

分号分隔的表列表,带有与表列名称匹配的正则表达式。连接器将匹配列中的值映射到它发送到 Kafka 主题的更改事件记录中的关键字段。当表没有主键时,或者当您想根据非主键的字段对 Kafka 主题中的更改事件记录进行排序时,这很有用。

用分号分隔条目。在完全限定的表名及其正则表达式之间插入一个冒号。格式(与只是为了清楚显示空格)为:

数据库名 . 表名 : 正则表达式 ;…

例如:

dbA.table_a:regex_1;dbB.table_b:regex_2;dbC.table_c:regex_3

如果table_a有一id列,并且regex_1是^i(匹配任何列与开始i),连接器将id列中的值映射table_a到连接器发送到 Kafka 的更改事件中的键字段。

binary.handling.mode

默认:字节

指定如何二进制列,例如blob,binary,varbinary,应在变更事件来表示。可能的设置:

bytes将二进制数据表示为字节数组。

base64将二进制数据表示为 base64 编码的字符串。

hex将二进制数据表示为十六进制编码 (base16) 字符串。

Guess you like

Origin blog.csdn.net/weixin_43564627/article/details/118959829