Об этом проекте
chconn — это драйвер на чистом Go для ClickHouse, который взаимодействует через нативный TCP-протокол и оптимизирован для высокопроизводительного колоночного доступа к данным. Он поддерживает полноценные дженерики, обеспечивая типобезопасные колоночные операции как для вставки, так и для выборки.
Ключевые возможности:
- **Колоночная вставка и выборка**: добавление данных в типизированные колонки и массовая вставка или чтение блок за блоком для максимальной пропускной способности.
- **Строчно-ориентированные запросы**: привычная итерация в стиле SQL с помощью `Query` и `Scan`.
- **Сканирование в структуры**: прямое отображение результатов в структуры Go по имени или позиции поля, с опциями `RowToStructByName`, `RowToStructByNameLax`, `RowToStructByPos` и `RowTo`.
- **Потоковая вставка**: добавление строк или запись колоночных пакетов для многопакетных вставок.
- **Параметризованные запросы**: типобезопасные параметры запросов с использованием нативного синтаксиса ClickHouse.
- **Пул соединений**: настраиваемый пул с минимальным и максимальным числом соединений, временем жизни, временем простоя и проверками работоспособности.
- **Всесторонняя поддержка типов**: включает числовые типы, строки, даты, UUID, IP-адреса, перечисления, массивы, nullable, low cardinality, maps, tuples, nested, JSON, variants, dynamic, геотипы и многое другое.
- **Сжатие**: поддержка LZ4 и ZSTD.
- **TLS/SSL**: несколько режимов SSL.
- **Генератор кода (chgen)**: генерация структур моделей Go и объявлений колонок из таблиц ClickHouse или SQL-файлов.
- **Конструктор SQL**: fluent-конструктор для запросов SELECT с объединениями, условиями, группировкой и многим другим.
- **Экспорт JSON**: экспорт результатов запросов в виде объектов JSON, массивов или построчно.
- **Обратные вызовы прогресса и профиля**: мониторинг выполнения запросов в реальном времени.
- **Обработка ошибок**: типизированные ошибки ClickHouse с кодами и трассировками стека, а также sentinel-ошибки.
- **Поддержка контекста**: все операции принимают контекст для тайм-аутов и отмены.
Поддерживаются две последние стабильные версии Go и ClickHouse 24.3+. Драйвер протестирован на ClickHouse 24.3, 24.8, 25.3, 25.8 и 26.2. Бенчмарки показывают значительное улучшение производительности и выделения памяти по сравнению с другими Go-драйверами для ClickHouse.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.