| Параметр | Clickhouse | Druid |
|---|---|---|
| Тип и архитектура | Колоночная OLAP-СУБД, единый сервер (моно-бинарь), масштабируется шардами и репликами | Распределённая система из нескольких ролей: Historical, Broker, Coordinator, MiddleManager/Overlord, Router |
| Модель хранения | Колоночные части (parts) движка MergeTree, сортировка по ключу, фоновое слияние | Колоночные сегменты (segments), партиционированные по времени, версионируются и раздаются Historical-нодам |
| Rollup / преагрегация | Опционально через AggregatingMergeTree и materialized views; по умолчанию хранит сырые строки | Rollup встроен в ingestion: события агрегируются по измерениям на этапе загрузки (можно отключить) |
| Ingestion в реальном времени | Kafka-движок и async inserts; near-real-time, оптимально для батчевых и потоковых вставок | Нативный стриминговый ingestion из Kafka/Kinesis с exactly-once, данные видны почти сразу |
| SQL | Богатый диалект SQL: JOIN, оконные функции, подзапросы, CTE, массивы, множество функций | Druid SQL (на базе Apache Calcite) + нативный JSON-язык; JOIN ограничены, ориентация на GROUP BY по времени |
| Профиль скорости | Очень быстрые сканирующие агрегации по большим объёмам, тяжёлые ad-hoc и аналитические запросы | Низкая задержка и высокая конкурентность коротких time-series запросов, много одновременных пользователей |
| Индексация | Разреженный первичный индекс по ключу сортировки + skip-индексы (min/max, bloom и др.) | Битмап-индексы по измерениям (dimensions), эффективная фильтрация по высококардинальным полям |
| Зависимости эксплуатации | Минимальные: сам ClickHouse (+ Keeper/ZooKeeper для репликации). Проще развернуть | Требует ZooKeeper, глубокое хранилище (S3/HDFS) и метаданные в реляционной БД; больше движущихся частей |
| Хранение данных | Локальные диски нод; поддержка tiered storage и S3 как отдельного диска | Deep storage (S3/HDFS) как источник истины, Historical-ноды кэшируют сегменты локально |
| Кривая обучения | Ниже для SQL-аналитика: знакомый SQL, один компонент | Выше: нужно понимать роли процессов, сегменты, спеки ingestion и rollup |
| Стоимость и лицензия | Apache 2.0, open-source; облако ClickHouse Cloud и managed-варианты (в т.ч. Yandex Cloud, VK Cloud) | Apache 2.0, open-source; managed-варианты (например Imply); эксплуатация дороже из-за числа компонентов |
ClickHouse — это моно-СУБД: один тип сервера, который масштабируется шардами и репликами, с локальным хранением частей MergeTree. Druid — распределённая система из нескольких ролей (Historical, Broker, Coordinator, Overlord/MiddleManager), где источником истины служит deep storage (S3/HDFS), а Historical-ноды кэшируют сегменты. Отсюда у ClickHouse проще эксплуатация, а у Druid — более чёткое разделение ingestion, хранения и запросов и удобная эластичность.
Rollup — это преагрегация событий по набору измерений, уменьшающая объём и ускоряющая запросы. В Druid rollup встроен в ingestion: строки с одинаковыми измерениями сворачиваются с суммированием метрик на этапе загрузки (можно отключить). В ClickHouse аналогичное достигается через AggregatingMergeTree и materialized views, но по умолчанию он хранит сырые строки, что даёт больше гибкости для ad-hoc анализа.
Druid исторически проектировался под высокую конкурентность коротких time-series запросов с низкой задержкой (типичный кейс — дашборды на много пользователей), чему помогают битмап-индексы по измерениям и распределённые Broker/Historical. ClickHouse отлично справляется с тяжёлыми сканирующими агрегациями, а под высокую конкурентность его настраивают ограничением памяти на запрос, реплики и кэши.
ClickHouse предоставляет богатый SQL: JOIN, оконные функции, подзапросы, CTE, массивы и множество функций. У Druid есть Druid SQL на базе Apache Calcite и нативный JSON-язык, но JOIN и сложные подзапросы ограничены — движок заточен под GROUP BY по времени и измерениям. Если нужны сложные соединения и произвольная аналитика, ClickHouse гибче. Разобрать такие различия и потренировать SQL-запросы можно на /sql-sandbox или в разделе задач /interviews.
Postgresql vs Clickhouse · Pandas vs Polars · Tableau vs Powerbi Datalens Superset · SQL vs Pandas · Dbt vs Airflow · Redshift vs Bigquery vs Snowflake · Airflow vs Dagster vs Prefect · Greenplum vs Clickhouse · Excel vs SQL · Postgresql vs Mysql · Sqlite vs Postgresql · Spark vs Pandas · Power Bi vs Excel · Python vs R