Pendant des décennies, les solutions d’entreposage de données ont été l’épine dorsale du reporting d’entreprise et de la business intelligence. Mais, ces dernières années, les entrepôts de données basés sur le cloud comme Amazon Redshift et Snowflake sont devenus extrêmement populaires. Alors, pourquoi quelqu’un voudrait-il migrer d’un entrepôt de données basé sur le cloud à un autre ?
La réponse est simple : plus d’échelle et de flexibilité. Avec Snowflake, les utilisateurs peuvent rapidement faire évoluer les données et les ressources de calcul de manière indépendante en ajoutant automatiquement des nœuds. En utilisant le type de données VARIANT, Snowflake prend également en charge le stockage de données plus riches telles que des objets, des tableaux et des données JSON. Le débogage de Redshift n’est pas toujours simple non plus, comme le savent les utilisateurs de Redshift. Parfois, cela va au-delà des différences de fonctionnalités qui pourraient déclencher un désir de migrer. Peut-être que votre équipe sait mieux travailler avec Snowflake que Redshift, ou peut-être que votre organisation souhaite standardiser une technologie en particulier.
Cette recette expliquera les étapes à suivre pour migrer de Redshift vers Snowflake afin de maximiser la valeur de votre entreprise à l’aide d’Airbyte.
Conditions préalables
1. Vous aurez besoin d’Airbyte pour déplacer vos données. Pour déployer Airbyte, suivez les instructions simples de notre documentation ici.
2. Redshift et Snowflake sont tous deux des services SaaS et vous aurez besoin d’un compte sur ces plates-formes pour commencer.
3. Lorsque vous créez un cluster d’entrepôt de données avec Redshift, il y ajoute des exemples de données par défaut. Nos données sont stockées dans le « redshift-cluster« que nous avons créé au sein du « dev » base de données. Les clusters créés sont visibles sur le tableau de bord sous « Amazon Redshift > Clusters ». Pour créer un nouveau cluster, cliquez sur l’icône en surbrillance ci-dessous et suivez-la.

4a. Pour la destination, vous devrez créer une base de données et un entrepôt vides dans Snowflake pour héberger vos données. Pour ce faire, cliquez sur l’icône des bases de données comme indiqué dans la barre de navigation et cliquez sur « Créer… »

Apporter un nom pour votre base de données. Dans l’exemple ci-dessous, nous avons nommé notre base de données « Snowflake_Destination ».
4b. Après avoir configuré la base de données, cliquez sur l’icône de l’entrepôt et créez un entrepôt nommé « COMPUTE_WH. » Dans notre exemple, nous avons utilisé une instance de calcul x-small. Cependant, vous pouvez faire évoluer l’instance de calcul en utilisant des types d’instances plus grands ou en ajoutant d’autres instances. Cela peut être réalisé en quelques clics et sera démontré dans une section ultérieure pour illustrer la valeur commerciale de la migration. Vous avez maintenant tous les prérequis pour démarrer la migration.

