JDBC合流连接器模式

JDBC合流连接器模式,jdbc,apache-kafka,apache-kafka-connect,confluent-platform,Jdbc,Apache Kafka,Apache Kafka Connect,Confluent Platform,我在JDBC kafka source connector中使用自定义查询。在JDBC kafka source connector中使用自定义查询时,有人能告诉我是什么模式吗?如果我使用批量模式,那么它将在kafka主题中重新插入所有数据。 注意:-我的表中没有任何主键或时间戳列 您可以使用 递增-在每个表上使用严格递增的列 仅检测新行。请注意,这不会检测到修改或更改 删除现有行 时间戳-使用时间戳(或 类时间戳)列来检测新的和修改的行。这假设 该列会随着每次写入而更新,并且值是 单调递增,但

我在JDBC kafka source connector中使用自定义查询。在JDBC kafka source connector中使用自定义查询时,有人能告诉我是什么模式吗?如果我使用批量模式,那么它将在kafka主题中重新插入所有数据。 注意:-我的表中没有任何主键或时间戳列

您可以使用

递增
-在每个表上使用严格递增的列 仅检测新行。请注意,这不会检测到修改或更改 删除现有行

时间戳
-使用时间戳(或 类时间戳)列来检测新的和修改的行。这假设 该列会随着每次写入而更新,并且值是 单调递增,但不一定唯一

时间戳+递增
-使用两列,时间戳列 检测新的和修改的行以及严格递增的列 为更新提供全局唯一ID,以便可以分配每一行 独特的流偏移

时间戳的示例:

name=mysql-source-test
connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
tasks.max=10

connection.url=jdbc:mysql://mysql.example.com:3306/my_database?user=myuser&password=mypass
table.whitelist=users,products

mode=timestamp
timestamp.column.name=last_modified

topic.prefix=mysql-test-
name=mysql-source-test
connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
tasks.max=10

connection.url=jdbc:mysql://mysql.example.com:3306/my_database?user=myuser&password=mypass
table.whitelist=users,products

mode=incrementing
incrementing.column.name=id

topic.prefix=mysql-test-
name=mysql-source-test
connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
tasks.max=10

connection.url=jdbc:mysql://mysql.example.com:3306/my_database?user=myuser&password=mypass
table.whitelist=users,products

mode=timestamp+incrementing
incrementing.column.name=id
timestamp.column.name=last_modified

topic.prefix=mysql-test-
递增的
示例:

name=mysql-source-test
connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
tasks.max=10

connection.url=jdbc:mysql://mysql.example.com:3306/my_database?user=myuser&password=mypass
table.whitelist=users,products

mode=timestamp
timestamp.column.name=last_modified

topic.prefix=mysql-test-
name=mysql-source-test
connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
tasks.max=10

connection.url=jdbc:mysql://mysql.example.com:3306/my_database?user=myuser&password=mypass
table.whitelist=users,products

mode=incrementing
incrementing.column.name=id

topic.prefix=mysql-test-
name=mysql-source-test
connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
tasks.max=10

connection.url=jdbc:mysql://mysql.example.com:3306/my_database?user=myuser&password=mypass
table.whitelist=users,products

mode=timestamp+incrementing
incrementing.column.name=id
timestamp.column.name=last_modified

topic.prefix=mysql-test-
时间戳+递增的示例

name=mysql-source-test
connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
tasks.max=10

connection.url=jdbc:mysql://mysql.example.com:3306/my_database?user=myuser&password=mypass
table.whitelist=users,products

mode=timestamp
timestamp.column.name=last_modified

topic.prefix=mysql-test-
name=mysql-source-test
connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
tasks.max=10

connection.url=jdbc:mysql://mysql.example.com:3306/my_database?user=myuser&password=mypass
table.whitelist=users,products

mode=incrementing
incrementing.column.name=id

topic.prefix=mysql-test-
name=mysql-source-test
connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
tasks.max=10

connection.url=jdbc:mysql://mysql.example.com:3306/my_database?user=myuser&password=mypass
table.whitelist=users,products

mode=timestamp+incrementing
incrementing.column.name=id
timestamp.column.name=last_modified

topic.prefix=mysql-test-
你可以用任何一种

递增
-在每个表上使用严格递增的列 仅检测新行。请注意,这不会检测到修改或更改 删除现有行

时间戳
-使用时间戳(或 类时间戳)列来检测新的和修改的行。这假设 该列会随着每次写入而更新,并且值是 单调递增,但不一定唯一

