Переносим данные в ClickHouse® быстро и без потерь
Делимся инструкцией и рассказываем, как миграция в ClickHouse® улучшает работу с аналитикой, снижает затраты на облачные вычисления и помогает оптимизировать хранение данных.
23 июля 2024 г.
10 минут чтения
ClickHouse — колоночная система управления базами данных (СУБД), предназначенная для работы с большими объёмами информации. Отличается высокой производительностью и эффективностью для решения сложных аналитических задач.
ClickHouse обеспечивает высокую скорость записи и предварительное агрегирование за миллисекунды благодаря сжатию и индексации. Такие возможности СУБД позволяют быстро выполнять аналитические запросы даже при больших объёмах данных и использовать ClickHouse в режиме реального времени.
Решение позволяет сосредоточиться на бизнес‑задачах, а обслуживание инфраструктуры берёт на себя Yandex Cloud. Кроме того, в этом сервисе предусмотрены интеграции с другими облачными решениями, среди которых:
Yandex Object Storage — облачное хранилище для управления неструктурированными данными, такими как файлы и медиаконтент.
Yandex DataLens — платформа визуальной аналитики, позволяющая создавать дашборды и отчёты для принятия обоснованных бизнес‑решений.
Одна из функций Yandex Managed Service for ClickHouse — механизм TTL (Time to Live), который автоматически делит потоки данных на «холодные» (устаревшие) и «горячие» (актуальные) и по истечении заданного времени перемещает старые данные в более экономичное хранилище, такое как Yandex Object Storage.
Например, информация, которой больше трёх лет, перемещается в объектное хранилище, что экономически выгоднее, чем постоянное её хранение в реляционной базе данных. Актуальные для вычислений записи остаются на дисковом хранилище СУБД, куда так же сохраняются новые поступающие данные.
Механизм TTL эффективно интегрируется с объектным хранилищем, и для его настройки не требуются дополнительные инструменты.
Интеграция Yandex Managed Service for ClickHouse c Object Storage особенно полезна, потому что сервис может обращаться к данным в Yandex Object Storage как к таблице. Это позволяет эффективно использовать различные форматы хранения, такие как JSON, Parquet, TSV и другие, обеспечивая оптимизацию нагрузки на ClickHouse и экономию ресурсов. Благодаря этому холодные данные могут быть обработаны и проанализированы одними и теми же запросами, что и горячие данные, хранимые в реляционном формате.
В качестве примера использования ClickHouse посмотрим на совместный проект сети магазинов Hoff и облачной платформы AERO. Компании внедрили в новую архитектуру DWH связку Yandex Managed Service for ClickHouse с Yandex Object Storage для создания масштабируемого хранилища данных.
Решение помогло в предварительной подготовке сырых данных, которых ежедневно поступало около 15 ГБ. После обработки ClickHouse сохранял 3 ГБ информации, подготовленной для дальнейшей эффективной аналитики. В итоге использование сервисов Yandex Cloud сократило время на подготовку аналитического отчёта до 20 минут.
Если ваш бизнес требует постоянной обработки большого количества запросов в режиме реального времени, то имеет смысл перенести данные в Yandex Managed Service for ClickHouse. Рассмотрим процесс миграции подробнее.
Миграция данных в ClickHouse
Представленный ниже сценарий — наиболее универсальный и самый простой в реализации.
Шаг 1. Перенесите данные в Yandex Object Storage
Рассмотрим в качестве примера выгрузку из сервиса BigQuery. Сначала перенесите данные в объектное хранилище. После этого переместите их в Yandex Object Storage с помощью скрипта или утилиты gsutil rsync, которая синхронизирует состояние двух бакетов (контейнеров для хранения данных в облаке). Подробнее о процессе мы рассказали в документации.
Шаг 2. Настройте отображение данных из Yandex Object Storage в кластере Yandex Managed Service for ClickHouse
В Yandex Managed Service for ClickHouse мы предусмотрели несколько интеграций с объектным хранилищем. Так, с помощью механизма s3Cluster, который позволяет использовать S3‑совместимое API, СУБД может обращаться к Yandex Object Storage фактически как к таблице (о запуске скрипта — в практическом руководстве). А при помощи функции TTL вы можете установить правила, по которым данные будут разделяться на «холодные», которые будут храниться в Yandex Object Storage после перемещения, и «горячие», которые останутся в ClickHouse.
Шаг 3. Проанализируйте данные с помощью Yandex DataLens
За счёт интеграции Yandex Managed Service for ClickHouse с сервисом Yandex DataLens вы можете за несколько кликов создать визуализацию обработанных данных или провести исследование.
Процесс миграции данных в ClickHouse
Что в итоге
При сценарии переноса данных, описанном выше, вы можете влиять на формат выгрузки и степень сжатия — например, выбирая формат JSON или Parquet и используя сжатие GZIP. Управляя этими параметрами, можно уменьшить объём мигрируемых данных и сократить время, необходимое на перемещение, что, в свою очередь, снижает стоимость миграции. Встроенные интеграции, например с S3 API и TTL, дополнительно облегчают этот процесс, позволяя автоматизировать перенос данных и управление их жизненным циклом.
Yandex Managed Service for ClickHouse легко интегрируется с другими облачными сервисами, такими как Yandex Object Storage для хранения данных и Yandex DataLens для их визуализации. Это облегчает построение комплексных аналитических решений на одной платформе.
В сравнении с другими СУБД, ClickHouse отличается более высокой производительностью при обработке больших объёмов данных и выполнении сложных аналитических запросов.