Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

clickhouse-odbc-bridge

Простой HTTP-сервер, который работает как прокси для ODBC-драйвера. Основная причина его появления — возможные segfault и другие ошибки в реализациях ODBC, которые могут привести к сбою всего процесса clickhouse-server.

Этот инструмент работает через HTTP, а не через каналы, общую память или TCP, потому что:

  • Его проще реализовать
  • Его проще отлаживать
  • jdbc-bridge можно реализовать таким же образом

Использование

clickhouse-server использует этот инструмент в табличной функции odbc и StorageODBC. Однако его можно использовать как автономный инструмент из командной строки со следующими параметрами в URL POST-запроса:

  • 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