Ce guide explique comment migrer des données de Snowflake vers ClickHouse.La migration de données entre Snowflake et ClickHouse nécessite l’utilisation d’un stockage objet, tel que S3, comme espace de stockage intermédiaire pour le transfert. Le processus de migration repose également sur l’utilisation de la commande
COPY INTO de Snowflake et de la commande INSERT INTO SELECT
de ClickHouse.
Exporter des données depuis Snowflake
L’exportation de données depuis Snowflake nécessite l’utilisation d’un stage externe, comme illustré dans le schéma ci-dessus.Supposons que nous voulions exporter une table Snowflake avec le schéma suivant :us-east-1, la copie des données vers le bucket S3 prendra environ 30 minutes.Importer dans ClickHouse
Une fois les données placées dans un stockage d’objets intermédiaire, des fonctions ClickHouse telles que la fonction de table s3 peuvent être utilisées pour insérer les données dans une table, comme indiqué ci-dessous.Cet exemple utilise la fonction de table s3 pour AWS S3, mais la fonction de table gcs peut être utilisée pour Google Cloud Storage, et la fonction de table azureBlobStorage pour Azure Blob Storage.En supposant le schéma de table cible suivant :INSERT INTO SELECT pour insérer les données depuis S3 dans une table ClickHouse :Remarque sur les structures de colonnes imbriquéesLes colonnes
VARIANT et OBJECT du schéma de table Snowflake d’origine sont produites sous forme de chaînes JSON par défaut, ce qui nous oblige à les convertir lors de leur insertion dans ClickHouse.Les structures imbriquées telles que some_file sont converties en chaînes JSON par Snowflake lors de la copie. L’importation de ces données nous oblige à transformer ces structures en Tuples au moment de l’insertion dans ClickHouse, à l’aide de la fonction JSONExtract, comme illustré ci-dessus.Tester la réussite de l’exportation des données
Pour vérifier que vos données ont bien été insérées, exécutez simplement une requêteSELECT sur votre nouvelle table :