ClickHouse — колоночная аналитическая база данных с открытым исходным кодом. Заточена под агрегирование и фильтрацию по миллиардам строк в реальном времени — с минимальным потреблением ресурсов и максимальной скоростью.
Важно понять с самого начала: ClickHouse — не замена PostgreSQL или MySQL. Это аналитический движок (OLAP), а не транзакционная база (OLTP). Используйте его там, где нужно быстро агрегировать большие объёмы данных, а не там, где идут постоянные вставки и обновления одиночных записей.
Что это
ClickHouse разработан в Яндексе и выпущен в open source в 2016 году. Данные хранятся по столбцам, а не по строкам — это даёт колоссальный выигрыш на аналитических запросах: вместо чтения всей строки движок читает только нужные колонки.
Результат — запросы по миллиардам записей выполняются за миллисекунды. Компрессия данных «из коробки» экономит до 10× хранилища. За 9 лет существования ClickHouse собрал 45 800+ звёзд на GitHub и 2 700+ контрибьюторов — это один из самых активных open source проектов в инфраструктуре данных.
OLAP vs OLTP: OLAP — обработка аналитических запросов по большим массивам данных (отчёты, дашборды, агрегации). OLTP — обработка транзакций (вставки, обновления одиночных записей). ClickHouse создан для первого, и попытки использовать его как основное хранилище для приложения заканчиваются болью.
Зачем нужно
- Хранить и анализировать логи, метрики, трейсы — observability в реальном времени по миллиардам событий.
- Считать аналитику по миллиардам событий — дашборды и отчёты, которые отдаются за секунды, а не минуты.
- Построить аналитический склад — альтернатива дорогим DWH вроде BigQuery и Snowflake на своём железе.
- Хранить эмбеддинги и делать векторный поиск — ANN-индексы для ML и GenAI сценариев.
- Анализировать транзакции в финтехе — фрод-детекция, отчёты по платежам, аудит операций.
- Аналитика игровых событий — что происходит в игре прямо сейчас, а не через сутки после ETL.
Как устроено
| Возможность | Описание |
|---|---|
| Колоночное хранение | Запросы читают только нужные колонки — в 100× быстрее row-oriented баз на аналитике. |
| Векторизованное выполнение | Обработка батчами с максимальным использованием CPU (SIMD, параллелизм). |
| Сжатие данных | LZ4, ZSTD, Delta, DoubleDelta, Gorilla — лучшие в классе коэффициенты сжатия 5-10×. |
| SQL-совместимость | Стандартный SQL с расширениями: оконные функции, массивы, вложенные структуры, лямбды. |
| Материализованные представления | Предрассчитанные агрегаты, обновляемые при вставке — мгновенные дашборды. |
| Векторный поиск | Поддержка ANN-индексов для ML/GenAI — поиск по эмбеддингам. |
| Потоковая вставка | Сотни тысяч строк в секунду на один сервер. |
| ClickHouse Local | Запросы по локальным CSV/Parquet/JSON без сервера — для ad-hoc анализа. |
| Возможность | Описание |
| Колоночное хранение | Запросы читают только нужные колонки — в 100× быстрее row-oriented баз на аналитике. |
| Векторизованное выполнение | Обработка батчами с максимальным использованием CPU (SIMD, параллелизм). |
| Сжатие данных | LZ4, ZSTD, Delta, DoubleDelta, Gorilla — лучшие в классе коэффициенты сжатия 5-10×. |
| SQL-совместимость | Стандартный SQL с расширениями: оконные функции, массивы, вложенные структуры, лямбды. |
| Материализованные представления | Предрассчитанные агрегаты, обновляемые при вставке — мгновенные дашборды. |
| Векторный поиск | Поддержка ANN-индексов для ML/GenAI — поиск по эмбеддингам. |
| Потоковая вставка | Сотни тысяч строк в секунду на один сервер. |
| ClickHouse Local | Запросы по локальным CSV/Parquet/JSON без сервера — для ad-hoc анализа. |
ClickHouse Local — отдельный лайфхак: это CLI-инструмент, который позволяет делать SQL-запросы по локальным файлам без установки сервера. Идеально для разовой аналитики логов или выгрузок из соседней системы.
Когда использовать
ClickHouse закрывает конкретный класс задач. Ниже — таблица сценариев и рекомендаций.
| Сценарий | Подходит | Почему |
|---|---|---|
| Observability (логи, метрики, трейсы) | Да | Сжатие 5-10×, быстрые запросы по терабайтам логов. |
| Real-time дашборды по миллиардам событий | Да | Материализованные представления обновляются на лету. |
| Data warehousing как альтернатива BigQuery | Да | Self-hosted бесплатно, платите только за железо. |
| Хранение эмбеддингов для ML/GenAI | Да | ANN-индексы, SQL-интерфейс, высокая скорость. |
| Транзакционная база для приложения | Нет | OLAP, не OLTP. UPDATE/DELETE медленные и дорогие. |
| Проект с миллионами INSERT в секунду | Нет | ClickHouse оптимизирован под чтение, не под запись. |
| Хранение пользовательских данных с JOIN | Нет | PostgreSQL/MySQL справятся лучше и дешевле. |
| Сценарий | Подходит | Почему |
| Observability (логи, метрики, трейсы) | Да | Сжатие 5-10×, быстрые запросы по терабайтам логов. |
| Real-time дашборды по миллиардам событий | Да | Материализованные представления обновляются на лету. |
| Data warehousing как альтернатива BigQuery | Да | Self-hosted бесплатно, платите только за железо. |
| Хранение эмбеддингов для ML/GenAI | Да | ANN-индексы, SQL-интерфейс, высокая скорость. |
| Транзакционная база для приложения | Нет | OLAP, не OLTP. UPDATE/DELETE медленные и дорогие. |
| Проект с миллионами INSERT в секунду | Нет | ClickHouse оптимизирован под чтение, не под запись. |
| Хранение пользовательских данных с JOIN | Нет | PostgreSQL/MySQL справятся лучше и дешевле. |
Кто использует: Anthropic, Tesla, Lyft, Cisco, GitLab, Sony и 100 000+ разработчиков. Когда такие компании кладут свои данные в ClickHouse — это серьёзный сигнал о зрелости продукта.
Варианты развёртывания
| Вариант | Описание | Когда использовать |
|---|---|---|
| ClickHouse Cloud | Управляемый сервис на AWS, GCP, Azure. Автоскейлинг и бэкапы из коробки. | Продакшн без головной боли с инфраструктурой. |
| Self-hosted | Установка на свои серверы. Полный контроль, бесплатно навсегда. | Строгие требования к данным, свой дата-центр. |
| ClickHouse Local | CLI для запросов по локальным файлам без сервера. | Ad-hoc анализ, быстрая проверка гипотез. |
| BYOC | Управляемый сервис внутри вашего VPC — данные не покидают ваш облачный аккаунт. | Жёсткие требования к резидентности данных. |
| Вариант | Описание | Когда использовать |
| ClickHouse Cloud | Управляемый сервис на AWS, GCP, Azure. Автоскейлинг и бэкапы из коробки. | Продакшн без головной боли с инфраструктурой. |
| Self-hosted | Установка на свои серверы. Полный контроль, бесплатно навсегда. | Строгие требования к данным, свой дата-центр. |
| ClickHouse Local | CLI для запросов по локальным файлам без сервера. | Ad-hoc анализ, быстрая проверка гипотез. |
| BYOC (Bring Your Own Cloud) | Управляемый сервис внутри вашего VPC — данные не покидают ваш облачный аккаунт. | Жёсткие требования к резидентности данных. |
Быстрая установка (self-hosted)
curl https://clickhouse.com/ | sh
Одна команда — и ClickHouse установлен. Также доступна установка через Docker, apt/yum и бинарники для macOS, Linux, FreeBSD, Windows. Self-hosted вариант бесплатен навсегда по лицензии Apache 2.0.
Тарифы
Тарифы для ClickHouse Cloud — управляемого сервиса. Self-hosted бесплатен по open source лицензии.
| План | Хранилище | SLA поддержки | Особенности |
|---|---|---|---|
| Basic | До 1 TB | 1 рабочий день | SSO (Google/Microsoft), MFA. |
| Scale | Без ограничений | 1 час 24×7 (Sev1) | Автовертикальный скейлинг, Private networking. |
| Enterprise | Без ограничений | 30 мин (Sev1) | SAML SSO, CMEK, HIPAA/PCI. |
| План | Хранилище | SLA поддержки | Особенности |
| Basic | До 1 TB | 1 рабочий день | SSO (Google/Microsoft), MFA. |
| Scale | Без ограничений | 1 час 24×7 (Sev1) | Автовертикальный скейлинг, Private networking. |
| Enterprise | Без ограничений | 30 мин (Sev1) | SAML SSO, CMEK, HIPAA/PCI. |
- Бесплатный триал: 30 дней на любом плане.
- Open source: бесплатно навсегда (self-hosted).
- Философия: оплата только за потреблённые ресурсы, автоматическое масштабирование до нуля при простое.
Cloud vs Self-hosted: Cloud удобнее и быстрее стартует — нет затрат на DevOps. Self-hosted даёт полный контроль и нулевую стоимость лицензии. Для прототипов — Cloud выгоднее.
Интеграции
ClickHouse поддерживает 100+ интеграций на трёх уровнях. Главное для разработчика — официальные клиенты для популярных языков:
- Go
- Python
- Java
- Node.js
- C++
- Rust
Кроме клиентов, есть коннекторы к Kafka, RabbitMQ, S3, PostgreSQL, MongoDB, Grafana, Superset и десяткам других систем — полный список в официальной документации.
ClickHouse vs конкуренты
| Критерий | ClickHouse | PostgreSQL | Elasticsearch | BigQuery |
|---|---|---|---|---|
| Тип | Колоночная OLAP | Строковая OLTP | Поисковый движок | Serverless DWH |
| Скорость аналитики | Очень высокая | Низкая на больших объёмах | Средняя | Высокая |
| Стоимость хранения | Низкая (сжатие 5-10×) | Средняя | Высокая | Средняя |
| Open source | Да (Apache 2.0) | Да | Частично | Нет |
| Self-hosted | Да | Да | Да | Нет |
| Критерий | ClickHouse | PostgreSQL | Elasticsearch | BigQuery |
| Тип | Колоночная OLAP | Строковая OLTP | Поисковый движок | Serverless DWH |
| Скорость аналитики | Очень высокая | Низкая на больших объёмах | Средняя | Высокая |
| Стоимость хранения | Низкая (сжатие 5-10×) | Средняя | Высокая | Средняя |
| Open source | Да (Apache 2.0) | Да | Частично | Нет |
| Self-hosted | Да | Да | Да | Нет |
Типичный паттерн: ClickHouse часто используют как «speed layer» поверх существующей инфраструктуры — данные живут в PostgreSQL/S3, а ClickHouse даёт быстрый аналитический доступ к ним. Это не «или-или», а «вместе».
Ограничения
Ограничения
Что учитывать
ClickHouse — мощный инструмент, но с конкретными ограничениями. Их важно знать до того, как положите в него основную базу.
Это OLAP, не OLTP
UPDATE/DELETE медленные и дорогие, не подходит для транзакционных данных приложения.
Нет полноценных JOIN
в отличие от PostgreSQL, JOIN работают, но медленнее и с ограничениями на размер.
Высокие требования к RAM
для максимальной скорости данные должны помещаться в оперативную память.
Сложность эксплуатации
даже ClickHouse Cloud требует понимания шардирования и репликации на больших объёмах.
Меньше готовых интеграций с бизнес-инструментами
аналитических BI-инструментов много, но ERP/CRM-интеграций меньше, чем у PostgreSQL.
Аналитические запросы могут убить продакшн
без изоляции через read-only реплики тяжёлый запрос положит всех.
Лимиты бесплатного тарифа
Basic план с 1 TB и SLA 1 рабочий день не подходит для mission-critical задач.
Антипаттерны
Антипаттерны
Чего не делать
Эти ошибки я видел у команд, которые узнали про ClickHouse и побежали класть туда всё. Каждая — из реальных проектов.
Использовать как основную базу приложения — UPDATE/DELETE медленные, JOIN ограничены.
Это аналитика, не операционка.
Класть в ClickHouse сырые JSON-документы без схемы
колоночное хранение работает лучше всего с типизированными колонками.
Забывать про TTL для старых данных
аналитика имеет срок годности, без TTL база распухает и замедляется.
Запускать тяжёлые запросы на продакшн-ноде
изолируйте аналитику на read-only репликах, иначе один отчёт положит всех пользователей.
Игнорировать шардирование
на больших объёмах одна нода не справится, шардирование нужно продумывать заранее.
Не мониторить сжатие
если коэффициент сжатия падает, значит что-то не так со схемой данных.
Пытаться заменить аналитическую БД ClickHouse-ом без миграционного плана
даже если задача подходит, переезд данных и запросов занимает месяцы.
Чеклист
Чеклист
Проверка перед запуском
Перед тем как запустить ClickHouse в проекте, пройдитесь по этим пунктам.
Задача
аналитика, не транзакции — ClickHouse для агрегаций и отчётов, не для основной базы приложения.
Объёмы оправдывают ClickHouse
если данных меньше 100 ГБ, обычный PostgreSQL быстрее в развёртывании.
Сжатие настроено
выбраны кодеки LZ4/ZSTD под тип данных, проверены коэффициенты.
TTL установлен
старые данные автоматически удаляются, база не распухает.
Шардирование спланировано
понятно, как данные разлетятся по нодам при росте.
Read-only реплики для аналитики
тяжёлые отчёты не ложатся на основную запись.
Мониторинг настроен
отслеживаются скорость запросов, сжатие, размер базы, ошибки.
Бэкапы проверены
restore протестирован на тестовых данных, не на проде в момент аварии.
Команда понимает OLAP vs OLTP
иначе через месяц будут жаловаться на медленные UPDATE.
Бюджет на железо или Cloud посчитан
для серьёзных объёмов нужны серверы с RAM от 64 ГБ.
Ссылки