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 LocalCLI для запросов по локальным файлам без сервера.Ad-hoc анализ, быстрая проверка гипотез.
BYOCУправляемый сервис внутри вашего VPC — данные не покидают ваш облачный аккаунт.Жёсткие требования к резидентности данных.
ВариантОписаниеКогда использовать
ClickHouse CloudУправляемый сервис на AWS, GCP, Azure. Автоскейлинг и бэкапы из коробки.Продакшн без головной боли с инфраструктурой.
Self-hostedУстановка на свои серверы. Полный контроль, бесплатно навсегда.Строгие требования к данным, свой дата-центр.
ClickHouse LocalCLI для запросов по локальным файлам без сервера.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 TB1 рабочий деньSSO (Google/Microsoft), MFA.
ScaleБез ограничений1 час 24×7 (Sev1)Автовертикальный скейлинг, Private networking.
EnterpriseБез ограничений30 мин (Sev1)SAML SSO, CMEK, HIPAA/PCI.
ПланХранилищеSLA поддержкиОсобенности
BasicДо 1 TB1 рабочий день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 конкуренты

КритерийClickHousePostgreSQLElasticsearchBigQuery
ТипКолоночная OLAPСтроковая OLTPПоисковый движокServerless DWH
Скорость аналитикиОчень высокаяНизкая на больших объёмахСредняяВысокая
Стоимость храненияНизкая (сжатие 5-10×)СредняяВысокаяСредняя
Open sourceДа (Apache 2.0)ДаЧастичноНет
Self-hostedДаДаДаНет
КритерийClickHousePostgreSQLElasticsearchBigQuery
ТипКолоночная 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 ГБ.