Ошибка при попытке подключения к облаку Timescale с помощью SSL с помощью Apache Ni-Fi

Я создал конвейер данных с Апач Ни-Фай (версия 1.15.2) для передачи данных из базы данных MySQL в экземпляре AWS RDS в Timescale (postgreSQL). Ni-Fi работает в Linux Ubuntu 18.04 в Virtual Box поверх Windows 10. Конвейер был успешно протестирован с использованием в качестве цели базы данных Timescale, расположенной в моем локальном экземпляре Linux, без использования SSL.

Затем я изменил конвейер, чтобы использовать Облако шкалы времени в качестве цели (https://portal.timescale.cloud/логин). Имя базы данных: periodic-measurements

На странице службы Timescale Cloud я вижу эти учетные данные:

  • Ведущий: <host-string>
  • Порт: 10250
  • Пользователь: tsdbadmin
  • Пароль: <timescale-cloud-service-password>
  • URI сервиса: postgres://tsdbadmin:<timescale-cloud-service-password>@<host-string>:10250/defaultdb?sslmode=require
  • SSL-режим: require
  • Разрешенные IP-адреса: 0.0.0.0/0

Я использую процессор PutDatabaseRecord для записи данных в базу данных postgreSQL, которая использует службу контроллера DBCPConnectionPool.

Я скопировал сертификат CA, полученный со страницы службы Timescale Cloud, в следующий каталог в моем экземпляре Linux со следующим именем файла:

/etc/ca-certificates/ts-cloud-ca.pem

Это параметры конфигурации в службе контроллера DBCPConnectionPool:

• URL-адрес подключения к базе данных: jdbc:postgres://<host-string>:10250/periodic-measurements

• Имя класса драйвера базы данных: org.postgresql.Driver

• Расположение драйвера базы данных: /usr/share/java/postgresql/postgresql-42.3.1.jar

• Пользователь базы данных: tsdbadmin

• Пароль: <timescale-cloud-service-password>

• SSL-режим: require

• sslrootcert: /etc/ca-certificates/ts-cloud-ca.pem

При включении службы контроллера я получаю следующую ошибку:

StandardControllerServiceNode[service=DBCPConnectionPool[id=017e1005-818e-1423-7951-125faf9dff4d], name=Connector to Timescale Cloud, active=true] Failed to invoke @OnEnabled method due to java.sql.SQLException: No suitable driver

causes: org.apache.nifi.processor.exception.ProcessException: No suitable driver for the given Database Connection URL: No suitable driver for the given Database Connection URL

Я получаю тот же результат, если изменю настройки службы контроллера DBCPConnectionPool с помощью sslmode: verify-ca

Обратите внимание, что мне удалось успешно подключиться к базе данных Timescale Cloud с помощью Grafana из моего экземпляра Linux, используя те же учетные данные.

Любая подсказка, что может быть не так?

Спасибо,

Бернардо

🤔 А знаете ли вы, что...
Java поддерживает аннотации для добавления метаинформации в код.


33
1

Ответ:

Решено

Ошибка была в параметрах конфигурации в службе контроллера DBCPConnectionPool в URL-адресе подключения к базе данных, который начинался с jdbc:postgres, а не с jdbc:postgresql.

Правильная конфигурация:

• URL-адрес подключения к базе данных: jdbc:postgresql://:10250/periodic-measurements.