kafka-JDBC源连接器配置

news/2024/5/19 0:27:34 标签: kafka, connect, jdbc, mysql

kafkaJDBC_0">kafka-JDBC源连接器配置

源连接器支持复制具有多种JDBC数据类型的表,动态地从数据库中添加和删除表,白名单和黑名单,不同的轮询间隔以及其他设置。但是,对于大多数用户而言,最重要的功能是用于控制如何从数据库增量复制数据的设置。

Kafka Connect跟踪从每个表中检索到的最新记录,因此它可以在下一次迭代时(或发生崩溃的情况下)从正确的位置开始。源连接器使用此功能在每次迭代时仅从表(或从自定义查询的输出)获取更新的行。支持多种模式,每种模式在检测已修改行的方式上都不同。

增量查询模式

每种增量查询模式都为每一行跟踪一组列,用于跟踪已处理的行以及哪些行是新的或已更新的行。该mode设置控制此行为,并支持以下选项:

  • 递增列:包含每一行唯一ID的单个列,其中保证较新的行具有较大的ID,即一AUTOINCREMENT列。请注意,此模式只能检测新行。无法检测到对现有行的更新,因此该模式仅应用于不可变数据。在数据仓库中流化事实表时,可能会使用此模式的一个示例,因为这些表通常是仅插入的。递增列必须是整数类型。

  • 时间戳列:在此模式下,包含修改时间戳的单个列用于跟踪上次处理数据的时间,并仅查询自该时间以来已被修改的行。请注意,由于时间戳不一定是唯一的,因此此模式不能保证所有更新的数据都将被传递:如果2行共享相同的时间戳并由增量查询返回,但是在崩溃前仅处理了一行,则第二次更新将被处理。系统恢复时未命中。

  • 时间戳和递增列:这是最健壮和准确的模式,将递增列与时间戳列结合在一起。通过将两者结合起来,只要时间戳足够精细,每个(id,时间戳)元组将唯一地标识对行的更新。即使更新在部分完成后失败,系统恢复后仍可正确检测并交付未处理的更新。

  • 自定义查询:源连接器支持使用自定义查询,而不是复制整个表。对于自定义查询,只要可以将必要WHERE子句正确附加到查询中,就可以使用其他更新自动更新模式之一。或者,指定的查询可以自己处理对新更新的过滤。但是,请注意,将不会执行偏移量跟踪(与为每个记录记录incrementing和/或timestamp列值的自动模式不同 ),因此查询必须跟踪偏移量本身。

  • 批量:此模式未过滤,因此根本不增量。它将在每次迭代时从表中加载所有行。如果要定期转储整个表,最终删除条目,下游系统可以安全地处理重复项,这将很有用。
    请注意,所有使用某些列来检测更改的增量查询模式都将需要这些列上的索引才能有效地执行查询。

对于使用时间戳的增量查询模式,源连接器将使用一种配置 timestamp.delay.interval.ms来控制在将包含特定时间戳的行出现之后再将其包括在结果中之前的等待时间。额外的等待时间允许完成带有较早时间戳记的事务,并将相关更改包括在结果中。有关更多信息,请参见配置属性。

源连接器使您可以灵活地从中导入数据的数据库以及如何导入数据的灵活性。
默认配置中仅有sqlite的连接器配置,以下为mysql源连接器配置:

Mqsql源连接器配置1:

使用白名单将更改限制在MySQL数据库表的子集中,使用id和 modified列在所有列入白名单的表上的标准列来检测已修改的行。此模式最可靠,因为它可以将唯一的,不可变的行ID与修改时间戳相结合,以确保即使在增量更新查询过程中过程终止,也不会丢失修改。

name=mysql-whitelist-timestamp-source
connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
tasks.max=10
connection.url=jdbc:mysql://mysql.example.com:3306/my_database?user=alice&password=secret
table.whitelist=users,products,transactions
mode=timestamp+incrementing
timestamp.column.name=modified
incrementing.column.name=id
topic.prefix=mysql-

