欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-03-11 17:02:37
...

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

要使用此连接器,请在connector.class配置属性中指定连接器类的名称。

connector.class=io.confluent.connect.jdbc.JdbcSourceConnector

连接器特定的配置属性如下所述。

数据库连接安全

在连接器配置中,您会注意到没有安全参数。这是因为SSL不属于JDBC标准,而是取决于所使用的JDBC驱动程序。通常,您需要通过connection.url参数配置SSL 。例如,对于MySQL,它看起来像:

connection.url="jdbc:mysql://127.0.0.1:3306/sample?verifyServerCertificate=false&useSSL=true&requireSSL=true"

请与您的特定JDBC驱动程序文档联系以获取有关支持和配置的信息。

数据库

  • connection.url

    JDBC连接URL。

    例如:jdbc:oracle:thin:@localhost:1521:orclpdb1jdbc:mysql://localhost/db_name

    jdbc:sqlserver://localhost;instance=SQLEXPRESS;databaseName=db_name

    • 类型:字符串
    • 重要性:高
    • 依赖者:table.whitelisttable.blacklist
  • connection.user

    JDBC连接用户。

    • 类型:字符串
    • 默认值:空
    • 重要性:高
  • connection.password

    JDBC连接密码。

    • 类型:密码
    • 默认值:空
    • 重要性:高
  • connection.attempts

    检索有效JDBC连接的最大尝试次数。

    • 类型:int
    • 默认值:3
    • 重要性:低
  • connection.backoff.ms

    两次连接尝试之间的退避时间(以毫秒为单位)。

    • 类型:长
    • 默认值:10000
    • 重要性:低
  • catalog.pattern

    目录模式以从数据库中获取表元数据。

    • 类型:字符串
    • 默认值:空
      • “”检索那些没有目录的表
      • null(默认值)指示不使用架构名称来缩小搜索范围,并且获取所有表元数据,而不管目录如何。
    • 重要性:中等
  • table.whitelist

    要包括在复制中的表的列表。如果指定,则table.blacklist可能未设置。使用逗号分隔的列表来指定多个表(例如,)。table.whitelist: "User, Address, Email"

    • 类型:列表
    • 默认值:“”
    • 重要性:中等
  • table.blacklist

    要排除在外的表列表。如果指定,则table.whitelist可能未设置。使用逗号分隔的列表来指定多个表(例如,)。table.blacklist: "User, Address, Email"

    • 类型:列表
    • 默认值:“”
    • 重要性:中等
  • schema.pattern

    从数据库中获取表元数据的模式模式。

    • 类型:字符串
    • 默认值:空
      • "" 检索那些没有模式的。
      • null(默认值)指示不使用架构名称来缩小搜索范围,并且所有表元数据均被获取,而与架构无关。
    • 重要性:高

    重要

    如果将其保留为默认的null设置,则连接器可能会超时并失败,原因是接收到大量的表元数据。确保为大型数据库设置此参数。

  • numeric.precision.mapping

    是否尝试按精度将NUMERIC值映射到整数类型。现在不推荐使用此选项。将来的版本可能会完全删除它。请改用numeric.mapping

    • 类型:布尔值
    • 默认值:false
    • 重要性:低
  • numeric.mapping

    通过精度映射NUMERIC值,还可以选择缩放为整数或十进制类型。

    • 类型:字符串
    • 默认值:空
    • 有效值:[none,precision_only,best_fit]
      • none如果所有NUMERIC列都将由Connect的DECIMAL逻辑类型表示,请使用。
      • 使用best_fit如果数值列应基于列的精度和规模转换为连接的INT8,INT16,INT32,INT64或FLOAT64。
      • 使用precision_only映射仅基于列的精度假设列的比例为0数字列。
      • none选项是默认选项,但由于Connect的DECIMAL类型映射到其二进制表示形式,因此可能会导致Avro的序列化问题,并且best_fit由于会映射到最合适的原始类型,因此通常会被首选。
    • 重要性:低
  • dialect.name

    该连接器应使用的数据库方言的名称。默认情况下为空,并且连接器根据JDBC连接URL自动确定方言。如果要覆盖该行为并使用特定的方言,请使用此选项。可以使用JDBC连接器插件中所有正确包装的方言。

    • 类型:字符串
    • 默认值:“”
    • 有效值:[ Db2DatabaseDialect, MySqlDatabaseDialect, SybaseDatabaseDialect, GenericDatabaseDialect, OracleDatabaseDialect ,SqlServerDatabaseDialect, PostgreSqlDatabaseDialect, SqliteDatabaseDialect, DerbyDatabaseDialect , SapHanaDatabaseDialect, MockDatabaseDialect, VerticaDatabaseDialect]
    • 重要性:低

