Configurer un projet dlt implique trois étapes : l’environnement Python, l’installation de dlt, et l’initialisation du projet via dlt init. L’étape d’initialisation crée la structure de répertoire que dlt utilise pour les credentials et la configuration.
Environnement Python
dlt nécessite Python 3.9 ou supérieur. Avant d’installer quoi que ce soit, il vaut la peine de vérifier votre version :
python --version# oupython3 --versionSi vous avez besoin d’installer Python : le programme d’installation python.org fonctionne sur toutes les plateformes. Sur macOS, Homebrew est une approche plus propre :
brew install pythonEnvironnement virtuel
Créez toujours un environnement virtuel spécifique au projet. dlt a plusieurs dépendances transitives, et les isoler évite les conflits de version avec d’autres projets Python sur votre machine :
mkdir dlt-projectcd dlt-project
# Créer l'environnement virtuelpython -m venv venv
# L'activersource venv/bin/activate # macOS / Linux# ouvenv\Scripts\activate # WindowsL’activation change le Python et pip de votre shell vers les versions locales au projet. Vous verrez (venv) ajouté en préfixe à votre invite de commande en guise de confirmation.
Installer dlt
Avec l’environnement virtuel actif, installez dlt :
pip install dltdlt sépare les dépendances de destination — les bibliothèques nécessaires pour se connecter à chaque entrepôt — du package de base. Cela garde l’installation par défaut légère. Installez uniquement ce dont vous avez besoin :
pip install "dlt[duckdb]" # développement local / testspip install "dlt[bigquery]" # Google BigQuerypip install "dlt[snowflake]" # Snowflakepip install "dlt[redshift]" # Amazon RedshiftPour la plupart des travaux de développement, commencez par DuckDB. C’est une base de données locale sur fichier qui ne nécessite ni serveur ni credentials — vous pouvez vérifier qu’un pipeline fonctionne correctement avant de toucher un entrepôt cloud.
Vous pouvez installer plusieurs destinations ensemble :
pip install "dlt[duckdb,bigquery]"Initialisation du projet : dlt init
dlt init est la partie que la plupart des documentations couvrent trop rapidement. Il vaut la peine de comprendre ce qu’elle crée.
dlt init rest_api duckdbLes deux arguments sont : le type de source et la destination. Pour les pipelines basés sur REST API, vous utiliserez presque toujours rest_api. La destination peut être changée plus tard sans réinitialisation.
L’exécution de dlt init crée ce qui suit :
dlt-project/├── .dlt/│ ├── config.toml # configuration non-sensible (committée)│ └── secrets.toml # credentials (dans .gitignore)├── rest_api_pipeline.py # fichier pipeline de démarrage généré└── .gitignore # préconfiguré pour exclure secrets.tomlRépertoire .dlt/ — Le répertoire de configuration principal pour ce projet. dlt regarde ici en premier lors de la résolution des secrets et des valeurs de configuration.
secrets.toml — Où aller les credentials pour le développement local. Il est ajouté automatiquement à .gitignore. Ouvrez-le immédiatement après dlt init et ajoutez vos credentials API :
[sources.github]api_key = "your-token-here"Le chemin de clé — sources.github.api_key — devient la façon dont vous référencez cette valeur dans le code : dlt.secrets["sources.github.api_key"]. Voir Gestion des secrets dlt pour la hiérarchie complète et comment les credentials passent du développement local à la production.
config.toml — Configuration non-sensible qui peut être committée. Des choses comme les tailles de page, les URL de base, les niveaux de log. Laissez-le vide jusqu’à ce que vous ayez des paramètres qui appartiennent réellement ici.
rest_api_pipeline.py — Un fichier de démarrage généré avec un exemple de code montrant comment configurer et exécuter un pipeline REST API Source. Supprimez l’exemple de code et remplacez-le par le vôtre. Le fichier existe comme point de départ, pas comme quelque chose que vous étendez en place.
.gitignore — Automatiquement configuré pour exclure secrets.toml et quelques fichiers spécifiques à dlt. Ne remplacez pas ceci — laisser les credentials hors du contrôle de version est essentiel.
Vérifier l’installation
Après dlt init, vérifiez que le projet fonctionne avant d’écrire du code de pipeline :
python rest_api_pipeline.pyL’exemple de code généré effectue un vrai appel API. S’il s’exécute sans erreurs, votre environnement Python, l’installation de dlt et la configuration de base fonctionnent tous. S’il échoue, le message d’erreur vous indiquera exactement ce qui manque.
Ce que vous construirez par-dessus
Avec l’environnement en place, les étapes suivantes sont :
- Remplacer l’exemple de code dans
rest_api_pipeline.pypar votre vraie configuration API — voir Configuration dlt REST API Source pour comprendre comment fonctionne cette configuration. - Ajouter vos credentials API dans
secrets.toml— voir Gestion des secrets dlt pour les conventions de nommage attendues par dlt. - Exécuter le pipeline contre DuckDB pour vérifier les résultats avant de pointer vers votre entrepôt de production.
Le pattern de développement DuckDB-first vaut la peine d’être souligné : vous pouvez itérer sur la logique du pipeline, la pagination et le schéma sans toucher aux ressources cloud. Une fois que le pipeline produit des résultats corrects localement, remplacer destination="duckdb" par destination="bigquery" est un changement d’une ligne.
Notes sur le fichier pipeline généré
Le fichier rest_api_pipeline.py généré par dlt init rest_api duckdb contient un exemple fonctionnel utilisant une API publique (souvent l’API GitHub ou une API ouverte similaire). L’exemple est utile comme référence mais n’est pas structuré comme vous organiseriez un pipeline de production. Ne vous sentez pas contraint par son organisation.
Un pipeline de production sépare typiquement la configuration de source de l’exécution dans différents fichiers ou modules, surtout quand vous avez plusieurs sources ou destinations. Mais pour un pipeline à source unique, un seul fichier est tout à fait raisonnable. La contrainte clé est que les credentials n’apparaissent jamais dans les fichiers Python — ils se trouvent dans secrets.toml ou des variables d’environnement, accédés via dlt.secrets.