Я не могу заставить приемник Kafka Connect работать с таблицей, которой нет в общедоступной схеме.
Я использую Kafka Connect для отправки записей в базу данных Redshift с помощью операции приемника с использованием JdbcSinkConnector.
Я создал таблицу назначения в Redshift, но ее нет в схеме public
.(my_schema.test_table
. Примечание: auto.create
& auto.evolve
отключены в конфигурации соединителя)
Когда я пытаюсь указать местоположение таблицы в конфигурации соединителя, например, так ...
"table.name.format": "my_schema.test_table",
... Задача коннектора приемника сталкивается с этой ошибкой при попытке начать работу:
"Таблица my_schema.test_table отсутствует и автоматическое создание отключено"
от
Caused by: org.apache.kafka.connect.errors.ConnectException: Table my_schema.test_table is missing and auto-creation is disabled
at io.confluent.connect.jdbc.sink.DbStructure.create(DbStructure.java:86)
at io.confluent.connect.jdbc.sink.DbStructure.createOrAmendIfNecessary(DbStructure.java:63)
at io.confluent.connect.jdbc.sink.BufferedRecords.add(BufferedRecords.java:78)
...
Я пробовал следующие форматы для ввода имени таблицы:
my_schema.test_table
dev.my_schema.test_table
test_table
<- в этом случае я прошёл проверку существования, которая останавливает остальные, но затем сталкиваюсь с этой ошибкой каждый раз, когда Kafka Connect пытается написать строку: <ul>- «org.apache.kafka.connect.errors.RetriableException: java.sql.SQLException: java.sql.SQLException: недопустимая операция Amazon: отношение« test_table »не существует;»
- вероятно, поскольку
test_table
являетсяне в публичной схеме.: (
И это кажется , как будто код пытается правильно проанализировать это имя таблицы, но, к сожалению, он не регистрирует свои результаты.
Это моя строка подключения: "connection.url": "jdbc:redshift://xxx.xxx.xxx.xxx:5439/dev"
Я попытался обойти эту проблему, поэтому укажите currentSchema=my_schema
в строке подключения ... как для redshift
драйвера jdbc, так и для postgresql
. Не повезло.
Я использую Kafka Connect версии 1.1.0
Redshift JDBC JAR: RedshiftJDBC42-1.2.16.1027.jar
Я могу получать данные, помещаяТаблица в схеме public
и указание имени таблицы без схемы: "table.name.format": "test_table"
. К сожалению, это не то место, где нам нужны данные.
Любая помощь очень ценится.