Как отслеживать строки (по id) с определенным значением столбца, используя Kafka JDBC Connector? - PullRequest
0 голосов
/ 07 апреля 2019

У меня есть таблица, содержащая большое количество записей. Там есть столбец, определяющий тип записи. Я хотел бы собрать записи с определенным значением в этом столбце. Вид:

Select * FROM myVeryOwnTable WHERE type = "VERY_IMPORTANT_TYPE" 

Что я заметил, я не могу использовать предложение WHERE в пользовательском запросе, когда выбираю инкрементный (+ timestamp) режим, в противном случае мне нужно было бы позаботиться о фильтрации самостоятельно. Фон, которого я хотел бы достичь, заключается в том, что я использую Logstash для передачи некоторых типов данных из MySQL в ES. Это легко достижимо с помощью запроса, который может содержать предложение where. Однако с Kafka я могу передавать свои данные намного быстрее (почти мгновенно) после вставки новых строк в БД.

Спасибо за любые подсказки или советы.


Благодаря @wardziniak я смог настроить его.

query=select * from (select * from myVeryOwnTable p where type = 'VERY_IMPORTANT_TYPE') p
topic.prefix=test-mysql-jdbc-
incrementing.column.name=id

однако я ожидал тему test-mysql-jdbc-myVeryOwnTable, поэтому я зарегистрировал своего потребителя на это. Однако, используя запрос, показанный выше, имя таблицы пропускается, поэтому моя тема была названа в точности как префикс, определенный выше. Поэтому я только что обновил свои свойства topic.prefix=test-mysql-jdbc-myVeryOwnTable, и, похоже, он работает нормально.

1 Ответ

1 голос
/ 07 апреля 2019

Вы можете использовать подзапрос в свойстве Jdbc Source Connector query.

Пример конфигурации исходного соединителя JDBC:

{
    ...
    "query": "select * from (select * from myVeryOwnTable p where type = 'VERY_IMPORTANT_TYPE') p",
    "incrementing.column.name": "id",
    ...
}
...