Snowflake MigrationClickHouse Workshops

00 Préparation

Installez la chaîne d’outils, créez les deux comptes d’essai cloud, clonez le dépôt et construisez les deux environnements virtuels dbt — tout le nécessaire avant de toucher aux données.

Point de départ

Rien n’est encore installé. Il vous faut un terminal et environ 30 minutes pour installer cinq outils en ligne de commande, créer deux comptes d’essai cloud gratuits, cloner le dépôt et construire deux environnements virtuels Python.

Pourquoi

Cet atelier provisionne deux clouds — Snowflake comme source et ClickHouse Cloud comme cible — et exécute un adaptateur dbt sur chacun. Les deux adaptateurs imposent des versions minimales strictes ; la contrainte la plus importante concerne Python : dbt-snowflake (ainsi que dbt-clickhouse, utilisé plus tard) exige Python 3.11, 3.12 ou 3.13. Python 3.14 et les versions ultérieures cassent une dépendance transitive, mashumaro, dont les deux adaptateurs dépendent. Une erreur ici ne se révèle pas immédiatement : elle apparaît deux modules plus tard sous la forme d’une erreur d’import dbt déroutante, sans lien apparent avec votre version de Python. Imposer l’interpréteur dans ce module évite ce problème.

Étape 1 — Installer la chaîne d’outils

OutilVersionUtilisation
Terraform>= 1.6Provisionne l’infrastructure Snowflake et ClickHouse Cloud
Docker Desktop>= 24Exécute le producteur de courses et Superset
Python3.11–3.13Scripts de migration, dbt et utilitaires — voir l’avertissement ci-dessous
dbt Core>= 1.8Pipelines Snowflake et ClickHouse
SnowSQL CLI>= 1.2Exécute du SQL dans Snowflake depuis le terminal

La version de Python est importante. dbt-snowflake et dbt-clickhouse exigent tous deux Python 3.11, 3.12 ou 3.13. Python 3.14 et les versions ultérieures cassent leur dépendance commune mashumaro. Si le Python de votre système est déjà en version 3.14 ou ultérieure, installez la version 3.13 à côté (par exemple avec brew install python@3.13) au lieu de remplacer la version par défaut : l’étape 4 ci-dessous emploie explicitement l’interpréteur python3.13 pour cette raison précise.

Tous les paquets de cet atelier doivent être installés dans un environnement virtuel isolé, jamais avec un simple pip install global. L’étape 4 crée les deux environnements nécessaires.

Étape 2 — Créer les deux comptes cloud

Il vous faut un compte d’essai gratuit, sans carte bancaire, dans chaque cloud :

  • Compte d’essai Snowflake — il constitue l’environnement source. Le module 01 y provisionne un warehouse, une base de données et un pipeline Medallion.
  • Compte d’essai ClickHouse Cloud — il constitue l’environnement cible. Il reste intact jusqu’au provisionnement du module 03, qui marque le véritable début de la migration.

Créer les deux comptes maintenant évite que l’un d’eux ne bloque le module 01.

Étape 3 — Cloner le dépôt

git clone https://github.com/ClickHouse/ClickHouse_Demos.git
cd ClickHouse_Demos
cd "$(git rev-parse --show-toplevel)/workshop_public/snowflake_migration_lab"

Toutes les commandes des modules suivants supposent que vous vous trouvez dans workshop_public/snowflake_migration_lab à l’intérieur de ce clone.

Étape 4 — Construire les deux environnements virtuels dbt

dbt-snowflake et dbt-clickhouse imposent des plages de versions incompatibles pour certaines dépendances ; ils ne peuvent donc pas partager un seul environnement virtuel. Construisez-en un par adaptateur, soit un par côté cloud de la migration.

dbt-snowflake, utilisé sur la source dans le module 01 :

cd "$(git rev-parse --show-toplevel)/workshop_public/snowflake_migration_lab/01-setup-snowflake"

# Use python3.13 explicitly if your system default is 3.14+
python3.13 -m venv .venv          # or: python3 -m venv .venv
source .venv/bin/activate
pip install "dbt-snowflake>=1.7,<2.0"
deactivate

dbt-clickhouse, utilisé sur la cible à partir du module 03 :

cd "$(git rev-parse --show-toplevel)/workshop_public/snowflake_migration_lab/03-migrate-to-clickhouse"
python3.13 -m venv .venv
source .venv/bin/activate
pip install "dbt-clickhouse>=1.8,<2.0" snowflake-connector-python clickhouse-connect
deactivate

Chaque .venv reste dans le répertoire de son module. Activez celui dont vous avez besoin et exécutez deactivate au moment de changer, plutôt que de tenter de satisfaire les deux adaptateurs dans le même environnement.

Comment vérifier que vous avez terminé

cd "$(git rev-parse --show-toplevel)/workshop_public/snowflake_migration_lab"

terraform version                  # expect >= 1.6
docker --version                   # expect >= 24
python3 --version                  # expect 3.11, 3.12, or 3.13
snowsql --version                  # expect >= 1.2

source 01-setup-snowflake/.venv/bin/activate
dbt --version                      # expect dbt-snowflake >= 1.7
deactivate

source 03-migrate-to-clickhouse/.venv/bin/activate
dbt --version                      # expect dbt-clickhouse >= 1.8
deactivate

Les cinq commandes doivent afficher une version au moins égale au minimum indiqué, et chaque dbt --version doit mentionner l’adaptateur que vous venez d’installer dans l’environnement correspondant.

État final

La chaîne d’outils est installée, les deux comptes d’essai sont actifs, le dépôt est cloné et les deux environnements virtuels dbt sont prêts. Rien n’est encore provisionné dans les clouds — cela commence au module 01. Passez à 01 Environnement source pour construire la partie Snowflake de la migration.

Sur cette page

Suivre votre progression ?

Facultatif. Nous envoyons un lien par e-mail pour confirmer votre adresse ; la progression est enregistrée après son ouverture.

Utilisez votre adresse e-mail professionnelle, et non une adresse personnelle.

Le suivi de la progression exige aussi d’accepter les Conditions d’utilisation actuelles dans les Paramètres de confidentialité.

FR