时间戳+递增
-使用两列,时间戳列 检测新的和修改的行以及严格递增的列 为更新提供全局唯一ID,以便可以分配每一行 独特的流偏移

时间戳的示例:

name=mysql-source-test
connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
tasks.max=10

connection.url=jdbc:mysql://mysql.example.com:3306/my_database?user=myuser&password=mypass
table.whitelist=users,products

mode=timestamp
timestamp.column.name=last_modified

topic.prefix=mysql-test-
name=mysql-source-test
connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
tasks.max=10

connection.url=jdbc:mysql://mysql.example.com:3306/my_database?user=myuser&password=mypass
table.whitelist=users,products

mode=incrementing
incrementing.column.name=id

topic.prefix=mysql-test-
name=mysql-source-test
connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
tasks.max=10

connection.url=jdbc:mysql://mysql.example.com:3306/my_database?user=myuser&password=mypass
table.whitelist=users,products

mode=timestamp+incrementing
incrementing.column.name=id
timestamp.column.name=last_modified

topic.prefix=mysql-test-
递增的
示例:

name=mysql-source-test
connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
tasks.max=10

connection.url=jdbc:mysql://mysql.example.com:3306/my_database?user=myuser&password=mypass
table.whitelist=users,products

mode=timestamp
timestamp.column.name=last_modified

topic.prefix=mysql-test-
name=mysql-source-test
connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
tasks.max=10

connection.url=jdbc:mysql://mysql.example.com:3306/my_database?user=myuser&password=mypass
table.whitelist=users,products

mode=incrementing
incrementing.column.name=id

topic.prefix=mysql-test-
name=mysql-source-test
connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
tasks.max=10

connection.url=jdbc:mysql://mysql.example.com:3306/my_database?user=myuser&password=mypass
table.whitelist=users,products

mode=timestamp+incrementing
incrementing.column.name=id
timestamp.column.name=last_modified

topic.prefix=mysql-test-
时间戳+递增的示例

name=mysql-source-test
connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
tasks.max=10

connection.url=jdbc:mysql://mysql.example.com:3306/my_database?user=myuser&password=mypass
table.whitelist=users,products

mode=timestamp
timestamp.column.name=last_modified

topic.prefix=mysql-test-
name=mysql-source-test
connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
tasks.max=10

connection.url=jdbc:mysql://mysql.example.com:3306/my_database?user=myuser&password=mypass
table.whitelist=users,products

mode=incrementing
incrementing.column.name=id

topic.prefix=mysql-test-
name=mysql-source-test
connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
tasks.max=10

connection.url=jdbc:mysql://mysql.example.com:3306/my_database?user=myuser&password=mypass
table.whitelist=users,products

mode=timestamp+incrementing
incrementing.column.name=id
timestamp.column.name=last_modified

topic.prefix=mysql-test-

如果没有时间戳或递增ID列,则无法执行基于查询的CDC,只能执行批量加载

您的替代方案是使用基于日志的CDC和Debezium等工具


本讲座将详细介绍每个可用选项和工具:

如果没有时间戳或递增ID列,则无法执行基于查询的CDC,只能执行批量加载

您的替代方案是使用基于日志的CDC和Debezium等工具


本讲座详细介绍了每个选项和可用工具:

:-感谢您的回复,但我没有任何增量列或时间戳列,因此如何提供增量列或时间戳列?@santoXme表侧有哪些列?假设我的表只有name和salary列,我想将其迁移到kafka因此,对于这个主题,我使用一个自定义查询来查询我当时所需的数据,我必须指定的模式是什么。@santoXme您可以为
递增
模式添加一个类似
id
的列,或
rowversion
用于
timestamp
模式。此表由客户机包装,我无法在任何客户机表中进行更改,这是我需要迁移这些表的主要问题,因为它们位于数据库中:-感谢您的回复,但我没有任何增量列或时间戳列,因此如何提供增量列或时间戳列?@santoXme表侧有哪些列?假设我的表只有name和salary列,我想将其迁移到kafka主题,因此为此,我使用一个自定义查询来查询我当时所需的数据,我必须指定的模式是什么。@santoXme您可以在
递增
模式中再包含一列,如
id
,或
rowversion
用于
timestamp
模式。此表由客户机装箱,我无法在任何客户机表中进行更改,因此我需要迁移这些表,因为它们位于数据库中