Kafka Connect в режиме отметки времени - как добавить в конец запроса? - PullRequest
2 голосов
/ 04 ноября 2019

У меня настроен исходный соединитель, который извлекается из 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"
    }
}

Мне нужно использовать «с UR» (с незафиксированным чтением, иначе «грязное чтение») как часть выбора, чтобы не блокировать таблицу, из которой я запрашиваю.

Но при использовании режима отметки времени Kafka Connect добавляется в конец предложения where, как в

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

DB2 требует, чтобы «with UR» было последним в месте гдепункт. Кто-нибудь знает, возможно ли такое манипулирование предложением where? В настоящее время я не вижу, как режим временной метки и «с UR» могут сосуществовать.

1 Ответ

0 голосов
/ 04 ноября 2019

Вы не можете передать динамический запрос на JDBC Kafka Connector. Соединитель JDBC используется для постепенной загрузки данных с использованием верхнего водяного знака на основе отметки времени. Это позволяет перенести данные из базы данных в тему Kafka с минимальным кодом конфигурации. Поэтому, учитывая это, вам не нужно добавлять любое условие where для приращения, однако, если вы хотите использовать предложения where для статического запроса, вы можете сделать это, как указано ниже:

  1. Использовать подзапрос, как показано ниже

"query": "select * from (выберите fname, lname, custId, custRegion, lastUpdate из CustomerMaster, где lastUpdate между '10 / 12/2019 'и '10 / 14/2019') o",

Создайте представление на таблице CustomerMaster и используйте представление на вашем коннекторе JDBC.

Для более подробной информации вы можете обратиться здесь

...