Я использую следующий коннектор для получения данных из MongoDB в мою тему Kafka:
{
"class": "com.mongodb.kafka.connect.MongoSourceConnector",
"type": "source",
"version": "1.10.0"
}
И запись, пришедшая в топик Kafka, имеет пустую информацию в заголовке:
headers: {}
Что мне нужно здесь, так это добавить жестко закодированную информацию заголовка в коннектор, чтобы все записи, обрабатываемые коннектором, могли иметь заголовок, похожий на:
headers: {"Source": "MongoDB"}
Я сталкиваюсь с преобразованием под названием InsertHeader: https://docs.confluent.io/platform/current/connect/transforms/insertheader.html#insertheader, которое, похоже, делает именно то, что мне нужно, однако, когда я пытаюсь использовать это с моим разъемом, он выдает ошибку:
Invalid value org.apache.kafka.connect.transforms.InsertHeader for configuration transforms.InsertHeader.type: Class org.apache.kafka.connect.transforms.InsertHeader could not be found.
Указано, что InsertHeader в настоящее время недоступен для управляемых соединителей, поэтому его нельзя использовать?
И какие альтернативы я могу использовать?
Заранее спасибо.
Когда вы говорите «управляемый коннектор», я предполагаю, что вы имеете в виду Confluent Cloud.
В этом случае вам нужно самостоятельно управлять тем, какие плагины/преобразования доступны для использования любым коннектором.
В качестве альтернативы развертывание без преобразований. Используйте другие инструменты для использования и вставки заголовков и записи в новые темы.
Мне удалось идентифицировать дополнительный файл JAR, содержащий необходимое преобразование InsertHeader. Добавление этого в папку /lib позволяет использовать это преобразование.