Skip to main content
Официальные клиенты C# подключаются к ClickHouse по HTTP или нативному TCP-протоколу. Оба клиента входят в пакет NuGet ClickHouse.Driver.

HTTP

HTTP-клиент предоставляет высокоуровневый потокобезопасный API ClickHouseClient и API ADO.NET, используемый ORM. Он предназначен для .NET 6.0 и более поздних версий и рекомендуется для большинства приложений. Используйте HTTP-клиент, если вам нужны:
  • ADO.NET или ORM;
  • ввод и вывод данных в форматах CSV, JSONEachRow, Parquet или в виде сырого потока;
  • аутентификация по схеме bearer или настраиваемые HTTP-заголовки;
  • настраиваемое определение типа параметра, форматирование параметров или преобразование при чтении;
  • указание базы данных или роли для каждого запроса;
  • более высокая производительность при работе с JSON. TCP-клиент может передавать значения JSON только в текстовом виде.
Документация по HTTP-клиенту.

Нативный TCP

Нативный TCP-клиент пока экспериментальный, поэтому его публичный API может измениться в будущих версиях. Он предоставляет API ClickHouseTcpClient для чтения столбцовых блоков, нативного сжатия, соединений из пула и закреплённых сеансов. Клиент поддерживает .NET 8.0 и более новые версии. Используйте нативный TCP-клиент, если вам нужны:
  • более высокая производительность, особенно при обработке данных по столбцам;
  • столбцовые блоки данных;
  • постоянные соединения;
  • закреплённые сеансы через OpenSessionAsync;
  • обратные вызовы для получения данных о ходе выполнения, профилировании, журналах, итогах и экстремальных значениях;
  • передача контекста трассировки W3C в ClickHouse.
Документация по нативному TCP-клиенту.