赞
踩
以下是连接器实例的配置示例,该实例从 192.168.99.100 端口 3306 上的 MySQL 服务器捕获数据,我们在逻辑上将其命名为 fullfillment。通常,您可以通过设置连接器可用的配置属性在 JSON 文件中配置 Debezium MySQL 连接器。
您可以选择为数据库中的架构和表的子集生成事件。或者,您可以忽略、屏蔽或截断包含敏感数据、大于指定大小或不需要的列。
{
"name": "inventory-connector", (1)
"config": {
"connector.class": "io.debezium.connector.mysql.MySqlConnector", (2)
"database.hostname": "192.168.99.100", (3)
"database.port": "3306", (4)
"database.user": "debezium-user", (5)
"database.password": "debezium-user-pw", (6)
"database.server.id": "184054", (7)
"topic.prefix": "fullfillment", (8)
"database.include.list": "inventory", (9)
"schema.history.internal.kafka.bootstrap.servers": "kafka:9092", (10)
"schema.history.internal.kafka.topic": "schemahistory.fullfillment", (11)
"include.schema.changes": "true" (12)
}
}
您可以使用 POST 命令将此配置发送到正在运行的 Kafka Connect 服务。该服务记录配置并启动一个执行以下操作的连接器任务:
要开始运行 MySQL 连接器,请配置连接器配置,并将该配置添加到 Kafka Connect 集群。
先决条件
程序
结果
Debezium MySQL 连接器具有许多配置属性,您可以使用它们来为您的应用程序实现正确的连接器行为。许多属性都有默认值。有关属性的信息组织如下:
所需的连接器配置属性
高级连接器配置属性
数据库架构历史连接器配置属性,用于控制 Debezium 如何处理从数据库架构历史主题读取的事件。
控制数据库驱动程序行为的传递数据库驱动程序属性。
除非有默认值,否则需要以下配置属性。
属性 | 默认值 | 描述 |
---|---|---|
name | 无默认值 | 连接器的唯一名称。尝试使用相同名称再次注册失败。所有 Kafka Connect 连接器都需要此属性。 |
connector.class | 无默认值 | 连接器的 Java 类的名称。始终为 MySQL 连接器指定 io.debezium.connector.mysql.MySqlConnector。 |
tasks.max | 1 | 应为此连接器创建的最大任务数。 MySQL 连接器始终使用单个任务,因此不使用此值,因此默认值始终可以接受。 |
connector.adapter | mysql | 要使用的连接器适配器模式。 |
database.protocol | jdbc:mysql | 驱动程序连接字符串使用 JDBC 协议来连接数据库。 |
database.jdbc.driver | com.mysql.cj.jdbc.Driver | 要使用的驱动程序类名称。当使用连接器附带的替代驱动程序时,这会很有用。 |
database.hostname | 无默认值 | MySQL数据库服务器的IP地址或主机名。 |
database.port | 3306 | MySQL 数据库服务器的整数端口号。 |
database.user | 无默认值 | 连接到 MySQL 数据库服务器时使用的 MySQL 用户的名称。 |
database.password | 无默认值 | 连接到 MySQL 数据库服务器时使用的密码。 |
topic.prefix | 无默认值 | 主题前缀,为 Debezium 捕获更改的特定 MySQL 数据库服务器/集群提供命名空间。主题前缀在所有其他连接器中应该是唯一的,因为它用作接收此连接器发出的事件的所有 Kafka 主题名称的前缀。数据库服务器逻辑名称中只能使用字母数字字符、连字符、点和下划线。注意:不要更改此属性的值。如果您更改名称值,则在重新启动后,连接器不会继续向原始主题发出事件,而是向名称基于新值的主题发出后续事件。连接器也无法恢复其数据库架构历史主题。 |
database.server.id | 无默认值 | 该数据库客户端的数字 ID,在 MySQL 集群中当前运行的所有数据库进程中必须是唯一的。该连接器作为另一台服务器(具有唯一的 ID)加入 MySQL 数据库集群,以便它可以读取 binlog。 |
database.include.list | 空字符串 | 可选的、以逗号分隔的正则表达式列表,与要捕获更改的数据库的名称相匹配。连接器不会捕获名称不在database.include.list 中的任何数据库中的更改。默认情况下,连接器捕获所有数据库中的更改。为了匹配数据库的名称,Debezium 应用您指定为锚定正则表达式的正则表达式。也就是说,指定的表达式与数据库的整个名称字符串进行匹配;它与数据库名称中可能存在的子字符串不匹配。如果您在配置中包含此属性,则不要同时设置database.exclude.list 属性。 |
database.exclude.list | 空字符串 | 可选的、以逗号分隔的正则表达式列表,与您不想捕获其更改的数据库名称相匹配。连接器捕获名称不在database.exclude.list 中的任何数据库中的更改。为了匹配数据库的名称,Debezium 应用您指定为锚定正则表达式的正则表达式。也就是说,指定的表达式与数据库的整个名称字符串进行匹配;它与数据库名称中可能存在的子字符串不匹配。如果您在配置中包含此属性,则不要同时设置database.include.list 属性。 |
table.include.list | 空字符串 | 可选的、以逗号分隔的正则表达式列表,与要捕获其更改的表的完全限定表标识符相匹配。连接器不会捕获未包含在 table.include.list 中的任何表中的更改。每个标识符的格式为databaseName.tableName。默认情况下,连接器会捕获正在捕获更改的每个数据库中每个非系统表中的更改。为了匹配表的名称,Debezium 应用您指定为锚定正则表达式的正则表达式。也就是说,指定的表达式与表的整个名称字符串进行匹配;它与表名中可能存在的子字符串不匹配。如果您在配置中包含此属性,则不要同时设置 table.exclude.list 属性。 |
column.exclude.list | 空字符串 | 可选的、以逗号分隔的正则表达式列表,与要从更改事件记录值中排除的列的完全限定名称相匹配。列的完全限定名称的格式为databaseName.tableName.columnName。为了匹配列的名称,Debezium 应用您指定为锚定正则表达式的正则表达式。也就是说,指定的表达式与列的整个名称字符串相匹配;它与列名中可能存在的子字符串不匹配。如果您在配置中包含此属性,则不要同时设置 column.include.list 属性。 |
column.include.list | 空字符串 | 可选的、以逗号分隔的正则表达式列表,与要包含在更改事件记录值中的列的完全限定名称相匹配。列的完全限定名称的格式为databaseName.tableName.columnName。为了匹配列的名称,Debezium 应用您指定为锚定正则表达式的正则表达式。也就是说,指定的表达式与列的整个名称字符串相匹配;它与列名中可能存在的子字符串不匹配。如果您在配置中包含此属性,请不要设置column.exclude.list 属性。 |
skip.messages.without.change | false | 指定当包含的列没有变化时是否跳过发布消息。如果按照column.include.list 或column.exclude.list 属性包含的列没有变化,这实际上会过滤消息。 |
column.truncate.to.length.chars | n/a | 可选的、以逗号分隔的正则表达式列表,与基于字符的列的完全限定名称相匹配。如果要在一组列中的数据超过属性名称中长度指定的字符数时截断数据,请设置此属性。将长度设置为正整数值,例如column.truncate.to.20.chars。列的完全限定名称遵循以下格式:databaseName.tableName.columnName。为了匹配列的名称,Debezium 应用您指定为锚定正则表达式的正则表达式。也就是说,指定的表达式与列的整个名称字符串相匹配;该表达式与列名中可能存在的子字符串不匹配。您可以在单个配置中指定具有不同长度的多个属性。 |
column.mask.with.length.chars | n/a | 可选的、以逗号分隔的正则表达式列表,与基于字符的列的完全限定名称相匹配。如果您希望连接器屏蔽一组列的值(例如,如果它们包含敏感数据),请设置此属性。将 length 设置为正整数,以将指定列中的数据替换为属性名称中长度指定的星号 (*) 字符数。将长度设置为 0(零)以将指定列中的数据替换为空字符串。列的完全限定名称遵循以下格式:databaseName.tableName.columnName。为了匹配列的名称,Debezium 应用您指定为锚定正则表达式的正则表达式。也就是说,指定的表达式与列的整个名称字符串相匹配;该表达式与列名中可能存在的子字符串不匹配。您可以在单个配置中指定具有不同长度的多个属性。 |
column.mask.hash.hashAlgorithm.with.salt.salt; column.mask.hash.v2.hashAlgorithm.with.salt.salt | n/a | 可选的、以逗号分隔的正则表达式列表,与基于字符的列的完全限定名称相匹配。列的完全限定名称的格式为 <databaseName>.<tableName>.<columnName>。为了匹配列的名称,Debezium 应用您指定为锚定正则表达式的正则表达式。也就是说,指定的表达式与列的整个名称字符串相匹配;该表达式与列名中可能存在的子字符串不匹配。在生成的更改事件记录中,指定列的值将替换为假名。假名由应用指定的哈希算法和盐所产生的哈希值组成。基于所使用的散列函数,可以维护引用完整性,同时用假名替换列值。 在以下示例中,CzQMA0cB5K 是随机选择的盐。column.mask.hash.SHA-256.with.salt.CzQMA0cB5K = inventory.orders.customerName, inventory.shipment.customerName如有必要,笔名会自动缩短至列的长度。连接器配置可以包含指定不同哈希算法和盐的多个属性。根据使用的哈希算法、选择的盐和实际数据集,生成的数据集可能不会被完全屏蔽。如果值在不同的地方或系统中进行散列,则应使用散列策略版本 2 以确保保真度。 |
column.propagate.source.type | n/a | 可选的、以逗号分隔的正则表达式列表,与您希望连接器发出表示列元数据的额外参数的列的完全限定名称相匹配。设置此属性后,连接器会将以下字段添加到事件记录的架构中:__debezium.source.column.type,__debezium.source.column.length,__debezium.source.column.scale 这些参数分别传播列的原始类型名称和长度(对于可变宽度类型)。使连接器能够发出这些额外的数据可以帮助正确调整接收器数据库中特定数字或基于字符的列的大小。列的完全限定名称遵循以下格式之一:databaseName.tableName.columnName 或databaseName.schemaName.tableName.columnName。为了匹配列的名称,Debezium 应用您指定为锚定正则表达式的正则表达式。也就是说,指定的表达式与列的整个名称字符串相匹配;该表达式与列名中可能存在的子字符串不匹配。 |
datatype.propagate.source.type | n/a | 可选的、以逗号分隔的正则表达式列表,指定为数据库中的列定义的数据类型的完全限定名称。设置此属性后,对于具有匹配数据类型的列,连接器会发出在其架构中包含以下额外字段的事件记录:__debezium.source.column.type,__debezium.source.column.length,__debezium.source.column.scale 这些参数分别传播列的原始类型名称和长度(对于可变宽度类型)。使连接器能够发出这些额外的数据可以帮助正确调整接收器数据库中特定数字或基于字符的列的大小。列的完全限定名称遵循以下格式之一:databaseName.tableName.typeName 或databaseName.schemaName.tableName.typeName。为了匹配数据类型的名称,Debezium 应用您指定为锚定正则表达式的正则表达式。也就是说,指定的表达式与数据类型的整个名称字符串进行匹配;该表达式与类型名称中可能存在的子字符串不匹配。 |
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 通常是首选设置。Precision 使用 java.math.BigDecimal 来表示值,这些值通过使用二进制表示形式和 Kafka Connect 的 org.apache.kafka.connect.data.Decimal 类型在更改事件中进行编码。当使用大于 2^63 的值时,请使用此设置,因为这些值无法使用 long 来传送。 |
include.schema.changes | true | 布尔值,指定连接器是否应将数据库架构中的更改发布到与数据库服务器 ID 名称相同的 Kafka 主题。每个架构更改都使用包含数据库名称且其值包含 DDL 语句的键来记录。这与连接器内部记录数据库模式历史记录的方式无关。 |
include.schema.comments | false | 布尔值,指定连接器是否应解析和发布元数据对象上的表和列注释。启用此选项将对内存使用产生影响。逻辑模式对象的数量和大小在很大程度上影响 Debezium 连接器消耗的内存量,并且向每个连接器添加潜在的大型字符串数据可能会非常昂贵。 |
include.query | false | 布尔值,指定连接器是否应包含生成更改事件的原始 SQL 查询。如果将此选项设置为 true,则还必须使用 binlog_rows_query_log_events 选项配置 MySQL,或将 binlog_annotate_row_events 选项设置为 ON 的 MariaDB。当 include.query 为 true 时,对于快照进程生成的事件不存在查询。将 include.query 设置为 true 可能会公开通过在更改事件中包含原始 SQL 语句而显式排除或屏蔽的表或字段。因此,默认设置为 false。 |
event.deserialization.failure.handling.mode | fail | 指定连接器在二进制日志事件反序列化期间应如何对异常做出反应。此选项已弃用,请改用 event.processing.failure.handling.mode 选项。 |
inconsistent.schema.handling.mode | fail | 指定连接器应如何对与内部架构表示中不存在的表相关的二进制日志事件做出反应。即内部表示与数据库不一致。fail会引发异常,指示有问题的事件及其二进制日志偏移量,并导致连接器停止。warn 记录有问题的事件及其二进制日志偏移量并跳过该事件。skip有问题的事件并且不记录任何内容。 |
connect.timeout.ms | 30000 | 一个正整数值,指定此连接器在尝试连接到 MySQL 数据库服务器后超时之前应等待的最长时间(以毫秒为单位)。默认为 30 秒。 |
gtid.source.includes | 无默认值 | 与 GTID 集中的源 UUID 匹配的正则表达式的逗号分隔列表,连接器使用它来查找 MySQL 服务器上的 binlog 位置。设置此属性后,连接器仅使用其源 UUID 与指定包含模式之一匹配的 GTID 范围。为了匹配 GTID 的值,Debezium 应用您指定为锚定正则表达式的正则表达式。也就是说,指定的表达式与整个 UUID 字符串进行匹配;它与 UUID 中可能存在的子字符串不匹配。如果您在配置中包含此属性,则不要同时设置 gtid.source.excludes 属性。 |
gtid.source.excludes | 无默认值 | 以逗号分隔的正则表达式列表,与连接器用来查找 MySQL 服务器上的 binlog 位置的 GTID 集中的源 UUID 相匹配。设置此属性后,连接器仅使用源 UUID 与任何指定排除模式都不匹配的 GTID 范围。为了匹配 GTID 的值,Debezium 应用您指定为锚定正则表达式的正则表达式。也就是说,指定的表达式与整个 UUID 字符串进行匹配;它与 UUID 中可能存在的子字符串不匹配。如果您在配置中包含此属性,则不要同时设置 gtid.source.includes 属性。 |
tombstones.on.delete | true | 控制删除事件后是否发生逻辑删除事件。true - 删除操作由删除事件和后续逻辑删除事件表示。false - 仅发出删除事件。删除源记录后,如果为主题启用了日志压缩,则发出逻辑删除事件(默认行为)允许 Kafka 完全删除与已删除行的键相关的所有事件。 |
message.key.columns | n/a | 表达式列表,指定连接器用于形成发布到指定表的 Kafka 主题的更改事件记录的自定义消息键的列。默认情况下,Debezium 使用表的主键列作为其发出的记录的消息键。您可以根据一列或多列配置自定义消息键,以代替默认值,或者为缺少主键的表指定键。要为表建立自定义消息键,请列出该表,然后列出要用作消息键的列。每个列表条目均采用以下格式:<fully-qualified_tableName>:,<keyColumn> 要将表键基于多个列名,请在列名之间插入逗号。每个完全限定的表名都是以下格式的正则表达式:<databaseName>.<tableName>该属性可以包含多个表的条目。使用分号分隔列表中的表条目。以下示例设置表 inventory.customers 和purchase.orders 的消息键:inventory.customers:pk1,pk2;(.*).purchaseorders:pk3,pk4对于表 inventory.customer,列 pk1 和 pk2 被指定为消息键。对于任何数据库中的purchaseorders 表,列pk3 和pk4 作为消息键。用于创建自定义消息键的列数没有限制。但是,最好使用指定唯一键所需的最小数量。 |
binary.handling.mode | bytes | 指定应如何在更改事件中表示二进制列(例如 blob、binary、varbinary)。可能的设置:bytes 将二进制数据表示为字节数组。Base64 将二进制数据表示为 Base64 编码的字符串。base64-url-safe 将二进制数据表示为 base64-url-safe 编码的字符串。hex 将二进制数据表示为十六进制编码 (base16) 字符串。 |
schema.name.adjustment.mode | none | 指定应如何调整架构名称以与连接器使用的消息转换器兼容。可能的设置:none 不应用任何调整。avro 将 Avro 类型名称中不能使用的字符替换为下划线。avro_unicode 将 Avro 类型名称中不能使用的下划线或字符替换为相应的 unicode,如 _uxxxx。注意:_是转义序列,类似于Java中的反斜杠 |
field.name.adjustment.mode | none | 指定应如何调整字段名称以与连接器使用的消息转换器兼容。可能的设置:none 不应用任何调整。avro 将 Avro 类型名称中不能使用的字符替换为下划线。avro_unicode 将 Avro 类型名称中不能使用的下划线或字符替换为相应的 unicode,如 _uxxxx。注意:_是转义序列,类似于Java中的反斜杠 |
下表描述了高级 MySQL 连接器属性。这些属性的默认值很少需要更改。因此,您不需要在连接器配置中指定它们。
表 24. MySQL 连接器高级配置属性的描述
属性 | 默认值 | 描述 |
---|---|---|
connect.keep.alive | true | 一个布尔值,指定是否应使用单独的线程来确保与 MySQL 服务器/集群的连接保持活动状态。 |
converters | 无默认值 | 枚举连接器可以使用的自定义转换器实例的符号名称的逗号分隔列表。例如,布尔值。需要此属性才能使连接器能够使用自定义转换器。对于为连接器配置的每个转换器,还必须添加 .type 属性,该属性指定实现转换器接口的类的完全限定名称。 .type 属性使用以下格式:<converterSymbolicName>.type例如,布尔类型:io.debezium.connector.mysql.converters.TinyIntOneToBooleanConverter如果您想进一步控制已配置转换器的行为,您可以添加一个或多个配置参数以将值传递给转换器。要将这些附加配置参数与转换器关联,请在参数名称前加上转换器的符号名称。例如,要定义指定布尔转换器处理的列子集的选择器参数,请添加以下属性:boolean.selector=db1.table1.*, db1.table2.column1 |
table.ignore.builtin | true | 一个布尔值,指定是否应忽略内置系统表。无论表包含和排除列表如何,这都适用。默认情况下,系统表不会捕获其更改,并且对任何系统表进行更改时不会生成任何事件。 |
database.ssl.mode | preferred | 指定是否使用加密连接。可能的设置有:disabled指定使用未加密的连接。preferred如果服务器支持安全连接,则建立加密连接。如果服务器不支持安全连接,则回退到未加密的连接。required建立加密连接,如果由于任何原因无法建立,则失败。verify_ca行为与必需的类似,但它还会根据配置的证书颁发机构 (CA) 证书验证服务器 TLS 证书,如果服务器 TLS 证书与任何有效的 CA 证书都不匹配,则会失败verify_identity行为类似于 verify_ca,但还验证服务器证书是否与远程连接的主机匹配。 |
database.ssl.keystore | 无默认值 | 密钥存储文件的位置。这是可选的,可用于客户端和 MySQL 服务器之间的双向身份验证。 |
binlog.buffer.size | 0 | binlog 读取器使用的前瞻缓冲区的大小。默认设置 0 禁用缓冲。在特定情况下,MySQL binlog 中可能包含由 ROLLBACK 语句完成的未提交数据。典型的示例是使用保存点或在单个事务中混合临时表和常规表更改。当检测到事务开始时,Debezium 会尝试前滚 binlog 位置并查找 COMMIT 或 ROLLBACK,以便确定是否从事务中流式传输更改。 binlog 缓冲区的大小定义了 Debezium 在搜索事务边界时可以缓冲的事务中最大更改数量。如果事务的大小大于缓冲区,则 Debezium 必须倒回并重新读取流式传输时未放入缓冲区的事件。 |
max.batch.size | 2048 | 正整数值,指定在此连接器的每次迭代期间应处理的每批事件的最大大小。默认为 2048。 |
max.queue.size | 8192 | 正整数值,指定阻塞队列可以保存的最大记录数。当 Debezium 读取从数据库流式传输的事件时,它会将事件放入阻塞队列中,然后再将其写入 Kafka。如果连接器摄取消息的速度快于将消息写入 Kafka 的速度,或者当 Kafka 不可用时,阻塞队列可以为从数据库读取更改事件提供反压。当连接器定期记录偏移量时,队列中保存的事件将被忽略。始终将 max.queue.size 的值设置为大于 max.batch.size 的值。 |
max.queue.size.in.bytes | 0 | 一个长整数值,指定阻塞队列的最大容量(以字节为单位)。默认情况下,没有为阻塞队列指定卷限制。要指定队列可以使用的字节数,请将此属性设置为正 long 值。如果还设置了 max.queue.size,则当队列大小达到任一属性指定的限制时,写入队列将被阻止。例如,如果设置 max.queue.size=1000,并且max.queue.size.in.bytes=5000,则在队列包含 1000 条记录之后或在队列中的记录量之后写入队列将被阻止达到5000字节。 |
poll.interval.ms | 500 | 正整数值,指定连接器在开始处理一批事件之前应等待新更改事件出现的毫秒数。默认为 500 毫秒或 0.5 秒。 |
snapshot.mode | initial | 指定连接器启动时运行快照的条件。可能的设置有:initial仅当未记录逻辑服务器名称的偏移量时,连接器才会运行快照。initial_only仅当逻辑服务器名称没有记录偏移量时,连接器才运行快照,然后停止;即它不会从 binlog 中读取更改事件。when_needed只要连接器认为有必要,它就会在启动时运行快照。也就是说,当没有可用的偏移量时,或者当先前记录的偏移量指定服务器中不可用的二进制日志位置或 GTID 时。never连接器从不使用快照。首次使用逻辑服务器名称启动时,连接器从 binlog 的开头读取。请谨慎配置此行为。仅当保证 binlog 包含数据库的完整历史记录时,它才有效。schema_onl连接器运行架构的快照而不是数据。当您不需要主题包含一致的数据快照但需要它们仅包含自连接器启动以来的更改时,此设置非常有用。schema_only_recovery这是已捕获更改的连接器的恢复设置。当您重新启动连接器时,此设置可以恢复损坏或丢失的数据库架构历史记录主题。您可以定期设置它来“清理”意外增长的数据库模式历史记录主题。数据库架构历史主题需要无限保留。 |
snapshot.locking.mode | minimal | 控制连接器是否持有全局 MySQL 读锁以及持有全局 MySQL 读锁的时间,以防止在连接器执行快照时对数据库进行任何更新。可能的设置有:minimal连接器仅对快照的初始部分持有全局读锁,在此期间连接器读取数据库架构和其他元数据。快照中的剩余工作包括从每个表中选择所有行。连接器可以通过使用可重复读取事务以一致的方式执行此操作。即使不再持有全局读锁并且其他 MySQL 客户端正在更新数据库,情况也是如此。minimal_percona连接器仅对快照的初始部分持有全局备份锁,在此期间连接器读取数据库架构和其他元数据。快照中的剩余工作包括从每个表中选择所有行。连接器可以通过使用可重复读取事务以一致的方式执行此操作。即使不再持有全局备份锁并且其他 MySQL 客户端正在更新数据库,情况也是如此。此模式不会将表刷新到磁盘,不会被长时间运行的读取阻塞,并且仅在 Percona Server 中可用。extended阻止快照期间的所有写入。如果存在正在提交 MySQL 从 REPEATABLE READ 语义中排除的操作的客户端,请使用此设置。none防止连接器在快照期间获取任何表锁。虽然所有快照模式都允许使用此设置,但当且仅当快照运行时没有发生架构更改时才可以安全使用。对于使用MyISAM引擎定义的表,尽管设置了该属性,但当MyISAM获取表锁时,表仍然会被锁定。此行为与 InnoDB 引擎不同,InnoDB 引擎获取行级锁。 |
heartbeat.interval.ms | 0 | 控制连接器向 Kafka 主题发送心跳消息的频率。默认行为是连接器不发送心跳消息。检测信号消息对于监视连接器是否正在从数据库接收更改事件非常有用。检测信号消息可能有助于减少连接器重新启动时需要重新发送的更改事件的数量。要发送心跳消息,请将此属性设置为正整数,该整数表示心跳消息之间的毫秒数。 |
heartbeat.action.query | 无默认值 | 指定当连接器发送检测信号消息时连接器在源数据库上执行的查询。例如,这可以用于定期捕获源数据库中执行的 GTID 集的状态。 INSERT INTO gtid_history_table (select * from mysql.gtid_executed) |
database.initial.statements | 无默认值 | 建立与数据库的 JDBC 连接(而不是读取事务日志的连接)时要执行的 SQL 语句的分号分隔列表。要将分号指定为 SQL 语句中的字符而不是分隔符,请使用两个分号 (; 声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/301519 推荐阅读 相关标签 Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。 |