进阶 dagster.io 2026-10-10 01:48:56 · 6 阅读

第32章 Dagster 1.11 发布:Components 与 dg 工具助力流水线构建

Dagster 1.11 通过 Components 和 dg 大幅改善了流水线构建体验,同时增强了编排能力、集成功能等。与设计伙伴和社区共同打造的 Dagster 1.11 "Build Me Up Buttercup" 正式发布!

本次发布亮点:

Components(稳定版):以 YAML 或 Python 声明 Dagster 定义的可配置、可复用构建模块,无需样板代码。 dg CLI(稳定版):全新命令行工具,支持代码脚手架、加速开发、让大型项目保持可控。 跨平台 create-dagster 命令:几秒钟内创建一个带最佳实践的项目或工作区布局。 核心编排与 UI 的多项体验优化。 生态集成升级:Iceberg、dbt Cloud、Airflow、Fivetran,以及应用内的集成市场(Integrations Marketplace)。 ……还有更多!

详情请继续阅读。

Components(稳定版):数据管道的可配置、可复用构建模块

Components 提供基于 YAML 或 Python 的可配置、可复用构建模块,让你轻松定义 Dagster 资产和流水线。

即插即用的 YAML 或 Python:用简洁的 YAML 或轻量 Python 快速搭建流水线,几乎零样板代码即可创建任意 Dagster 定义(如 assets、resources、schedules、checks 等)。dbt、Fivetran、Airbyte、Sling、DLT、Power BI 等均有现成组件。详见 Components 文档。

自动文档:你已经编写的元数据会自动生成实时参考页面和内联帮助信息,让使用者随时查阅,免去维护 README 的麻烦。

低代码、高清晰度的 DSL

自定义组件:如果你是服务众多数据用户的数据平台团队,可以将任意内部脚本或第三方工具封装为自定义组件,并以与内置组件同样完善的工具体验交付给用户。无需额外胶水代码,也无需重新培训相关方。

强大的工具支持:高质量的错误提示、强类型定义,以及可与 CI/CD 工作流集成的稳健工具,便于管理 YAML。

Pythonic 模板:想要更灵活的定制?可以注册可复用的变量和 Python 辅助函数进行深度定制,让相关方在单个 defs.yaml 中构建完整工作流,完全无需接触样板代码。

dg(稳定版):你的全能 CLI

把 dg 想象成终端里的 IDE:生成代码脚手架、启动带 UI 的本地 Dagster、运行作业、检查定义——所有操作一条命令搞定。

代码生成:dg scaffold 快速生成 assets、components 等定义,零样板代码。 本地开发与临时执行:dg dev 一条命令启动完整的 Dagster 实例和 UI;dg launch 直接从 CLI 运行作业或资产,快速临时执行。 内省与校验:通过 dg list 和 dg check 轻松查看和校验定义。 DX 工具:轻松配置 VSCode/Cursor 扩展、生成 schema、检查组件。

现有 dagster CLI 中你熟悉的命令在 dg 中同样可用。dg CLI 最终将完全取代现有 dagster CLI,提供更好的易用性和统一体验。(注意:部分子命令仍在开发中,即将推出。)

create-dagster:一步式项目引导

一条简单命令即可 instant 创建生产就绪的 Dagster 项目或工作区,无需任何依赖。这个现代化的命令取代了此前的脚手架工作流,提供:

标准化的 Python 目录布局。 预配置的本地 dg CLI 设置。 工作区脚手架能力(新支持)。 无需激活的 Python 环境(兼容 pipx、uvx、brew、curl)。

UI

统一资产选择:灵活而富有表现力的语法,轻松定义跨资产的选择,可应用于告警、洞察和保存视图。详见 https://dagster.io/blog/updated-asset-selection-syntax Runs › Backfills:将所有 backfill 活动整合到 Runs 页面下,导航更快。 增强的 Asset Graph:重新设计的可自定义节点,附带详细健康指标。

核心编排增强

改进的部分重试:新增重新执行选项,可只重跑多资产步骤中失败的资产,而不是失败步骤中的所有资产。在重度 dbt 执行和多资产工厂场景下节省资源和时间。 Ops 中的 Checks:现在可以在 Ops 中使用 asset checks,适用于不适合 Assets 范式的运维型和动态工作流。 Assets 中的 Hooks:assets 现已支持成功/失败回调。 高效的 Backfill 与并发管理:改进的 backfill 策略和多线程支持提升了调度效率;run blocking 现为默认行为,防止资源超额占用。

