> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-detect-table-modification.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Документация по ODBC bridge

# clickhouse-odbc-bridge

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

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

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

<div id="usage">
  ## Использование
</div>

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

* `connection_string` -- строка подключения ODBC.
* `sample_block` -- описание столбцов в формате ClickHouse NamesAndTypesList: имя в обратных кавычках,
  тип в виде строки. Имя и тип разделяются пробелом, строки разделяются
  символом новой строки.
* `max_block_size` -- необязательный параметр, задаёт максимальный размер одного блока.
  Запрос отправляется в теле POST-запроса. Ответ возвращается в формате RowBinary.

<div id="example">
  ## Пример:
</div>

```bash theme={null}
$ 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
```
