Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

clickhouse-odbc-bridge

ODBC ドライバのプロキシのように動作するシンプルな HTTP サーバーです。主な理由は、 ODBC 実装で segfault やその他の不具合が発生し、 clickhouse-server プロセス全体がクラッシュする可能性があるためです。

このツールがパイプ、共有メモリ、TCP ではなく HTTP 経由で動作するのは、次の理由によります。

  • 実装が簡単だからです
  • デバッグが簡単だからです
  • jdbc-bridge も同じ方法で実装できるからです

使用方法

clickhouse-server は、このツールを odbc table function および StorageODBC 内部で使用します。 ただし、コマンドラインからスタンドアロンツールとして使用することもでき、その場合は POSTリクエストのURLに以下のパラメータを指定します。

  • connection_string – ODBC 接続文字列。
  • sample_block – ClickHouse の NamesAndTypesList フォーマットによるカラムの説明。名前はバッククォートで囲み、 型は文字列として指定します。名前と型はスペース区切り、行は 改行区切りです。
  • max_block_size – 任意のパラメータ。単一ブロックの最大サイズを設定します。 クエリはPOSTボディで送信されます。レスポンスは RowBinary フォーマットで返されます。

例:

$ clickhouse-odbc-bridge --http-port 9018 --daemon

$ curl -d "query=SELECT PageID, ImpID, AdType FROM Keys ORDER BY PageID, ImpID" --data-urlencode "connection_string=DSN=ClickHouse;DATABASE=stat" --data-urlencode "sample_block=columns format version: 1
3 columns:
\`PageID\` String
\`ImpID\` String
\`AdType\` String
"  "http://localhost:9018/" > result.txt

$ cat result.txt
12246623837185725195925621517
Navigation