Kafka Connect JDBC Sink quote.sql.identifiers никогда не используют кавычки

это моя конфигурация kafka JdbcSinkConnector:

{
"name": "UAA_USER_WRITER",
"config": {
    "connector.class": "io.confluent.connect.jdbc.JdbcSinkConnector",
    "quote.sql.identifier": "never",
    "table.name.format": "uaa_user",
    "connection.password": "*******",
    "connection.user": "postgres",
    "topics": "UAA_USER_STREAM",
    "name": "UAA_USER_WRITER",
    "connection.url": "jdbc:postgresql://localhost:5432/uaa",
    "key.converter": "org.apache.kafka.connect.storage.StringConverter"
},
"tasks": [{
    "connector": "UAA_USER_WRITER",
    "task": 0
}],
"type": "sink"

}

как вы видите, я установил для "quote.sql.identifier" значение never, но все же он создает запросы с двойными кавычками, тогда я получаю эту ошибку:

PSQLException: ERROR: column "ID" of relation "uaa_user" does not exist

Обновлено:

Я добавил их к разъему UAA_USER_WRITER (как показано выше), и теперь он работает безупречно:

'transforms' = 'RenameField',
'transforms.RenameField.type' = 'org.apache.kafka.connect.transforms.ReplaceField$Value',
'transforms.RenameField.renames' = 'ID:id,ACTIVATION_CODE:activation_code,PASSWORD:password,REGISTER_DATE:register_date,USERNAME:username,DELETE_DATE:delete_date,SUBMIT_DATE:submit_date,BUSINESS_STATUS:business_status,IS_ACTIVE:is_active',

так что это означает, что проблема заключается в двойных кавычках, и, к сожалению, "quote.sql.identifier": "never" не может помочь. у меня слишком много таблиц, и писать преобразования переименования для каждой таблицы действительно утомительно

одна из записей в теме UAA_USER_STREAM (не знаю, достаточно ли):

rowtime: 2021/04/01 13:55:53.597 Z, key: <null>, value: {"ID": ****, "ACTIVATION_CODE": ****, "PASSWORD": ****, "REGISTER_DATE": ****, "USERNAME": ****, "DELETE_DATE": ****, "SUBMIT_DATE": ****, "BU
SINESS_STATUS": ****, "IS_ACTIVE": ****}, partition: 0

Вы уверены, что в этом проблема? Возможно, схема ваших данных не соответствует цели. Как выглядит таблица в postgres по сравнению с данными в теме? отредактируйте свой вопрос, включив в него примеры каждого из них.

Robin Moffatt 30.03.2021 13:14
Построение конвейеров данных в реальном времени с Apache Kafka: Руководство по Python
Построение конвейеров данных в реальном времени с Apache Kafka: Руководство по Python
Apache Kafka - популярная платформа распределенной потоковой передачи данных, которую можно использовать для построения конвейеров данных в реальном...
0
1
19
0

Другие вопросы по теме