У меня есть сервер Kafka, который отлично работает для синхронизации таблицы между серверами. Моя БД - PostgreSQL, и я использую коннектор приемника/источника JDBC.
Теперь мой вопрос: как я могу прочитать данные из двух таблиц в Source
и вставить данные в четыре разные таблицы на стороне Sink
.
пример:
Исходная таблица: Пользователи, Роли
Таблицы раковины: Рабочие, Менеджеры, Работодатели, ...
На родительском сервере все пользователи доступны в таблице Users
и связаны с таблицей Role
. с другой стороны я хочу вставить данные в конкретную таблицу в соответствии с ее ролью
Для JDBC Sink вам нужна одна тема на целевую таблицу. Таким образом, вам нужны четыре темы, по одной на целевую таблицу, заполненные объединенными данными. Это соединение должно произойти в какой-то момент конвейера. Варианты будут:
query
. Создайте четыре соединителя, каждый с необходимым запросом для заполнения каждой целевой темы соединением, которое выполняется на стороне postgres в SQL.users
и roles
, и вы будете выполнять соединение по мере прохождения каждой записи.имя таблицы берется из имени темы, которое может быть изменено как часть соединителя с использованием преобразования одиночного сообщения RegExRouter.
В решении номер один, как мы могли указать имя таблицы, потому что я не смог найти никакой опции для указания имени таблицы для вставки.