Как я могу изменить стандартное соглашение об именах Topi c в Debezium, чтобы оно соответствовало стратегии автоматического создания сливающейся таблицы улья? - PullRequest
0 голосов
/ 07 мая 2020

Я создаю синхронизатор данных, который фиксирует изменение данных из MySQL Source и экспортирует данные в куст.

Я решил использовать Kafka Connect для реализации этого. Я использую Debezium в качестве соединителя источника и confluent hdfs в качестве соединителя приемника.

Но проблема в том, что соглашение об именах Debezium для Kafka topi c выглядит примерно так:

serverName.databaseName.tableName

В конфлюентных свойствах приемника hdfs я должен настроить topics так же, как сгенерированный Debezium:

"topics": "serverName.databaseName.tableName"

Соединительный коннектор приемника hdfs будет генерировать путь в HDFS, например:

/topics/serverName.databaseName.tableName/partition=0

, что определенно вызовет некоторые проблемы в HDFS / Hive, поскольку путь содержит синтаксис ., фактически, внешняя таблица, автоматически сгенерированная сливным коннектором приемника hdfs, не удалась из-за проблемы с путём. этот сливной коннектор приемника hdfs, созданный через имя c topi?

1 Ответ

0 голосов
/ 08 мая 2020

Коннектор HDFS заменяет точки (и тире) символами подчеркивания при создании таблиц Hive

Сама HDFS не заботится о точках в путях. Проблема в том, что у вас не может быть точки после порта, и у вас там как-то есть /null.

hdfs://localhost:9000./null


есть ли в любом случае, что я могу изменить соглашение об именах Debezium по умолчанию для тем

Решение не имеет ничего общего с Дебезиум. Вы можете использовать RegexRouter, которая является базовой Apache библиотекой Kafka Connect в конфигурации transforms для вашего коннектора источника или приемника, в зависимости от того, как рано вы хотите «исправить» проблему.

Вы также можете написать собственное преобразование и поместить его в plugin.path

Connect.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...