Об этом проекте
dlt (инструмент загрузки данных) — это библиотека Python с открытым исходным кодом, которая автоматизирует извлечение, преобразование и загрузку данных. Она задумана как библиотека, которую вы встраиваете в существующий код Python, а не как управляемая платформа.
**Источники извлечения** включают REST API (с декларативной пагинацией, фильтрацией и уплощением), SQL-базы данных (с автоматическим отражением таблиц и типов), файлы в облачных хранилищах (S3, GCS, Azure — CSV, JSONL, Parquet) и DataFrame (pandas, Polars, PyArrow с поддержкой Arrow без копирования).
**Загрузка** поддерживает более 20 назначений, включая DuckDB, BigQuery, Snowflake, Postgres, Redshift, Databricks, Athena, ClickHouse, MotherDuck, Iceberg, Delta Lake и общие файловые системы. Смена назначения требует только обновления строки `destination`.
Ключевые возможности:
- **Вывод схемы и типизация**: автоматически выводит схему из исходных данных и сопоставляет типы между назначениями.
- **Контракты схемы**: три режима — `evolve` (адаптация схемы), `freeze` (отклонение несоответствий), `discard` (отбрасывание проблемных строк/столбцов).
- **Инкрементальная загрузка**: встроенная поддержка загрузки только новых или изменённых записей с использованием курсоров или меток времени.
- **Стратегии слияния/обновления**: декларативное слияние на основе первичного ключа через опцию `write_disposition="merge"`.
- **Нормализация вложенных данных**: автоматическое уплощение и нормализация вложенных структур.
- **Интеграция с Ibis**: загруженные таблицы можно поднять в выражения Ibis для композируемых запросов на Python, которые компилируются в SQL на диалекте назначения.
- **Управление секретами**: учётные данные вводятся из `secrets.toml` или переменных окружения.
- **Переподключение конвейера**: используйте `dlt.attach()`, чтобы переподключиться к конвейеру по имени и прочитать данные обратно через API `Dataset`, поддерживающий `.df()`, `.arrow()` и `.to_ibis()`.
dlt создан с учётом совместимости с LLM и агентами кодирования, предлагая декларативные, читаемые человеком примитивы, подходящие для генерации конвейеров с помощью ИИ. Он поддерживает Python 3.10–3.14.
Установка: `pip install dlt` с дополнительными опциями, такими как `[duckdb]`, `[bigquery]`, `[sql_database]` и `[hub]`.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.