Почему стоит использовать ClickHouse вместо Postgres?
GROUP BY, как OLAP-база данных, тогда как Postgres — это OLTP-база данных, предназначенная для транзакционных рабочих нагрузок.
OLTP, или базы данных для онлайн-обработки транзакций, предназначены для работы с транзакционными данными. Основная задача таких баз данных, классическим примером которых является Postgres, — гарантировать, что инженер может отправить в базу данных блок изменений и быть уверенным, что он — целиком — либо выполнится успешно, либо завершится ошибкой. Такие транзакционные гарантии со свойствами ACID — основной приоритет OLTP-баз данных и одно из главных преимуществ Postgres. При таких требованиях OLTP-базы данных обычно сталкиваются с ограничениями производительности, когда их используют для аналитических запросов по большим наборам данных.
OLAP, или системы онлайн-аналитической обработки, предназначены именно для таких задач — для работы с аналитическими нагрузками. Основная цель таких баз данных — дать инженерам возможность эффективно выполнять запросы и агрегировать огромные объёмы данных. OLAP-системы реального времени, такие как ClickHouse, позволяют проводить такой анализ по мере приёма данных в реальном времени.
Более подробное сравнение ClickHouse и PostgreSQL см. здесь.
Чтобы увидеть возможную разницу в производительности ClickHouse и Postgres при аналитических запросах, см. Rewriting PostgreSQL Queries in ClickHouse.
Стратегии миграции
Репликация в реальном времени (CDC)
Ручная пакетная загрузка + периодические обновления
INSERT, либо через экспорт и импорт CSV-файлов. После первоначальной миграции данные в ClickHouse можно периодически обновлять, синхронизируя изменения из PostgreSQL через равные промежутки времени.
Процесс пакетной загрузки прост и гибок, но у него есть недостаток: обновления в реальном времени отсутствуют. После того как исходные данные загружены в ClickHouse, последующие изменения не будут отражаться сразу, поэтому нужно настроить периодическую синхронизацию изменений из PostgreSQL. Такой подход хорошо подходит для сценариев, не критичных к задержкам, но при этом создает разрыв между моментом изменения данных в PostgreSQL и их появлением в ClickHouse.
Какую стратегию выбрать?
Начните с этого руководства по миграции PostgreSQL.