模式

  • mode

    每次轮询表时更新表的方式。选项包括:

    • 类型:字符串
    • 默认值:“”
    • 有效值:[,批量(bulk),时间戳(timestamp),递增(incrementing),时间戳+递增(timestamp+incrementing)]
      • 批量(bulk):每次轮询时对整个表进行批量加载
      • 递增(incrementing):在每个表上使用严格递增的列以仅检测新行。请注意,这不会检测到对现有行的修改或删除。
      • 时间戳(timestamp):使用时间戳(或类似时间戳的列)来检测新行和修改过的行。假设每次写入都会更新该列,并且值是单调递增的,但不一定唯一。
      • timestamp + incrementing:使用两列,用于检测新行和已修改行的timestamp列,以及用于更新的全局唯一ID的严格增量列,因此可以为每一行分配唯一的流偏移量。
    • 重要性:高
  • incrementing.column.name

    严格递增的列的名称,用于检测新行。任何空值表示应通过查找自动递增的列来自动检测该列。该列可能不能为空。

    • 类型:字符串
    • 默认值:“”
    • 重要性:中等
  • timestamp.column.name

    用一个或多个时间戳列的逗号分隔列表,以使用COALESCE SQL函数检测新行或修改过的行。每次轮询都会发现第一个非空时间戳值大于看到的最大先前时间戳值的行。至少一列不应为空。

    • 类型:列表
    • 默认值:“”
    • 重要性:中等
  • validate.non.null

    默认情况下,JDBC连接器将验证所有增量表和时间戳表是否将NOT NULL设置为用作其ID /时间戳的列。如果表没有将其设置为非空列,则JDBC连接器将无法启动。将此设置为false将禁用这些检查。

    • 类型:布尔值
    • 默认值:true
    • 重要性:低
  • query

    如果指定,则执行查询以选择新的或更新的行。如果要联接表,选择表中列的子集或过滤数据,请使用此设置。如果使用此连接器,则将仅使用此查询复制数据–整个表复制将被禁用。仍然可以使用不同的查询模式进行增量更新,但是为了正确地构造增量查询,必须有可能在此查询后附加WHERE子句(即,不得使用WHERE子句)。如果使用WHERE子句,则它本身必须处理增量查询。

    • 类型:字符串
    • 默认值:“”
    • 重要性:中等
  • quote.sql.identifiers

    何时在SQL语句中引用表名,列名和其他标识符。为了向后兼容,默认值为always

    • 类型:字符串
    • 默认值:始终
    • 重要性:中等

连接器(Connector)

  • table.types

    默认情况下,JDBC连接器将仅从源数据库中检测类型为TABLE的表。此配置允许提取命令分隔的表类型列表。

    • 类型:列表。

      • TABLE
      • VIEW
      • SYSTEM TABLE
      • GLOBAL TEMPORARY
      • LOCAL TEMPORARY
      • ALIAS
      • SYNONYM

      在大多数情况下,只有TABLE或VIEW才有意义。

    • 默认值:TABLE

    • 重要性:低

  • poll.interval.ms

    以毫秒为单位的频率,用于轮询每个表中的新数据。

    • 类型:int
    • 默认值:5000
    • 重要性:高
  • batch.max.rows

    轮询新数据时,单个批处理中包含的最大行数。此设置可用于限制连接器内部缓冲的数据量。

    • 类型:int
    • 默认值:100
    • 重要性:低
  • table.poll.interval.ms

    轮询新表或已删除表的频率(以毫秒为单位),这可能导致更新的任务配置开始对添加表中的数据进行轮询或停止对已删除表中的数据进行轮询。

    • 类型:long
    • 默认值:60000
    • 重要性:低
  • topic.prefix

    在表名之前添加前缀,以生成要向其发布数据的Apache Kafka®主题的名称,或者在自定义查询的情况下,生成要向其发布主题的全名。

    • 类型:字符串
    • 重要性:高
  • timestamp.delay.interval.ms

    在将其包含在结果中之前,出现具有特定时间戳记的行之后需要等待多长时间。您可以选择添加一些延迟,以允许时间戳较早的事务完成。第一次执行将获取所有可用记录(即从时间戳0开始),直到当前时间减去延迟为止。接下来的每一次执行都会从上一次获取数据到当前时间减去延迟。

    • 类型:long
    • 默认值:0
    • 重要性:高
  • db.timezone

    使用基于时间的条件进行查询时,连接器中使用的JDBC时区的名称。默认为UTC。

    • 类型:字符串
    • 默认值:“ UTC”
    • 有效值:任何有效的JDK时区
    • 重要性:中等

原文

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