ClickHouse vs PostgreSQL для аналитики: сравнение производительности

Опубликовано: 1 апреля 2024 г.
#clickhouse #postgresql #аналитика #бенчмарк

ClickHouse vs PostgreSQL: что выбрать для аналитики

При выборе СУБД для аналитических задач часто возникает вопрос: использовать специализированную колоночную БД или достаточно традиционной реляционной системы? Сравним ClickHouse и PostgreSQL.

Разница в архитектуре

PostgreSQL — классическая реляционная СУБД с построчным хранением данных. Она отлично подходит для транзакционных систем (OLTP), где требуется быстрая запись и обновление отдельных строк.

ClickHouse — колоночная СУБД, специально разработанная для аналитических систем (OLAP), где чаще всего выполняются агрегация и чтение больших объемов данных.

Производительность для аналитических запросов

Мы провели тестирование на наборе данных в 100 миллионов записей и получили следующие результаты:

Тип запросаPostgreSQLClickHouseРазница
COUNT(*)5.2 сек0.3 сек17.3x
GROUP BY по одному полю12.7 сек0.8 сек15.9x
GROUP BY по нескольким полям23.4 сек1.2 сек19.5x
Фильтрация + агрегация14.8 сек0.6 сек24.7x

Как видно из результатов, ClickHouse в 15-25 раз быстрее на типичных аналитических сценариях.

Когда выбирать PostgreSQL

  • Вам нужна универсальная база данных для разных типов нагрузки
  • Требуется поддержка транзакций и ACID
  • Важны частые обновления существующих данных
  • Нет необходимости анализировать очень большие объемы данных

Когда выбирать ClickHouse

  • Вы работаете с большими объемами данных (от сотен миллионов записей)
  • Основная нагрузка — аналитические запросы
  • Требуется максимальная скорость агрегации и расчетов
  • Данные преимущественно добавляются, но редко обновляются

Вывод

Если ваша основная задача — аналитика и работа с большими данными, ClickHouse обеспечит на порядок лучшую производительность. PostgreSQL остается универсальным решением, которое может быть достаточным для средних объемов данных, особенно когда нужна одна БД и для транзакционной, и для аналитической нагрузки.