dagster-io/dagster

Платформа оркестрации для разработки, производства и наблюдения за данными.

LLMOps⭐ 16 187Pythonпоследний релиз: 1.13.23
Открыть на GitHub ↗Сайт проекта ↗

Что это за инструмент

Dagster — это оркестратор данных с открытым исходным кодом, предназначенный для создания, запуска и мониторинга конвейеров обработки данных (data pipelines). Он позволяет декларативно описывать зависимости между данными и обеспечивает их актуальность.

Зачем нужен

Инструмент решает задачу управления жизненным циклом данных (data assets), такими как таблицы, датасеты и ML-модели, от локальной разработки до продакшена. Он полезен тем, кто хочет обеспечить воспроизводимость процессов, автоматический пересчет зависимых данных при изменении источников и иметь полную видимость (observability) и lineage (происхождение данных) в едином интерфейсе.

Что можно реализовать

  • Построение ETL/ELT пайплайнов с автоматическим учетом зависимостей между таблицами и датасетами
  • Разработка и тестирование ML-моделей как часть конвейера данных с интеграцией библиотек вроде scikit-learn
  • Мониторинг качества данных и отслеживание lineage (происхождения) метаданных через встроенный UI
  • Интеграция CI/CD практик в процессы обработки данных с использованием декларативной модели на Python

Ключевые возможности

  • Декларативная модель на Python: данные описываются как функции, Dagster сам управляет их выполнением и зависимостями
  • Встроенная observability и lineage: веб-интерфейс для визуализации графов данных, диагностики ошибок и анализа производительности
  • Поддержка полного жизненного цикла: единая среда для локальной разработки, unit-тестов, staging и production
  • Широкая экосистема интеграций с популярными инструментами современного Data Stack
  • Открытая лицензия Apache 2.0 и активное сообщество

👤 Кому подойдёт: Data Engineers, Data Scientists, разработчики ML-пайплайнов, архитекторы данных

Релизы

1.13.23minor
🕐 4 дн назад · релиз на GitHub ↗

Dagster 1.13.23: новые политики алертов, мультиплатформенные образы, поддержка .yml и исправления UI.

  • Added: В Dagster+ политики оповещений теперь поддерживают метрики емкости развертывания (очередь и активные задачи) с агрегацией по скользящему окну.
  • Added: Образы dagster-k8s, dagster-celery-k8s и user-code-example теперь мультиплатформенные и поддерживают архитектуры amd64 и arm64.
  • Added: Добавлена поддержка расширения .yml для файлов компонентов, dagster.yaml и workspace.yaml наряду с .yaml.
  • Added: В Dagster+ Serverless быстрые деплои теперь собирают Docker-образ вместо PEX-исполняемого файла для Kubernetes и Harbor.
  • Fixed: Исправлено поведение UI: автоматическое обновление страниц больше не останавливает опрос после сбоев, а дерево каталога не прыгает при скролле.
1.13.22minor
🕐 9 дн назад · релиз на GitHub ↗

Ускорение очереди запусков, новая интеграция с Prefect, поддержка dbt 1.12 и улучшения UI в Dagster 1.13.22.

  • Added: Значительно ускорено выполнение очередей запусков при использовании пулов параллелизма.
  • Added: Добавлен превью-интеграция с Prefect для запуска деплоев и фоновых задач через Dagster Pipes.
  • Added: Обновлен UI: временная шкала тиков теперь поддерживает фильтрацию, пагинацию и живой режим.
  • Added: Добавлена поддержка dbt-core 1.12 и обновлено требование к python-liquid для dagster-looker.
  • Fixed: В Dagster+ исправлена ошибка сервера при запросе метрик активов по ключу.
1.13.21patch
🕐 17 дн назад · релиз на GitHub ↗

Исправлена работа политик свежести активов, устранена утечка соединений в PostgreSQL, улучшена логика автоматизации и управление алертами в Dagster+.

  • Fixed: Исправлено игнорирование политик свежести активов при наличии нескольких кодовых локаций.
  • Fixed: Устранена утечка соединений в dagster-postgres, предотвращающая исчерпание пула веб-сервера.
  • Added: Бэкфиллы с завершенными запусками, но незаполненными разделами, теперь корректно завершаются со статусом ошибки.
  • Added: Улучшена отладка условий автоматизации: теперь показываются сохраненные значения для исторических условий.
  • Added: В Dagster+ синхронизация алертов из YAML больше не удаляет политики, созданные через UI.