Étape 1 : Configurer la source Redshift dans Airbyte
Ouvrez Airbyte en accédant à http://localhost:8000 dans votre navigateur Web. Procédez à la configuration de la source en remplissant les détails comme suit :
Dans la section « Configurer la source » Écran Airbyte, nous avons nommé la source « Redshift_Source« dans cet exemple, mais vous pouvez le changer en quelque chose d’autre si vous le souhaitez. Nous avons choisi le type de source comme Redshift. Les informations restantes peuvent être obtenues à partir du tableau de bord du cluster redshift, comme illustré dans les parties en surbrillance de la capture d’écran ci-dessous.
En dehors de cela, quelques paramètres supplémentaires doivent être ajustés dans votre console Redshift. Par exemple, supposons que vous exécutiez Airbyte localement sur votre machine et que vous vous connectiez à Redshift. Dans ce cas, vous devrez permettre à votre cluster d’être accessible publiquement sur Internet afin qu’Airbyte puisse s’y connecter. Vous pouvez le faire en accédant au menu déroulant « Actions » de la console Redshift, en cliquant sur « Modifier le paramètre accessible au public » et en le modifiant pour qu’il soit activé (si ce n’est déjà fait).
Ensuite, accédez au service VPC proposé par AWS. Vous pouvez le faire en le recherchant dans la barre de recherche, comme indiqué ci-dessous.
Ensuite, accédez aux « Groupes de sécurité » sur la gauche pour accéder à la page qui ressemble à celle ci-dessous pour créer une règle d’entrée et de sortie personnalisée. Par exemple, vous devrez créer une règle TCP personnalisée sur le port 5439 qui autorise les connexions entrantes à partir de votre adresse IP locale. Une fois la règle enregistrée, elle s’affichera sur le tableau de bord comme surlignée en bleu.
La règle de trafic entrant personnalisée doit avoir les spécifications décrites dans l’image ci-dessous. Noter: la même étape doit également être effectuée pour les règles sortantes, puis votre source Redshift sera prête pour la connexion avec Airbyte.
Étape 2 : Configurer la destination Snowflake dans Airbyte
Une fois la source configurée, passez à la page « Configurer la destination » dans Airbyte pour configurer la destination.
Semblable à notre étape précédente, le nom de la destination est personnalisable. Dans cet exemple, nous avons utilisé « Snowflake_Destination ». Ensuite, nous avons choisi le type de destination comme Snowflake. Reportez-vous à l’image ci-dessous pour plus de détails sur les autres champs obligatoires.
La valeur de l’hôte peut être récupérée à partir de votre tableau de bord Snowflake.
Noter: Pour cet exemple, nous utilisons le rôle SYSADMIN dans Snowflake, mais il est fortement recommandé de créer un rôle personnalisé dans Snowflake avec des privilèges réduits à utiliser avec Airbyte. Par défaut, Airbyte utilise le schéma par défaut de Snowflake pour écrire les données, mais vous pouvez mettre les données dans un autre schéma si vous le souhaitez (comme REDSHIFT_SCHEMA dans notre cas). Avoir un schéma distinct est utile lorsque vous souhaitez séparer les données que vous migrez des données existantes. Enfin, le nom d’utilisateur et le mot de passe doivent être conformes à la configuration des informations d’identification lors de la création du compte Snowflake.
Appuyez sur le bouton « Configurer la destination », et si tout se passe bien, vous devriez voir un message vous indiquant que tous les tests de connexion ont réussi.
Étape 3 : Configurer la connexion
Une fois la destination configurée, vous serez dirigé vers le « Configurer la connexion » écran dans Airbyte. Dans cette étape, vous remarquerez qu’Airbyte a déjà détecté les tables et schémas à migrer. Par défaut, toutes les tables sont sélectionnées pour la migration. Cependant, si vous ne souhaitez migrer qu’un sous-ensemble des données, vous pouvez désélectionner les tables que vous souhaitez ignorer. Dans cette étape, vous pouvez également spécifier des détails tels que la fréquence de synchronisation entre la source et la destination. Il existe plusieurs options d’intervalle, comme le montre la figure – de 5 minutes à toutes les heures. La granularité de l’opération de synchronisation peut également être définie en sélectionnant le mode de synchronisation approprié pour votre cas d’utilisation. Lisez le mode de synchronisation dans la documentation Airbyte pour plus de détails.
Après avoir spécifié toutes nos personnalisations, nous pouvons cliquer sur « Configurer la connexion » pour lancer la migration des données de Redshift vers Snowflake. En un coup d’œil, vous pourrez voir le dernier état de synchronisation de votre connexion et quand la synchronisation précédente s’est produite.
C’est comme ça qu’il est facile de déplacer vos données de Redshift vers Snowflake à l’aide d’Airbyte. Cependant, si vous souhaitez valider que la migration a eu lieu, examinez la base de données de destination dans Snowflake et vous remarquerez que des tables de données supplémentaires sont présentes.
Après avoir réussi à migrer les données, évaluons les fonctionnalités clés de Snowflake qui ont inspiré la migration. Dans Snowflake, la puissance de calcul et le stockage sont découplés, ce qui rend la capacité de stockage de Snowflake indépendante de la taille du cluster. De plus, Snowflake vous permet de faire évoluer vos données en trois clics simples, par rapport au processus fastidieux de Redshift.
Comme le montre la figure ci-dessous, Airbyte charge les données JSON dans une table Snowflake à l’aide du type de données VARIANT. À l’aide des puissants outils de requête JSON de Snowflake, vous pouvez travailler avec des données JSON stockées dans une table avec des données non JSON. D’un autre côté, Redshift a une prise en charge limitée des types de données semi-structurés, nécessitant plusieurs jointures de sous-tables complexes pour produire une vue de rapport.
Pour résumer, voici ce que nous avons fait lors de cette recette :
- Configuration d’une source Redshift Airbyte
- Configuration d’une destination Snowflake Airbyte
- Création d’une connexion Airbyte qui migre automatiquement les données de Redshift vers Snowflake
- Exploration de la fonction de mise à l’échelle facile à utiliser et de la prise en charge des données JSON dans Snowflake à l’aide du type de données VARIANT
Nous savons que les équipes de développement et d’exploitation travaillant sur des projets à évolution rapide avec des délais serrés ont besoin de réponses rapides à leurs questions de la part des développeurs qui développent activement Airbyte. Ils veulent également partager leurs apprentissages avec des membres expérimentés de la communauté qui « ont été là et ont fait cela ».