Приемник Kafka Connect с таблицей Redshift не находится в публичной схеме - PullRequest
0 голосов
/ 21 сентября 2018

Я не могу заставить приемник 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". К сожалению, это не то место, где нам нужны данные.

Любая помощь очень ценится.

1 Ответ

0 голосов
/ 19 октября 2018

Я заметил, что исходный код, кажется, пытался сделать правильную вещь ... и затем понял, что версия используемого коннектора приемника JDBC не имела тех модификаций, которые были несколько недавними.Я перешел с версии 4.1.0 jar-коннектора приемника JDBC на версию 5.0.0, и данные вуаля перетекают в таблицу в указанной мной схеме.?

...