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
| Outil | Version | Utilisation |
|---|---|---|
| Terraform | >= 1.6 | Provisionne l’infrastructure Snowflake et ClickHouse Cloud |
| Docker Desktop | >= 24 | Exécute le producteur de courses et Superset |
| Python | 3.11–3.13 | Scripts de migration, dbt et utilitaires — voir l’avertissement ci-dessous |
| dbt Core | >= 1.8 | Pipelines Snowflake et ClickHouse |
| SnowSQL CLI | >= 1.2 | Exé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"
deactivatedbt-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
deactivateChaque .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
deactivateLes 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.
Parcours participant
Les modules pratiques à suivre, d’un ordinateur vierge à une charge migrée et mesurée.
01 Environnement source
Provisionnez un environnement Snowflake représentatif d’un déploiement client réel — 50 millions de lignes, un pipeline dbt Medallion, un producteur de courses actif et trois tableaux de bord Superset.