ClickHouse или Greenplum для аналитики
Обе системы используются для аналитических нагрузок, но устроены по-разному, и выбор между ними зависит в первую очередь от характера запросов, а не от объёма данных.
Архитектура
Greenplum — массово-параллельная СУБД на основе PostgreSQL: мастер-узел планирует запрос, сегменты выполняют его над своей частью данных. Поддерживаются транзакции, полноценный SQL и сложные соединения.
ClickHouse — колоночная СУБД, оптимизированная под быстрые агрегации по большим таблицам. Данные хранятся в движках семейства MergeTree, фоновые слияния сортируют и сжимают части.
Сравнение
| Критерий | Greenplum | ClickHouse |
|---|---|---|
| Соединения больших таблиц | Сильная сторона, перераспределение данных между сегментами | Возможны, но требуют аккуратного проектирования |
| Агрегации по широким таблицам | Хорошо | Очень быстро |
| Обновление и удаление строк | Обычный SQL, транзакции | Мутации и специальные движки, асинхронно |
| Совместимость | Диалект PostgreSQL | Собственный диалект SQL |
| Эксплуатация | Требует опыта администрирования MPP | Проще начать, сложнее с репликацией и шардированием |
Практические рекомендации
- детальный слой с большим числом соединений и историей — Greenplum или аналог;
- витрины для дашбордов, логи, события, телеметрия — ClickHouse;
- часто разумна связка: расчёты в MPP, готовые витрины выгружаются в ClickHouse для быстрых отчётов.
Перед выбором стоит прогнать на обеих системах десяток реальных запросов из журнала текущего хранилища — это надёжнее любых общих сравнений.