1.13.20minor
🕐 24 дн назад · релиз на GitHub ↗

Dagster 1.13.20: очистка динамических партиций, уведомления о деплоях, обновление UI и исправление ошибок ECS.

  • Added: Появилась возможность единым действием очищать и удалять динамические партиции, что снимает статус деградации здоровья ассета.
  • Added: Политики оповещений теперь поддерживают уведомления об успешном развертывании кодовых локаций.
  • Added: В интерфейсе фильтров в выпадающем списке автодополнения теперь отображаются недавние поисковые запросы.
  • Added: Обновлены логотипы Dagster и Dagster+, а также иконки Google kind tag в соответствии с новым брендингом.
  • Fixed: В dagster-aws исправлена ошибка, из-за которой запуск ECS-задачи завершался ошибкой вместо повторной попытки при транзиторном сбое AGENT.
1.13.19patch
🕐 1 мес назад · релиз на GitHub ↗

В Dagster 1.13.19 добавлена функция сворачивания/разворачивания таблицы условий автоматизации и исправлена ошибка с запуском задач при ошибках прав.

  • Added: Добавлен переключатель для сворачивания и разворачивания всех элементов в таблице оценки условий автоматизации.
  • Fixed: Исправлена ошибка, при которой проверка датчика могла запускать задачи, даже если создание или удаление динамических разделов не удавалось из-за недостатка прав.
1.13.18patch
🕐 1 мес назад · релиз на GitHub ↗

Исправления в dagster-snowflake и улучшенная индикация статуса активов при ожидании автоматических повторов.

  • Added: Активы с ожидающими повтора неудачными партициями теперь показывают статус warning вместо degraded.
  • Added: SnowflakeDbtProjectComponent поддерживает настройку defs_state для хранения версионированного состояния в Dagster+.
  • Fixed: Исправлено игнорирование значения по умолчанию в полях конфигурации с типом discriminated union.
  • Fixed: Исправлено неверное определение dbt-запусков, инициированных Dagster, как внешних в observation sensor.
  • Fixed: Устранена ошибка при построении моделей dbt, выходящих за пределы выбранного подмножества активов.
1.13.17patch
🕐 1 мес назад · релиз на GitHub ↗

Исправлена критическая уязвимость в Spark, улучшена обработка ошибок и поиск в UI, добавлена поддержка SLURM и версионирование состояния Snowflake.

  • Fixed: Устранена уязвимость инъекции команд в spark_resource и create_spark_op за счет прямого вызова spark-submit без оболочки.
  • Added: Активы с ожидающими автоматическими повторными попытками теперь имеют статус WARNING, а в уведомлениях указывается «Failed, retry pending».
  • Added: В боковой панели графа активов улучшен поиск: учитывается отображаемое имя, результаты сортируются алфавитно и показывается неймспейс.
  • Added: Добавлен тег-иконка для SLURM и возможность настройки defs_state в SnowflakeDbtProjectComponent для хранения состояния в версии.
  • Fixed: Исправлена ошибка определения гибридных деплоеев как Serverless, улучшена работа агента Kubernetes при отсутствии прав на ConfigMaps.
1.13.16minor
🕐 1 мес назад · релиз на GitHub ↗

Добавлена декларативная автоматизация для джобов (превью), исправлены повторные запросы Airbyte, обновлена документация.

  • Added: Появилась возможность автоматизировать джобы через параметр automation_condition в define_asset_job.
  • Added: Вкладка Components теперь показывает все экземпляры компонентов, а не только управляемые приложениями.
  • Fixed: Исправлена ошибка, из-за которой запросы Airbyte не повторялись при временных сбоях.
  • Уточнены различия между метаданными на этапе определения и выполнения, добавлена документация по Soda.
1.13.12patch
🕐 2 мес назад · релиз на GitHub ↗

Исправлены ошибки автоматизации и gRPC, улучшена производительность UI и стабильность EMR.

  • Fixed: Исправлено зависание кодовых локаций в ошибке после временных сбоев gRPC.
  • Fixed: Устранена ошибка CheckError, останавливавшая автоматизацию при проверке несозданных партиций.
  • Added: Улучшена производительность ленты запусков для большого числа активов.
  • Added: Добавлен параметр dashboard_refresh_interval для PipesEMRServerlessClient.
  • Fixed: Исправлено переполнение длинных названий пулов в интерфейсе.