Захватите все таблицы базы данных в одну тему Kafka с помощью Debezium

Как настроить Debezium для публикации всех таблиц в базе данных в одной теме Kafka?

Является ли это возможным?


person Shiva    schedule 02.09.2018    source источник
comment
Непонятно, почему вы захотите это сделать, поскольку у вас будут разные схемы для каждой таблицы, и нет никаких недостатков в том, чтобы иметь много тем в Kafka.   -  person OneCricketeer    schedule 02.09.2018
comment
@cricket_007 Один из сценариев может быть, когда у вас есть несколько арендаторов в вашей базе данных, которые динамически создают свои собственные типы (таблицы) как часть определения своей бизнес-модели. Управление темами в этом случае может стать громоздким. Например, вы можете сгруппировать данные арендатора и задать тему для каждого арендатора.   -  person Pawel Zieminski    schedule 11.04.2019


Ответы (1)


По умолчанию Debezium записывает тему для каждой базы данных + таблицы.

Вы можете просмотреть документацию по маршрутизации темы, хотя

Debezium позволяет перенаправить отправленное изменение до того, как сообщение достигнет преобразователя, с помощью преобразования одного сообщения или SMT. SMT, предоставляемый Debezium, позволяет вам переписать тему и ключ в соответствии с регулярным выражением и шаблоном замены, настраиваемым для каждого экземпляра Debezium.

Итак, вы можете попробовать что-то вроде

transforms=Combine
transforms.Combine.type=io.debezium.transforms.ByLogicalTableRouter
transforms.Combine.topic.regex=(.*)
transforms.Combine.topic.replacement=all_tables

Есть и другие примеры SMT, которые вы можете найти в разделе документации Kafka Connect, и я думаю, что стоит попробовать RegexRouter.

person OneCricketeer    schedule 02.09.2018
comment
Должен ли я внести вышеуказанные изменения в connect-file-source.properties в Kafka connect? - person Shiva; 02.09.2018
comment
Нет, это свойства Debezium. - person OneCricketeer; 02.09.2018
comment
Спасибо. Но я попробовал вышеизложенное, это не сработало, но этот ответ на сообщение сработал kafka-topic-mapping">Возможно ли в Debezium настроить сопоставление тем table_name =› kafka? - person Shiva; 02.09.2018