Настроить дебезиум для размещения данных по отдельным темам на основе пользовательских критериев - PullRequest
0 голосов
/ 24 января 2019

Я перехожу на kafka в качестве брокера и debezium, чтобы получать данные (данные ETL) из всех микросервисов в базы данных отчетов и поиска.

Есть ли способ настроить debezium таким образом, чтобы он помещал данные по отдельным темам на основе пользовательских критериев (например, пользователи или компания или некоторый ключевой столбец / атрибут строки / данных).

Ответы [ 2 ]

0 голосов
/ 25 января 2019

Я бы предложил внедрить пользовательский SMT (преобразование одного сообщения), который направляет записи, созданные соединителем Debezium, в нужные темы.Вы можете взять SMT маршрутизации Debezium, связанный в ответе cricket_007, в качестве примера для вашей пользовательской реализации.Имея SourceRecord, вы можете выбрать тему назначения на основе значений всех столбцов захваченной таблицы.

Потоки Kafka или аналогичные тоже подойдут, но я бы рекомендовал сначала изучить SMT из-запростота эксплуатации (не требуется отдельного процесса) и поиск альтернатив только в том случае, если SMT недостаточно.

0 голосов
/ 24 января 2019

Не уверен, если вы ищете Тема маршрутизации

Предполагая, что вы не можете добавить опцию фильтра в сам Debezium, типичным шаблоном является использование Kafka Streams, KSQL (или Flink на основе вашего предыдущего вопроса), чтобы отфильтровать и распределить интересующие вас данные по различным темам, которые потребителям вниз по течению

Однако из одной конфигурации Debezium вы должны жестко закодировать пространство имен / коллекцию / таблицу. Вам потребуется несколько конфигураций для нескольких из них.

...