メインコンテンツへスキップ
この方法を使うと、ODBC ドライバが利用できる任意のデータベースに接続できます。 設定例:

設定項目:
SettingDescription
dbデータベース名。データベース名が <connection_string> パラメータで設定されている場合は省略できます。
tableテーブル名。スキーマがある場合はスキーマ名も含めます。
connection_string接続文字列。
invalidate_queryDictionary の状態を確認するためのクエリ。任意です。詳しくは LIFETIME を使用した Dictionary データの更新 を参照してください。
background_reconnect接続に失敗した場合、バックグラウンドでレプリカに再接続します。任意です。
queryカスタムクエリ。任意です。
table フィールドと query フィールドは同時に使用できません。また、table または query のいずれか一方を必ず指定する必要があります。
ClickHouse は ODBC ドライバから受け取った引用符を使用し、ドライバに送るクエリ内のすべての設定値を引用符で囲みます。そのため、テーブル名はデータベース内の実際の大文字・小文字に合わせて設定する必要があります。 Oracle 使用時にエンコーディングの問題が発生する場合は、該当する よくある質問 を参照してください。

ODBC Dictionary 機能における既知の脆弱性

ODBC ドライバの接続パラメータ Servername を使ってデータベースに接続する場合、この値は置き換え可能です。その場合、odbc.iniUSERNAMEPASSWORD の値がリモートサーバーに送信され、漏えいするおそれがあります。
安全でない使用例 PostgreSQL 用に unixODBC を設定します。/etc/odbc.ini の内容:
次のようなクエリを実行すると
ODBC ドライバは、odbc.ini にある USERNAMEPASSWORD の値を some-server.com に送信します。

PostgreSQL への接続例

Ubuntu OS。 unixODBC と PostgreSQL 用 ODBC ドライバをインストールします。
/etc/odbc.ini (ClickHouse を実行するユーザーでログインしている場合は ~/.odbc.ini) を設定します:
ClickHouse での Dictionary の設定:

ライブラリのフルパスをドライバー DRIVER=/usr/local/lib/psqlodbcw.so で指定するために、odbc.ini の編集が必要になる場合があります。

MS SQL Server への接続例

Ubuntu OS 環境。 MS SQL に接続するための ODBC ドライバをインストールします:
ドライバーの設定:
注記:
  • 特定の SQL Server バージョンでサポートされる最も古い TDS バージョンを確認するには、製品ドキュメントを参照するか、MS-TDS Product Behavior を参照してください
ClickHouse での Dictionary の設定:
最終更新日 2026年7月1日