1 минута чтения
26 февраля 2025 г.
ClickHouse в практике дата-консалтинга: как и на каких проектах мы используем эту СУБД

ClickHouse — колоночная open-source СУБД, созданная для быстрой онлайн-обработки аналитических запросов. Она отлично справляется с большими объемами данных, способна обрабатывать миллионы строк в секунду и поддерживает горизонтальное масштабирование. В общем — то, что надо для случаев, когда данных уже много и постоянно становится только больше:
- аналитических платформ — систем сбора и анализа бизнес-метрик, отчетности и дашбордов,
- систем мониторинга — логов, событий безопасности и метрик серверов,
- рекламных и маркетинговых платформ — отслеживания пользовательского поведения, эффективности кампаний,
- финансовых сервисов — анализа транзакций, выявления аномалий и прогнозирования.
Мы часто используем ClickHouse в своих проектах, и в этой статье я расскажу о главных особенностях, плюсах и минусах, а заодно приведу пример из нашей практики.
ClickHouse: краткий обзор
Что обеспечивает ClickHouse ее производительность и быстродействие? Эти свойства заложены в самой архитектуре, и в официальной документации можно почитать подробнее.
Ключевая особенность в том, что это колоночная СУБД. Этот формат позволяет быстрее, чем строковый, находить данные в таблицах и обрабатывать их без лишних движений. Если строковая СУБД для выполнения проходит каждую строчку, то колоночная не тратит ресурс на чтение каждого столбца, а сразу переходит к нужным. За счет этого он не только работает быстрее, но и снижает нагрузку на хранилище, потому что не делает «лишних» операций.
У ClickHouse есть несколько особенностей, которые позволяет оперативно анализировать потоки данных в реальном времени. К ним относится, например:
- поддержка materialized view — создание физических таблиц, в которых хранятся результаты выполнения SQL-запросов,
- поддержка Massively Parallel Processing (MPP) или параллельной разработки, которая позволяет оптимизировать ресурсы машины для вычислений,
- движок MergeTree и его производные, которые позволяют записывать данные по частям и мержить в фоновом режиме, поддерживают партицирование, репликацию и семплирование данных.
За счет этого СУБД отлично подходит для систем мониторинга, анализа логов, рекламных и финансовых платформ.
Благодаря эффективным алгоритмам сжатия объем хранимых данных уменьшается в несколько раз, снижая требования к дисковому пространству.
При всех этих плюсах, у ClickHouse есть и минусы:
- ограниченная поддержка транзакций и требований ACID,
- сложности с точечными операциями с отдельными строками или столбцами из-за того, что СУБД рассчитана на работу с большими массивами данных.
ClickHouse в облаке или on-premise
ClickHouse можно установить как локально на свою машину, так и развернуть в облаке. Какой вариант лучше, зависит от особенностей проекта и возможностей заказчика. На эту тему можно написать отдельную статью, но здесь мы пройдемся по главному.
- Развертывание и масштабирование. В облаке вся работа по развертыванию и настройке сервиса ложится на провайдера. Он его устанавливает, обновляет, выделяет дополнительные ресурсы или добавляет новые ноды. Если Clickhouse установлен локально, то этим предстоит заниматься команде проекта — в том числе закупкой оборудования для расширения.
- Производительность. В облаке она зависит от ресурсов и сетевой архитектуры провайдера, в сценарии on-premise — только от возможностей заказчика, который может полностью контролировать аппаратную часть (например, выбирать CPU, RAM и диски).
- Безопасность. Безопасность зависит от провайдера, но обычно включает механизмы шифрования данных, управление доступами и защиту от атак. Однако, в некоторых отраслях (финансы, медицина) использование публичного облака ограничено нормативными требованиями. On-premise дает полный контроль над данными.
- Стоимость. Как правило в облаке, пользователь платит по подписке и избавлен от необходимости тратиться на покупку и настройку оборудования. Для того, чтобы развернуть ClickHouse локально, необходимо либо также арендовать виртуальную машину, либо вложиться в покупку оборудования.
Итого: облако лучше, когда нужен быстрый старт и минимизация сложностей с установкой и администрированием. On-premise подойдет, когда важен полный контроль над инфраструктурой и данными.
ClickHouse в нашей практике: быстрая обработка постоянно изменяющихся данных
Один из лучших наших кейсов с ClickHouse — это беттинг-сервис betPawa, потому что здесь есть именно то, ради чего стоит вообще заморачиваться с этой СУБД: огромные массивы постоянно обновляющихся данных.
Этот кейс уже описан на сайте. Если кратко, то когда заказчик обратился к нам, его система аналитики была очень медленной: AirFlow собирал данные в MySQL, и при этом ETL-процесс мог занимать всю ночь и даже больше. В итоге из-за этого утром нельзя было посмотреть данные за предыдущий день. А данных было много: действия игроков (регистрации, ставки), платежи, переводы. К тому же это были постоянно меняющиеся данные, которые нужно было постоянно быстро обновлять.
Нужно было предложить новую инфраструктуру — сделать ее более производительной и способной к масштабированию, чтобы она справлялась с растущими массивами данных.
Мы работали с этим заказчиком в формате аутстаффа — то есть один (а потом и второй, когда нагрузка выросла) из наших инженеров ушел на это проект на фулл-тайм. Это связано с тем, что поток задач там всегда большой, инфраструктура требует постоянного внимания и обновления.
Наши инженеры предложили такой вариант:
- Все данные собираются в ClickHouse. Туда они поступают напрямую из MySQL или через топики Kafka, в которую отправляются данные из MySQL с помощью MaxWell’s Daemon или напрямую из источников.
- Таким образом, большая часть данных проходит промежуточную стадию Stage, на которой потоки из нескольких баз объединяются и трансформируются. После этого они отправляются в таблицы фактов, а оттуда — на витрины данных для аналитиков. Часть данных минует Stage и сразу отправляется в таблицы фактов.
- Некоторые таблицы показывают данные с задержкой в 1 день или несколько часов, но многие «отстают» всего на 3-5 минут.

Вот так от процессов, которые могли тянуться всю ночь, перешли к аналитике в реальном времени с минимальными задержками.
Если хотите внедрить ClickHouse на своем проекте или выстроить процессы для настройки real-time обработки данных — оставляйте заявку на сайте!
[ Рекомендации ]
Читайте также
[ Связаться ]
Давайте раскроем потенциал вашего бизнеса вместе
Заполните форму на бесплатную консультацию