Saltar al contenido principal
Esta guía le muestra cómo migrar datos de Snowflake a ClickHouse.
La migración de datos entre Snowflake y ClickHouse requiere el uso de un almacenamiento de objetos, como S3, como ubicación intermedia para la transferencia. El proceso de migración también se basa en el uso de los comandos COPY INTO de Snowflake y INSERT INTO SELECT de ClickHouse.
1

Exportar datos desde Snowflake

Exportar datos desde Snowflake requiere usar un stage externo, como se muestra en el diagrama anterior.Supongamos que queremos exportar una tabla de Snowflake con el siguiente esquema:
Para mover los datos de esta tabla a una base de datos de ClickHouse, primero debemos copiarlos a un stage externo. Al copiar datos, recomendamos usar Parquet como formato intermedio, ya que permite conservar la información de tipos, preserva la precisión, comprime bien y admite de forma nativa estructuras anidadas habituales en analítica.En el ejemplo siguiente, creamos en Snowflake un formato de archivo con nombre para representar Parquet y las opciones de archivo deseadas. Después, especificamos qué bucket contendrá nuestro dataset copiado. Por último, copiamos el dataset al bucket.
Para un dataset de alrededor de 5 TB, con un tamaño máximo de archivo de 150 MB, y usando un warehouse 2X-Large de Snowflake ubicado en la misma región de AWS us-east-1, copiar los datos al bucket de S3 llevará unos 30 minutos.
2

Importar en ClickHouse

Una vez que los datos están almacenados en un almacenamiento de objetos intermedio, se pueden usar funciones de ClickHouse como la función de tabla s3 para insertarlos en una tabla, como se muestra a continuación.Este ejemplo usa la función de tabla s3 para AWS S3, pero la función de tabla gcs puede usarse para Google Cloud Storage y la función de tabla azureBlobStorage para Azure Blob Storage.Suponiendo el siguiente esquema de la tabla de destino:
A continuación, podemos usar el comando INSERT INTO SELECT para insertar los datos desde S3 en una tabla de ClickHouse:
Nota sobre las estructuras de columnas anidadasLas columnas VARIANT y OBJECT del esquema original de la tabla de Snowflake se generarán como cadenas JSON de forma predeterminada, lo que nos obliga a convertirlas al insertarlas en ClickHouse.Snowflake convierte estructuras anidadas como some_file en cadenas JSON al copiarlas. Para importar estos datos, debemos transformar esas estructuras en Tuples en el momento de la inserción en ClickHouse, usando la función JSONExtract, como se muestra arriba.
3

Verificar que la exportación de datos se haya realizado correctamente

Para comprobar si los datos se insertaron correctamente, simplemente ejecuta una consulta SELECT sobre tu nueva tabla:
Última modificación el 2 de julio de 2026