#apache-kafka #apache-kafka-connect #confluent-platform
#апачи-кафка #apache-kafka-connect #слияние-платформа
Вопрос:
Я пытаюсь создать соединитель приемника jdbc, который считывает данные из темы и помещает данные в существующую таблицу. Проблема в том, что это не сопоставление 1: 1 с таблицей. Скорее, все имена столбцов отличаются от того, что у меня есть в сообщении
Ниже показано, как выглядит мое сообщение в теме:
{
"dealNo":"6666777",
"exception":
{"code":12345E
"desc": couldnot process the issue,
},
}
Таблица базы данных отображается следующим образом: ERROR_TB
id: auto generated sequence
srcId : "APP" (need to pass default value)
factory : dealNo (from json)
body : here i need to pass the entire message
description : exception (from json)
Может кто-нибудь, пожалуйста, подсказать мне, как применить преобразования для этого? я новичок в этом и не уверен, как этого можно достичь
Ответ №1:
Надеюсь, вы поняли это некоторое время назад, но для всех в будущем, поскольку у меня был тот же вопрос… это кажется достаточно простым, если посмотреть на эту веб-страницу https://docs.confluent.io/platform/current/connect/transforms/replacefield.html#replacefield
Вам просто нужно указать эти свойства при настройке соединителя JDBC.
Переименовать поле В этом фрагменте конфигурации показано, как использовать ReplaceField со свойством renames .
"transforms": "RenameField",
"transforms.RenameField.type": "org.apache.kafka.connect.transforms.ReplaceField$Value",
"transforms.RenameField.renames": "foo:c1,bar:c2"
Это заменяет имена полей foo и bar на c1 и c2.
Перед: {«foo»:22,»bar»:»baz»}
После: {«c1″:22,»c2»: «baz»}