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

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

Для экспорта данных из Snowflake требуется использовать внешний stage, как показано на диаграмме выше.Предположим, мы хотим экспортировать таблицу Snowflake со следующей схемой:
Чтобы перенести данные из этой таблицы в базу данных ClickHouse, сначала нужно скопировать их во внешний stage. При копировании данных мы рекомендуем использовать Parquet в качестве промежуточного формата, поскольку он позволяет сохранять информацию о типах, не теряет точность, хорошо сжимается и изначально поддерживает вложенные структуры, часто используемые в аналитике.В примере ниже мы создаем в Snowflake именованный файловый формат для Parquet и задаем нужные параметры файла. Затем указываем, в каком бакете будет храниться скопированный dataset. Наконец, копируем dataset в этот бакет.
Для dataset объемом около 5 ТБ, с максимальным размером файла 150 МБ и при использовании хранилища Snowflake 2X-Large, расположенного в том же Region AWS us-east-1, копирование данных в S3 бакет займет около 30 минут.
2

Импорт в ClickHouse

После того как данные помещены в промежуточное Объектное хранилище, для их вставки в таблицу можно использовать функции ClickHouse, такие как s3 table function, как показано ниже.В этом примере используется s3 table function для AWS S3, но для Google Cloud Storage можно использовать gcs table function, а для Azure Blob Storage — azureBlobStorage table function.Предположим, целевая таблица имеет следующую схему:
Затем можно использовать команду INSERT INTO SELECT, чтобы вставить данные из S3 в таблицу ClickHouse:
Примечание о вложенных структурах столбцовСтолбцы VARIANT и OBJECT в исходной схеме таблицы Snowflake по умолчанию выгружаются как строки JSON, поэтому при вставке в ClickHouse их придется приводить к нужному типу.Вложенные структуры, такие как some_file, при копировании Snowflake преобразуются в строки JSON. Чтобы импортировать такие данные, эти структуры нужно преобразовать в Tuple во время вставки в ClickHouse с помощью функции JSONExtract, как показано выше.
3

Проверка успешного экспорта данных

Чтобы проверить, что данные были корректно вставлены, просто выполните запрос SELECT к новой таблице:
Последнее изменение 3 июля 2026 г.