Kafka Connect在时间戳模式下-如何追加到查询末尾?

时间:2019-11-04 15:09:30

标签: jdbc apache-kafka db2 apache-kafka-connect

我有一个已配置的源连接器,可从DB2检索并使用时间戳记模式。例如:

    "name": "my-jdbc-connector",
    "config": {
        "connector.class": "io.confluent.connect.jdbc.JdbcSourceConnector",
        "connection.url": "jdbc:db2://db2server.mycompany.com:4461/myDB",
        "connection.user: "dbUser",
        "connection.password": "dbPass",
        "dialect.name": "Db2DatabaseDialect",
        "mode": "timestamp",
        "query": "select fname, lname, custId, custRegion, lastUpdate from CustomerMaster",
        "timestamp.column.name": "lastUpdate",
        "table.types": "TABLE",
        "topic.prefix": "master.customer"
    }
}

作为选择的一部分,我需要使用“ with UR”(未提交读,也称为“脏读”),以免锁定正在查询的表。

但是,在使用时间戳记模式时,Kafka Connect会附加到where子句的末尾,如

where lastUpdate between '10/12/2019' and '10/14/2019';

DB2要求where子句中的最后一项内容是“ with UR”。有谁知道操纵这样的where子句是否可行?我目前不知道时间戳记模式和“与UR”如何共存。

1 个答案:

答案 0 :(得分:0)

您不能在JDBC Kafka Connector上传递动态查询。 JDBC连接器用于通过使用基于时间戳的高水位标记来增量加载数据。这样就可以用最少的配置代码将数据从数据库带到Kafka主题。 因此,考虑到这一点,您无需添加任何where子句来进行递增,但是,如果您希望将where子句用于静态查询,则可以按照以下说明进行操作:

  1. 使用以下子查询
  

“ query”:“ select * from(选择fname,lname,custId,custRegion,   CustomerMaster的lastUpdate,其中lastUpdate在'10 / 12/2019'之间   和'10 / 14/2019')o“,

  1. 在表CustomerMaster上创建视图,并在JDBC连接器上使用视图。

您可以参考here了解更多详情