Миграция с Amazon Redshift на ClickHouse
Этот документ является вводным руководством по миграции данных из Amazon Redshift в ClickHouse.
Введение
Amazon Redshift — это облачное хранилище данных, которое предоставляет возможности отчетности и аналитики для структурированных и полуструктурированных данных. Оно было спроектировано для обработки аналитических нагрузок на больших наборах данных с использованием колоночных принципов организации баз данных, аналогичных ClickHouse. Как часть пакета сервисов AWS, оно часто является решением по умолчанию, к которому обращаются пользователи AWS для удовлетворения своих аналитических потребностей в данных.
Хотя Redshift привлекателен для существующих пользователей AWS благодаря тесной интеграции с экосистемой Amazon, пользователи Redshift, которые используют его для обеспечения аналитики в режиме реального времени, сталкиваются с необходимостью более оптимизированного решения для этих целей. В результате они все чаще переходят на ClickHouse, чтобы получить выгоду от более высокой производительности запросов и более эффективного сжатия данных — либо в качестве замены, либо в качестве «скоростного слоя», развернутого параллельно существующим рабочим нагрузкам Redshift.
ClickHouse vs Redshift
Для пользователей, глубоко интегрированных в экосистему AWS, Redshift является естественным выбором при возникновении потребности в хранилище данных. Redshift отличается от ClickHouse в одном важном аспекте: его движок оптимизирован под нагрузки хранилища данных, требующие сложной отчетности и аналитических запросов. Во всех режимах развертывания следующие два ограничения затрудняют использование Redshift для аналитических нагрузок в реальном времени:
- Redshift компилирует код для каждого плана выполнения запроса, что добавляет значительные накладные расходы к первому выполнению запроса. Эти накладные расходы можно оправдать, когда шаблоны запросов предсказуемы и скомпилированные планы выполнения могут храниться в кэше запросов. Однако это создает сложности для интерактивных приложений с изменяющимися запросами. Даже когда Redshift может использовать этот кэш скомпилированного кода, ClickHouse быстрее по большинству запросов. См. «ClickBench» (https://benchmark.clickhouse.com/#system=+%E2%98%81w|%EF%B8%8Fr|C%20c|Rf&type=-&machine=-ca2|gl|6ax|6ale|3al&cluster_size=-&opensource=-&tuned=+n&metric=hot&queries=-).
- Redshift ограничивает количество одновременных запросов 50 на все очереди, что (хотя и достаточно для BI) делает его непригодным для высокопараллельных аналитических приложений.
В то же время, хотя ClickHouse также может использоваться для сложных аналитических запросов, он оптимизирован для аналитических нагрузок в реальном времени — либо лежа в основе приложений, либо выступая слоем ускорения поверх хранилища данных. В результате пользователи Redshift обычно заменяют Redshift или дополняют его ClickHouse по следующим причинам:
| Преимущество | Описание |
|---|---|
| Меньшая задержка запросов | ClickHouse обеспечивает меньшую задержку запросов, в том числе для разнообразных шаблонов запросов, при высокой степени параллелизма и одновременных потоковых вставках данных. Даже когда ваш запрос не попадает в кэш, что неизбежно в интерактивной пользовательской аналитике, ClickHouse все равно может обработать его быстро. |
| Более высокие лимиты параллелизма запросов | ClickHouse устанавливает гораздо более высокие пределы на количество параллельных запросов, что критично для сценариев работы приложений в реальном времени. В ClickHouse, как в самостоятельных, так и в облачных развертываниях, вы можете масштабировать выделенные вычислительные ресурсы, чтобы достичь уровня параллелизма, необходимого вашему приложению для каждого сервиса. Допустимый уровень параллельного выполнения запросов настраивается в ClickHouse; в ClickHouse Cloud по умолчанию используется значение 1000. |
| Лучшее сжатие данных | ClickHouse обеспечивает более эффективное сжатие данных, что позволяет пользователям уменьшить общий объем хранилища (и, следовательно, затраты) или хранить больше данных при тех же затратах и получать больше информации в реальном времени из своих данных. См. раздел «ClickHouse vs Redshift Storage Efficiency» ниже. |