Перейти к основному содержимому
Перейти к основному содержимому

Миграция из Snowflake в ClickHouse

В этом руководстве показано, как мигрировать данные из Snowflake в ClickHouse.

Миграция данных между Snowflake и ClickHouse требует использования объектного хранилища, такого как S3, в качестве промежуточного хранилища для передачи. Процесс миграции также зависит от использования команд COPY INTO из Snowflake и INSERT INTO SELECT в ClickHouse.

1. Экспорт данных из Snowflake

Экспорт данных из Snowflake требует использования внешней стадии, как показано на диаграмме выше.

Предположим, мы хотим экспортировать таблицу Snowflake со следующей схемой:

Чтобы перенести данные этой таблицы в базу данных ClickHouse, сначала нужно скопировать эти данные на внешнюю стадию. При копировании данных мы рекомендуем использовать Parquet в качестве промежуточного формата, так как он позволяет делиться информацией о типах, сохраняет точность, хорошо сжимается и нативно поддерживает вложенные структуры, общие для аналитики.

В следующем примере мы создаем именованный формат файлов в Snowflake для представления Parquet и желаемых параметров файла. Затем мы указываем, какой бакет будет содержать наш скопированный набор данных. Наконец, мы копируем набор данных в бакет.

Для набора данных объемом около 5TB с максимальным размером файла 150MB и использованием склада Snowflake 2X-Large, расположенного в том же AWS регионе us-east-1, копирование данных в S3 бакет займет около 30 минут.

2. Импорт в ClickHouse

После того как данные находятся на промежуточном объектном хранилище, функции ClickHouse, такие как s3 table function, могут быть использованы для вставки данных в таблицу, как показано ниже.

Этот пример использует s3 table function для AWS S3, но gcs table function можно использовать для Google Cloud Storage, а azureBlobStorage table function — для Azure Blob Storage.

Предполагая следующее целевое назначение схемы таблицы:

Мы можем использовать команду INSERT INTO SELECT, чтобы вставить данные из S3 в таблицу ClickHouse:

Примечание о вложенных структурах столбцов

Столбцы VARIANT и OBJECT в оригинальной схеме таблицы Snowflake будут по умолчанию выводиться как строки JSON, что заставляет нас выполнять преобразование этих данных при вставке в ClickHouse.

Вложенные структуры, такие как some_file, преобразуются в строки JSON при копировании Snowflake. Импорт этих данных требует от нас преобразования этих структур в Кортежи во время вставки в ClickHouse, используя JSONExtract function, как показано выше.

3. Тестирование успешного экспорта данных

Чтобы проверить, были ли ваши данные правильно вставлены, просто выполните запрос SELECT к вашей новой таблице:

Дальнейшее чтение и поддержка

В дополнение к этому руководству, мы также рекомендуем прочитать нашу статью в блоге сравнение Snowflake и ClickHouse.

Если у вас возникли проблемы с передачей данных из Snowflake в ClickHouse, пожалуйста, свяжитесь с нами по адресу support@clickhouse.com.