À propos du projet

dlt (data load tool) est une bibliothèque Python open source qui automatise l'extraction, la transformation et le chargement de données. Elle est conçue comme une bibliothèque à intégrer dans du code Python existant plutôt qu'une plateforme managée. **Les sources d'extraction** incluent les API REST (avec pagination déclarative, filtrage et aplatissement), les bases de données SQL (avec réflexion automatique des tables et des types), les fichiers dans les buckets cloud (S3, GCS, Azure — CSV, JSONL, Parquet) et les DataFrames (pandas, Polars, PyArrow avec prise en charge d'Arrow sans copie). **Le chargement** prend en charge plus de 20 destinations, notamment DuckDB, BigQuery, Snowflake, Postgres, Redshift, Databricks, Athena, ClickHouse, MotherDuck, Iceberg, Delta Lake et les systèmes de fichiers génériques. Changer de destination ne nécessite que la mise à jour de la chaîne `destination`. Capacités clés : - **Inférence et typage de schéma** : déduit automatiquement le schéma à partir des données source et mappe les types entre les destinations. - **Contrats de schéma** : trois modes — `evolve` (adapter le schéma), `freeze` (rejeter les incompatibilités), `discard` (supprimer les lignes/colonnes problématiques). - **Chargement incrémental** : prise en charge intégrée du chargement des seuls enregistrements nouveaux ou modifiés via des curseurs ou des horodatages. - **Stratégies de fusion/upsert** : fusion déclarative basée sur la clé primaire via l'option `write_disposition="merge"`. - **Normalisation des données imbriquées** : aplatit et normalise automatiquement les structures imbriquées. - **Intégration Ibis** : les tables chargées peuvent être transformées en expressions Ibis pour des requêtes Python composables qui se compilent en SQL dans le dialecte de la destination. - **Gestion des secrets** : identifiants injectés depuis `secrets.toml` ou des variables d'environnement. - **Reconnexion au pipeline** : utilisez `dlt.attach()` pour vous reconnecter à un pipeline par son nom et relire les données via une API `Dataset` qui prend en charge `.df()`, `.arrow()` et `.to_ibis()`. dlt est conçu avec la compatibilité LLM et agents de codage à l'esprit, offrant des primitives déclaratives et lisibles par l'humain adaptées à la génération de pipelines assistée par IA. Il prend en charge Python 3.10 à 3.14. Installation : `pip install dlt` avec des extras optionnels tels que `[duckdb]`, `[bigquery]`, `[sql_database]` et `[hub]`.