clickhouse-odbc-bridge
简单的 HTTP 服务器,其功能类似于 ODBC 驱动程序的代理。 主要动机是 ODBC 实现中可能出现的段错误或其他错误,这些错误可能会导致整个 clickhouse-server 进程崩溃。
此工具通过 HTTP 而不是通过管道、共享内存或 TCP 工作,因为
- 它更易于实现
- 它更易于调试
- jdbc-bridge 可以以相同的方式实现
用法
clickhouse-server
在 odbc 表函数和 StorageODBC 内部使用此工具。 但是,它可以作为独立的命令行工具使用,并在 POST 请求 URL 中使用以下参数
connection_string
-- ODBC 连接字符串。sample_block
-- ClickHouse NamesAndTypesList 格式的列描述,名称用反引号括起来,类型为字符串。 名称和类型以空格分隔,行以换行符分隔。max_block_size
-- 可选参数,设置单个块的最大大小。 查询在 post body 中发送。 响应以 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
" "https://127.0.0.1:9018/" > result.txt
$ cat result.txt
12246623837185725195925621517