集成

Fivetran 集成 GA:FivetranWorkspace resource 正式 GA [文档]。 dbt Cloud(Beta):一等公民级别的作业启动和血缘捕获 [文档]。 Apache Iceberg(Preview):Iceberg IOManager 支持读写湖仓表 [文档]。 Airflow(Beta):Airflow Component 让你在 Dagster 中展示 Airflow DAG,实现混合编排器的可观测性 [文档]。 集成市场(Preview):在 Dagster UI 中新增 "Integrations" 标签页,可原生浏览官方和第三方集成(通过 User Settings → "Display integrations marketplace" 启用)。

致谢

衷心感谢每一位提交 issue、贡献 PR、测试预览版、为我们加油的人。没有你们,就没有今天的 Dagster。

Anush (Anush008) Alex Noonan (C00ldudeNoonan) Dino Scheidt (D1no) Exlll (Exlll) Fredrik Bakken (FredrikBakken) HynekBlaha (HynekBlaha) OwenKephart (OwenKephart) Pedram Navid (PedramNavid) Morgan PERRE (Thenkei) Julien "uj" Abadji (Uinelj) Andreas Buchmüller (abuchmueller) Adam Bloom (adam-bloom) Alexander Grueneberg (agrueneberg) Alex Langenfeld (alangenfeld) Alexandre Potvin-Demers (alexpotv) Anurag Anjaria (anuthebananu) axelwas (axelwas) Stefano (babaMar) bartcode (bartcode) Ben Gotow (bengotow) Ben Pankow (benpankow) Josh Braun (braunjj) Brian Dailey (briandailey) Bruno Bento (brunobbaraujo) Charles Augello (chazmo03) Claire Lin (clairelin135) colton (cmpadden) Daniel Gafni (danielgafni) David Baker (davvidbaker) Deepyaman Datta (deepyaman) Dennis Hume (dehume) dependabot[bot] (dependabot[bot]) Christopher DeCarolis (dpeng817) Dragos Pop (dragos-pop) Edson Nogueira (edsoncezar16) Andrew Grigorev (ei-grad) Eli Boyarski (eli-b) evbevz (evbevz) Sergei Nikiforov (futurewasfree) Gareth Brickman (garethbrickman) Gecko Security (geckosecurity) geoHeil (geoHeil) gibsondan (gibsondan) Guillaume Tauzin (gtauzin) Isaac Hellendag (hellendag) Isaac Jordan (isaac-jordan) jamiedemaria (jamiedemaria) jj (jjyeo) Joseph McCartin (jmccartin) Jordan Sanders (jmsanders) Johnny Santamaria (johnny603) jonathanunderwood (jonathanunderwood) Kate Farrar (katefarrar) Ken Geis (kgeis) Matt Krukowski (krukowski) Bryan Lee (liby) Marijn Valk (marijncv) Matt Giles (mattgiles) Maxime Armstrong (maximearmstrong) mfiliba (mfiliba) natpatchara-w (natpatchara-w) Neil Fulwiler (neilfulwiler) Nicolas Estrada (neuromantik33) Nikki Everett (neverett) Martin Mauch (nightscape) Nishan (nishan-soni) Pete Hunt (petehunt) Tom (petrusek) prha (prha) raayu83 (raayu83) René Petersen (renepetersen1984) Ross Housewright (ross-whatnot) Marco polo (salazarm) Sean Quinlan (sbquinlan) Nick Schrock (schrockn) seyf97 (seyf97) shimon pats (shimon-cherrypick) Sean Mackesey (smackesey) Paul Stepler-Camp (steplercamp) Steven Ayers (stevenayers) Mohan Talla (tallamohan) Dimitry Foures (thedimlebowski) Martin Erpicum (tintamarre) Tomek Zbrozek (tomekzbrozek) Vinodh Zamboulingame (vzamboulingame) yassun7010 (ya7010) Yuhan Luo (yuhan) Shane Zarechian (zero-stroke)

敬请期待后续版本的更多更新和增强——一如既往,祝数据工程愉快!有反馈或问题?欢迎在 Slack 或 GitHub 上发起讨论。有兴趣加入我们?查看我们的在招职位。想要更多此类内容?关注我们的 LinkedIn。

评论 (0)