Debezium MySQL源连接器配置属性
可以使用多种配置属性来配置MySQL Source Connector。
-
database.hostname
MySQL数据库服务器的IP地址或主机名。
- 类型:字符串
- 重要性:高
-
database.port
MySQL数据库服务器的整数端口号。
- 类型:整数
- 重要性:低
- 默认:
3306
-
database.user
连接到MySQL数据库服务器时使用的用户名。
- 类型:字符串
- 重要性:高
-
database.password
连接到MySQL数据库服务器时使用的密码。
- 类型:密码
- 重要性:高
-
database.server.name
逻辑名称,用于标识特定的MySQL数据库服务器/集群并为其提供名称空间。逻辑名称在所有其他连接器上都应该是唯一的,因为它用作该连接器发出的所有Kafka主题名称的前缀。默认为
host:_port_
,其中host是database.hostname
属性的值,port是属性的值database.port
。Confluent建议将默认名称更改为有意义的名称。- 类型:字符串
- 重要性:低
- 默认:
database.hostname:database.port
-
database.server.id
该数据库客户端的数字ID,在MySQL群集中所有当前正在运行的数据库进程中,该ID必须唯一。该连接器作为另一个服务器(具有此唯一ID)加入MySQL数据库集群,因此它可以读取binlog。默认情况下,在
5400
和之间会生成一个随机数6400
。- 类型:整数
- 重要性:低
- 默认值:随机
-
database.history.kafka.topic
连接器将在其中存储数据库架构历史记录的Kafka主题的全名。
- 类型:字符串
- 重要性:高
-
database.history.kafka.bootstrap.servers
连接器将用于建立与Kafka群集的初始连接的主机/端口对的列表。该连接将用于检索先前由连接器存储的数据库架构历史,并用于写入从源数据库读取的每个DDL语句。这应该指向Kafka Connect进程使用的同一Kafka群集。
- 类型:字符串列表
- 重要性:高
-
database.whitelist
与要监视的数据库名称匹配的正则表达式的可选逗号分隔列表。白名单中未包括的任何数据库名称都将从监视中排除。默认情况下,将监视所有数据库。不可与一起使用
database.blacklist
。- 类型:字符串列表
- 重要性:低
- 默认值:空字符串
-
database.blacklist
与数据库名称匹配的正则表达式的可选逗号分隔列表,这些名称与要从监视中排除的数据库名称匹配。黑名单中未包括的任何数据库名称都将受到监视。不可与一起使用
database.whitelist
。- 类型:字符串列表
- 重要性:低
- 默认值:空字符串
-
table.whitelist
可选的用逗号分隔的正则表达式列表,与要监视的表的标准表标识符匹配。白名单中未包含的任何表都将从监视中排除。每个标识符的格式为
schemaName.tableName
。默认情况下,连接器将监视每个受监视模式中的每个非系统表。不可与一起使用table.blacklist
。- 类型:字符串列表
- 重要性:低
- 默认值:空字符串
-
table.blacklist
可选的以逗号分隔的正则表达式列表,与要从监视中排除的表的标准表标识符匹配。黑名单中未包含的任何表都将受到监控。每个标识符的格式为
databaseName.tableName
。不可与一起使用table.whitelist
。- 类型:字符串列表
- 重要性:低
- 默认值:空字符串
-
column.blacklist
可选的用逗号分隔的正则表达式列表,该列表与应从更改事件消息值中排除的列的全限定名称匹配。列的完全限定名称的格式为
databaseName.tableName.columnName
或databaseName.schemaName.tableName.columnName
。- 类型:字符串列表
- 重要性:低
- 默认值:不适用
-
column.truncate.to.length.chars
可选的用逗号分隔的正则表达式列表,与基于字符的列的标准名称匹配。如果字段值长于指定的字符数,则更改事件消息值中的列值将被截断。可以在单个配置中使用具有不同长度的多个属性,尽管每种属性的长度必须为正整数。列的全限定名称采用
databaseName.tableName.columnName
或的形式databaseName.schemaName.tableName.columnName
。- 类型:字符串列表
- 重要性:低
- 默认值:不适用
-
column.mask.with.length.chars
可选的用逗号分隔的正则表达式列表,与基于字符的列的标准名称匹配。列值在更改事件消息值中替换为由指定数量的星号(*)字符组成的字段值。可以在单个配置中使用具有不同长度的多个属性,尽管每种属性的长度必须为正整数。列的全限定名称采用
databaseName.tableName.columnName
或的形式databaseName.schemaName.tableName.columnName
。- 类型:字符串列表
- 重要性:低
- 默认值:不适用
-
column.propagate.source.type
可选的以逗号分隔的正则表达式列表,与正则表达式的列的完全限定名称匹配,这些列的原始类型和长度应作为参数添加到发出的更改消息中的相应字段模式中。模式参数
__debezium.source.column.type
,__debezium.source.column.length
和_debezium.source.column.scale
分别用于传播的原始类型的名称和长度(对于可变宽度的类型),。用于适当调整接收器数据库中相应列的大小。列的全限定名称采用databaseName.tableName.columnName
或的形式databaseName.schemaName.tableName.columnName
。- 类型:字符串列表
- 重要性:低
- 默认值:不适用
-
time.precision.mode
时间,日期和时间戳可以不同的精度表示。设置包括以下内容:
-
adaptive_time_microseconds
(默认值),它将完全捕获数据库中的日期,日期时间和时间戳记值。它使用基于数据库列类型的毫秒,微秒或纳秒精度值。TIME类型字段是一个例外,始终捕获为微秒。 -
adaptive
(不建议使用)使用毫秒,微秒或纳秒精度值捕获与数据库中的时间和时间戳值完全相同的值。这些值基于数据库列的类型。 -
connect
使用Kafka Connect内置的时间,日期和时间戳记表示时间和时间戳记值。无论数据库列的精度如何,它都使用毫秒精度。 -
类型:字符串
-
重要性:低
-
默认:
adaptive_time_microseconds
-
-
decimal.handling.mode
指定连接器应如何处理
DECIMAL
和NUMERIC
列的值。设置包括以下内容:-
precise
(默认值)使用java.math.BigDecimal
更改事件中以二进制形式表示的值精确地表示它们;或double使用double值表示它们,这可能会导致精度损失,但使用起来容易得多。 -
string
将值编码为易于使用的格式化字符串,但有关实型的语义信息丢失。 -
类型:字符串
-
重要性:低
-
默认:
precise
-
-
bigint.unsigned.handling.mode
指定在更改事件中应如何表示BIGINT UNSIGNED列。设置包括以下内容:
-
precise
用于java.math.BigDecimal
表示值,这些值在更改事件中使用二进制表示和Kafka Connect的org.apache.kafka.connect.data.Decimal
类型进行编码。 -
long
(默认值)使用Java表示的值long
,该值可能无法提供精度,但在使用者中使用起来会容易得多。long
通常是首选设置。precise
仅当使用大于2 ^ 63的值(这些值不能使用传送long
)时,才应使用该设置。 -
类型:字符串
-
重要性:低
-
默认:
long
-
-
include.schema.changes
一个布尔值,它指定连接器是否应将数据库模式中的更改发布到与数据库服务器ID同名的Kafka主题。每个模式更改都将使用包含数据库名称且其值包含DDL语句的键来记录。这与连接器内部记录数据库历史记录的方式无关。
- 类型:字符串
- 重要性:低
- 默认:
true
-
include.query
布尔值,用于指定连接器是否应包括生成更改事件的原始SQL查询。注意:此选项要求配置MySQL并将binlog_rows_query_log_events选项设置为ON。对于快照过程生成的事件将不存在查询。 **警告:**启用此选项可能会通过将原始SQL语句包括在change事件中来公开明确列入黑名单或掩盖的表或字段。
- 类型:字符串
- 重要性:低
- 默认:
false
-
event.deserialization.failure.handling.mode
指定连接器在反序列化二进制日志事件期间应如何应对异常。
fail
传播异常(指示有问题的事件及其binlog偏移量),导致连接器停止。warn
导致有问题的事件被跳过,有问题的事件及其binlog偏移被记录(确保记录器设置为WARN
或ERROR
级别)。ignore
导致有问题的事件被跳过。fail
propagates the exception (indicating the problematic event and its binlog offset), causing the connector to stop.warn
WARNERROR
ignore- 类型:字符串
- 重要性:低
- 默认:
fail
-
inconsistent.schema.handling.mode
指定连接器对与内部模式表示形式中不存在的表相关的binlog事件应如何反应(即内部表示形式与数据库不一致)
fail
引发异常(指示有问题的事件及其binlog偏移量),从而导致连接器停止。warn
导致有问题的事件被跳过,有问题的事件及其binlog偏移被记录(确保记录器设置为WARN
或ERROR
级别)。ignore
导致有问题的事件被跳过。- 类型:字符串
- 重要性:低
- 默认:
fail
-
max.queue.size
正整数值,它指定阻塞队列的最大大小,从数据库日志中读取的更改事件在写入到Kafka之前将被放入该队列中。例如,当对Kafka的写入速度较慢或Kafka不可用时,此队列可以为binlog阅读器提供背压。队列中出现的事件不包括在此连接器定期记录的偏移量中。默认值为
8192
,并且应始终大于该max.batch.size
属性中指定的最大批处理大小。-
类型:整数
-
重要性:低
-
默认:
8192
-
-
max.batch.size
正整数值,指定在此连接器的每次迭代期间应处理的每批事件的最大大小。默认为
2048
。-
类型:整数
-
重要性:低
-
默认:
2048
-
-
poll.interval.ms
正整数值,指定连接器在每次迭代期间应等待的毫秒数,以便出现新的更改事件。默认为
500
毫秒。-
类型:整数
-
重要性:低
-
默认:
500
-
-
connect.timeout.ms
一个正整数,它指定连接器在尝试连接到MySQL数据库服务器之后应等待的最长时间(毫秒)。默认为30秒。
-
类型:字符串
-
重要性:低
-
默认:
30
-
-
gtid.source.includes
用逗号分隔的正则表达式列表,该列表与GTID集中用于查找MySQL服务器中binlog位置的源UUID匹配。仅将使用与这些包含模式之一匹配的源的GTID范围。不可与一起使用
gtid.source.excludes
。- 类型:字符串列表
- 重要性:低
-
gtid.source.excludes
用逗号分隔的正则表达式列表,该列表与GTID集中用于查找MySQL服务器中binlog位置的源UUID匹配。仅使用源与这些排除模式都不匹配的GTID范围。不可与一起使用
gtid.source.includes
。-
类型:字符串列表
-
重要性:低
-
-
gtid.new.channel.position
设置
latest
为时,并且当连接器看到新的GTID通道时,连接器将从该GTID通道中最后执行的事务开始使用。如果设置为earliest
,则Debezium连接器将从第一个可用(未清除)的GTID位置开始读取该通道。earliest
当您有一个主动-被动MySQL设置(其中Debezium连接到主数据库)时,此功能非常有用,在这种情况下,在故障转移期间,具有新UUID(和GTID通道)的辅助数据库开始在连接Debezium之前接收写入。使用最新时,这些写入将丢失。- 类型:字符串
- 重要性:低
- 默认:
latest
-
tombstones.on.delete
控制是否应在删除事件之后生成逻辑删除事件。设置为
true
时,删除操作由删除事件和随后的逻辑删除事件表示。设置为false
时,仅发送删除事件。发出逻辑删除事件(默认行为)后,一旦源记录被删除,Kafka便可以完全删除与给定键有关的所有事件。- 类型:字符串
- 重要性:低
- 默认:
true
-
ddl.parser.mode
控制在构建捕获的数据库结构的元模型时应使用哪个解析器来解析DDL语句。可以设置为
legacy
(对于旧的手写解析器实现)或antlr
(对于Debezium 0.8.0中引入的基于Antlr的实现)。虽然旧版解析器仍然是Debezium 0.8.x的默认解析器,但是请尝试新的实现并报告遇到的任何问题。新的解析器是默认的0.9版本,随后在将来的版本中删除了旧的实现。- 类型:字符串
- 重要性:低
- 默认值:
legacy
对于Debezium 0.8.x和antlr
Debezium 0.9(及更高版本)
可以在Debezium 连接器属性文档中找到其他高级配置属性和详细信息。
原文
https://docs.confluent.io/current/connect/debezium-connect-mysql/mysql_source_connector_config.html