Mqsql源连接器配置2

使用自定义查询而不是加载表,从而允许您从多个表联接数据。只要查询不包括自己的过滤,您仍可以对增量查询使用内置模式(在这种情况下,使用时间戳列)。请注意,这将您限制为每个连接器只有一个输出,并且由于没有表名,因此在这种情况下,主题“前缀”实际上是完整的主题名称。

name=mysql-whitelist-timestamp-source
connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
tasks.max=10
connection.url=jdbc:mysql://mysql.example.com:3306/my_database?user=alice&password=secret
query=SELECT users.id, users.name, transactions.timestamp, transactions.user_id, transactions.payment
FROM users JOIN transactions ON (users.id = transactions.user_id)
mode=timestamp
timestamp.column.name=timestamp
topic.prefix=mysql-joined-data

参考

https://docs.confluent.io/5.4.0/connect/kafka-connect-jdbc/source-connector/index.html


http://www.niftyadmin.cn/n/676536.html

相关文章

html添加bootstrap,html – Bootstrap向列添加边距

Demo Fiddle最好的方法是添加一个内部容器,然后在列上填充.这可确保Bootstraps功能保持原样.HTMLMain Title Right HereSlogan text underneathTITLETEXTTITLETEXTTITLETEXTTITLETEXTCSS.section-container.light-bg {background-color: #F5F5F5;color: #444444;}.inner {backg…

html控制电脑关机,一种便捷控制电脑锁定或关机的方法及鼠标与流程

本发明涉及电脑产品技术领域,特指一种便捷控制电脑锁定或关机的方法及鼠标。背景技术::鼠标,是电脑的一种输入设备,也是电脑显示系统纵横坐标定位的指示器,因形似老鼠而得名。其标准称呼应该是“鼠标器”&a…

黑屏html编辑器,代码编辑器monaco-editor之基础使用

1.下载安装monaco-editornpm install monaco-editor我的安装目录在C://Windows//SystemApps//Microsoft.MicrosoftEdgeDevToolsClient_8wekyb3d8bbwe//23//common//monaco-editor/2.集成界面require.config({ paths: { vs: C://Windows//SystemApps//Microsoft.MicrosoftEdgeDe…

html横纵缩放,html – Flexbox图像缩放到高度并保持纵横比

如果你可以从flex更改为block:正如janfoeh所指出的,使用对象拟合:包含使它成为可能:body,html {height: 100%;margin: 0;padding: 0;overflow:hidden;position:relative;}.container {width: 100%;max-width: 100%;height: 100%;max-height: …

潍坊计算机专业技术考试试题,潍坊学院成人教育计算机维护技术 (B) 卷试卷及参考答案...

潍坊学院成人教育《计算机维护技术》试卷(B)卷及参考答案一、选择题(每小题1分,共20分)1.一个完整的计算机系统是由________系统和________系统两部分组成。2.ROM和RAM的不同点是:________中的信息断电后会丢失,________的信息断电…

外研社计算机英语试题,(外研社)二年级英语下册期中试题(一)

(外研社)二年级英语下册期中试题(一) 笔试部分(60 点) 一、给单词归类(1 点1010 点) duckshortsnoodlesmonkeysweaterdraw shirtwritebreaddrink 1.动词———,———,——— 2 动物———,———,——— 3 食品———&#xff0c…

Kafka-connect-jdbc-source连接mysql数据库实战

Kafka-connect-jdbc-source连接mysql数据库实战 1、创建mysql数据库 为避免使用kafka连接数据库时意外修改或删除数据,建议单独创建一个只读用户(kafka),仅用于读取数据; 使用root操作,进行如下操作 --…

Kafka Connect JDBC-Source 源连接器配置属性

Kafka Connect JDBC-Source 源连接器配置属性 要使用此连接器,请在connector.class配置属性中指定连接器类的名称。 connector.classio.confluent.connect.jdbc.JdbcSourceConnector连接器特定的配置属性如下所述。 数据库连接安全 在连接器配置中,您…