Sobre el proyecto
dlt (data load tool) es una biblioteca de Python de código abierto que automatiza la extracción, transformación y carga de datos. Está diseñada como una biblioteca que se integra en código Python existente en lugar de ser una plataforma gestionada.
**Las fuentes de extracción** incluyen API REST (con paginación declarativa, filtrado y aplanamiento), bases de datos SQL (con reflexión automática de tablas y tipos), archivos en buckets de la nube (S3, GCS, Azure — CSV, JSONL, Parquet) y DataFrames (pandas, Polars, PyArrow con soporte Arrow de copia cero).
**La carga** admite más de 20 destinos, incluidos DuckDB, BigQuery, Snowflake, Postgres, Redshift, Databricks, Athena, ClickHouse, MotherDuck, Iceberg, Delta Lake y sistemas de archivos genéricos. Cambiar de destino solo requiere actualizar la cadena `destination`.
Capacidades clave:
- **Inferencia de esquema y tipado**: Infiere automáticamente el esquema a partir de los datos de origen y mapea los tipos entre destinos.
- **Contratos de esquema**: Tres modos — `evolve` (adaptar el esquema), `freeze` (rechazar discrepancias), `discard` (descartar filas/columnas problemáticas).
- **Carga incremental**: Soporte integrado para cargar solo registros nuevos o modificados mediante cursores o marcas de tiempo.
- **Estrategias de merge/upsert**: Merge declarativo basado en clave primaria mediante la opción `write_disposition="merge"`.
- **Normalización de datos anidados**: Aplana y normaliza automáticamente estructuras anidadas.
- **Integración con Ibis**: Las tablas cargadas se pueden elevar a expresiones de Ibis para consultas de Python componibles que se compilan a SQL en el dialecto del destino.
- **Gestión de secretos**: Credenciales inyectadas desde `secrets.toml` o variables de entorno.
- **Reconexión de pipeline**: Use `dlt.attach()` para reconectarse a un pipeline por nombre y leer datos de vuelta mediante una API `Dataset` que admite `.df()`, `.arrow()` y `.to_ibis()`.
dlt está construido pensando en la compatibilidad con LLM y agentes de codificación, ofreciendo primitivas declarativas y legibles por humanos adecuadas para la generación de pipelines asistida por IA. Es compatible con Python 3.10 hasta 3.14.
Instalación: `pip install dlt` con extras opcionales como `[duckdb]`, `[bigquery]`, `[sql_database]` y `[hub]`.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.