ClickHouse / clickhouse-tableau-connector-jdbc

Tableau connector to ClickHouse using JDBC driver
Apache License 2.0
57 stars 9 forks source link

Не удается подключиться из-за проблем с SSL на Windows #23

Closed MaximEvdokimov closed 2 years ago

MaximEvdokimov commented 2 years ago

Добрый день! Пытаюсь подключиться через новый драйвер, вижу такую ошибку

An error occurred while communicating with ClickHouse JDBC by ANALYTIKA PLUS Bad Connection: Tableau could not connect to the data source. Error Code: FAB9A2C5

ClickHouse exception, code: 1002, host: sas5-2953-proxy-hahn.sas.yp-c.yandex.net, port: 80; Unsupported or unrecognized SSL message Unable to connect to the ClickHouse (JDBC) by ANALYTIKA PLUS server "sas5-2953-proxy-hahn.sas.yp-c.yandex.net". Check that the server is running and that you have access privileges to the requested database. Connector Class: clickhouse_jdbc, Version: 0.1.1 For support, contact ANALYTIKA PLUS.

Через обычный драйвер ODBC подключаюсь без проблем

Версия коннектера: 0.1.1 OC: Windows 10 Tableau: пробовал через 2020.4.9

yurifal commented 2 years ago

Попробуйте использовать версию 0.1.4 коннектора. И встречный вопрос -- какой протокол используете? http или https?

MaximEvdokimov commented 2 years ago

Попробовал 0.1.4, текст ошибки немного поменялся

No enum constant com.clickhouse.client.config.ClickHouseSslMode.strict Unable to connect to the ClickHouse JDBC by ANALYTIKA PLUS server "sas5-2953-proxy-hahn.sas.yp-c.yandex.net". Check that the server is running and that you have access privileges to the requested database. Connector Class: clickhouse_jdbc, Version: 0.1.4 For support, contact ANALYTIKA PLUS.

MaximEvdokimov commented 2 years ago

Используем https, да

yurifal commented 2 years ago

еще четыре вопроса тогда: 1) по какому порту подключаетесь (8123 или 8443)? 2) в коннекте через ODBC ставите флаг SSL? 3) хост sas5-2953-proxy-hahn.sas.yp-c.yandex.net -- это прокси? 4) какую версию JDBC драйвера используете?

MaximEvdokimov commented 2 years ago

Тут наверно нужно уточнение - подключаюсь не к чистому Clickhouse, а к Clickhouse over Yandex Tables но меня уверяют, что с точки зрения внешнего инструмента это должно быть аналогично Clickhouse

Поэтому параметры такие:

  1. Если подключаться через ODBC, то коннект идет через порт 80. Попробовал сейчас остальные 2 порта, ошибка такая же
  2. да, флаг SSL обязательно ставим
  3. да, все такого рода хосты являются прокси
  4. скачал последнюю версию, Release v0.3.2-patch1
yurifal commented 2 years ago

пожалуйста, попробуйте комбинацию коннектор 0.1.4 (релиз) JDBC драйвер 0.3.1-patch

fyi с драйвером 0.3.2-patch1 нужно будет использовать коннектор версии 0.2.0 (который еще не выложен в релиз).

и там на вкладке Advanced --> в секции JDBC Driver URL Parameters можно добавить параметр sslrootcert и указать (локальный) путь к сертификату.

например у меня на macOS это выглядит вот так:

Screenshot 2022-01-14 at 17 47 00
yurifal commented 2 years ago

вот кстати и релиз 0.2.0 подоспел. тестируйте пожалуйста.

MaximEvdokimov commented 2 years ago

Юрий, добрый день!

переехал на указанные вами версии драйвер 0.3.2-patch1 коннектор версии 0.2.0

Unsupported or unrecognized SSL message, server ClickHouseNode(addr=http:sas1-2859-proxy-hahn.sas.yp-c.yandex.net:80, db=default)@1761184179 Unable to connect to the ClickHouse JDBC by ANALYTIKA PLUS server "sas1-2859-proxy-hahn.sas.yp-c.yandex.net". Check that the server is running and that you have access privileges to the requested database. Connector Class: clickhouse_jdbc, Version: 0.2.0

Ошибка в целом остается примерно такая же. Попробовал также явно прописать путь драйвера на вкладке Advanced, ничего не меняется если вбить путь неправильно, то ошибка меняется на javax.net.ssl.SSLException: Failed to get SSL context

Еще есть вопрос к строке db=default в описании ошибки, по идее нужно уметь выбирать также базу на сервере, но такой опции не вижу попробовал на вкладке Advanced также добавить что - то в стиле db=my_db_name во все параметры, но тоже ничего не происходит. Есть способ указать правильную базу?

artshevchenko commented 2 years ago

Добрый день! database=my_db_name

yurifal commented 2 years ago

покажите, куда и какой строкой прописан путь к корневому сертификату Яндекса. у меня на экране с примером это:

куда прописано: JDBC Driver URL Parameters что прописано: sslrootcert=/etc/ssl/certs/YandexInternalRootCA.crt

у Вас windows, поэтому сам сертификат можно положить на C: в корень, и тогда строка будет вот такая: sslrootcert=/YandexInternalRootCA.crt

у меня при такой настройке Tableau Desktop коннектится по https (8443) к экземпляру КХ, который развернут как Managed Database Instance в Я.Облаке.

У Вас перед ним стоит прокси, так что вполне возможно, что моя настройка не сработает.

MaximEvdokimov commented 2 years ago

сертификат лежит чуть глубже, чем в корне, путь указываю вот такой:

image

yurifal commented 2 years ago

лучше именно в корень положить -- тогда при публикации на Tableau Server можно абстрагироваться от ОС (windows или linux).

database=*ch_public  положите (пока что) тоже в URL Parameters -- потом можно будет их переместить выше, если коннект заработает.

и добавьте в URL Parameters еще вот такие (через запятую есно):

path=/query,check_for_redirects=1,use_path_as_db=1

MaximEvdokimov commented 2 years ago

Переложил сертификат в корень, перенес database=*ch_public в URL parameters, добавил path=/query,check_for_redirects=1,use_path_as_db=1 Ошибка пока такая же Попробую еще кого-то попросить подключиться для сбора статистики

Unsupported or unrecognized SSL message, server ClickHouseNode(addr=http:sas1-2859-proxy-hahn.sas.yp-c.yandex.net:80, db=*ch_public)@642150491 Unable to connect to the ClickHouse JDBC by ANALYTIKA PLUS server "sas1-2859-proxy-hahn.sas.yp-c.yandex.net". Check that the server is running and that you have access privileges to the requested database. Connector Class: clickhouse_jdbc, Version: 0.2.0

image

yurifal commented 2 years ago

у меня стойкое ощущение, что прокси с клиентом хочет общаться по http (без SSL)

artshevchenko commented 2 years ago

Так и не получилось подключиться?