ClickHouse / clickhouse-odbc

ODBC driver for ClickHouse
https://clickhouse.tech
Apache License 2.0
253 stars 89 forks source link

Unable to connect from ODBC. #289

Open Keiichi-Hirano opened 4 years ago

Keiichi-Hirano commented 4 years ago

SQL.LOG When I make an ODBC connection to a server that has a confirmed JDBC connection, it does not respond. Both connections are made from the same PC (windows10). JDBC connection is DBeaver and ODBC is trying to connect from Tableau after setting DNS. What are the factors that should be checked?

ghost commented 4 years ago

Some additional info - JDBC works fine with DBeaver, but not with Tableau. I did exactly same as the Mr. ANDREY LIPSKY in the link below and got an error. https://community.tableau.com/thread/322534

The error message is below. データ ソースとの通信中にエラーが発生しました。(Error occurred while connecting to Datasource)

無効な接続: Tableau はデータ ソースに接続できませんでした。(Invalid connection: Tableau could not connect to the data soure エラー コード(error code): 37CE01A3 詳細はありません。(There's no further detailed descriptions) 1-3. with

traceon commented 4 years ago

I see two errors, that should be addressed before anything else:

[HY000] HTTP status code: 404 Received error: Code: 73, e.displayText() = DB::Exception: Unknown format ODBCDriver2, e.what() = DB::Exception

(1)

Which version of the ClickHouse server and which version of the ClickHouse ODBC driver are you using?

[HY000] Host not found: http://10.98.50.51 (1)

This is obviously a misconfiguration issue. Please make sure a ClickHouse server is running at that address.

Keiichi-Hirano commented 4 years ago

Which version of the ClickHouse server and which version of the ClickHouse ODBC driver are you using?

Server Version : 1.1.54236 ODBC Version : 1.1.6-win64

This is obviously a misconfiguration issue. Please make sure a ClickHouse server is running at that address.

Yes, Clickhouse is running on the server on 10.98.50.51. This has been confirmed by JDBC connection (DBeaver). The settings of ODBC have been modified as below. As shown in the attached sys.log Error is output. Could it be that the version of Quick start is old? If that's the case, why isn't it up to date? If Quick start is outdated, it is disliked because it adversely affects the user's verification.

Clickhouse_ODBC SQL.LOG

traceon commented 4 years ago

I am not sure which Quick Start are you referring to, but 1.1.54236 looks way too old, hence Code: 73, e.displayText() = DB::Exception: Unknown format ODBCDriver2, e.what() = DB::Exception.

filimonov commented 4 years ago

@traceon may be we should add a version compatibility table in readme.

traceon commented 4 years ago

@filimonov could you please file an issue for that?

Keiichi-Hirano commented 4 years ago

I upped the version of clickhouse and that solved it. Thank you. It would be nice to have some version compatibility information. I don't want to lose the connection as soon as I bring the ODBC up to date. Or are you guaranteeing backward compatibility? From which version?

ex. Compatibility table Server version : ODBC version 1.1.54236 : 1.0.0.20190523 or less

traceon commented 4 years ago

We don't have any enforced version compatibility convention right now. You probably need to monitor release notes when upgrading, and, in general, have some kind of staging environment, where you can verify, that the new versions of the driver and/or the server work together as you expect them to work.

Keiichi-Hirano commented 4 years ago

I agree with you. However, there does not appear to be any mention in the release notes of which version of the DB is compatible with the driver update. If the user updates the driver and it does not match the DB to which it connects You'll get inquiries like this one. In order to avoid unnecessary inquiries, it is recommended to list the driver version and the corresponding DB version.

traceon commented 4 years ago

That makes sense, and this is exactly what @filimonov suggested. It is just a matter of allocating resources to that task. We need to actually verify what versions work, the degree of support, since some features are being added to the server and picked up by the driver, and some of features of the server that make driver inoperable with such server. It is not hard to do, but it is not trivial either. And as you can imagine, there are some other important things scheduled too.