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

第21章 Dagster+ 分支部署中的变更跟踪

Dagster+ 进一步增强了数据管道变更的识别与协作能力。我们坚信,数据工程本质上是软件工程:数据管道应当以代码形式表达,并纳入 git 等版本控制系统管理。在将变更部署到生产环境之前,团队成员和相关利益方应在暂存或测试环境中审查并验证这些变更。

实际操作中,多数 Dagster 用户维护一个包含代码的主分支(main branch),以及对应的生产环境部署。当开发者修改数据管道时,会从 main 分支创建新分支,提交变更,并在 GitHub 或 GitLab 等托管服务中发起 Pull Request。待变更经过审查并批准后,便合并回 main 分支,生产环境的 Dagster 部署随之更新。

然而,这一流程跳过了开发过程中的一个关键环节——测试变更!这正是分支部署(Branch Deployments)发挥作用的地方。 > Jamie DeMaria 在 Dagster+ 发布时介绍了分支部署中的变更跟踪(Change Tracking)功能。

分支部署的工作原理

当你发起 Pull Request 时,Dagster+ 会创建一个对应的分支部署。正如 GitHub 预览代码合并后的状态一样,分支部署会整合 Pull Request 中的代码变更,生成一个轻量、临时但详尽且可交互的部署环境,直观展示变更合并后生产环境的样貌。

我们设计分支部署,旨在无缝融入现有开发流程,降低数据管道在审查、测试和协作方面的门槛。

分支部署可配置为与暂存资源交互,使你能在分支部署中物化资产,而不影响生产数据。

分支部署:现支持变更跟踪

让我们把 git 的类比延伸得更深一点。在 GitHub 等托管服务中,Pull Request 仅高亮显示特定分支内的变更,方便你快速定位审查重点。在 Dagster+ 中,分支部署也通过「变更跟踪」功能高亮显示受影响的资产。当创建分支部署时,系统会将当前资产与生产环境进行比对,在用户界面中直接标记出分支中发生变更的资产。

变更跟踪为测试与审查过程带来了全新的可视化维度。以下是它能提升测试与审查效率的具体方式:

测试环节 在具备变更跟踪功能的分支部署中,你可以利用过滤器仅展示受代码变更影响的资产。基于这一信息,你可以更精准地决定在分支部署中测试哪些资产。这直接提升了研发效率并节省成本,避免了在无谓地物化未变更资产上浪费时间和计算资源。

审查环节 变更跟踪也让理解和审查代码变更变得更容易。例如,以下代码变更看似无关紧要:

然而,很难直观判断这一变更影响了多少资产。你需要在代码库中搜索,即便这样,也很难确定是否已涵盖所有受影响的范围。

借助变更跟踪,团队可以通过 Dagster 用户界面直观查看所有受此变更影响的资产。

这能立即揭示代码变更的全貌,帮助你深入理解正在审查的代码,并及时发现潜在问题。

Dagster+ 通过检测并高亮分支部署中的多种变更类型,进一步优化了开发流程。这些类型包括:新建资产;新增、修改或删除分区;资产上游依赖变更;资产标签和元数据更新;以及资产计算函数的代码版本变更。若想深入了解各类变更的细节及示例,请参阅我们的详细文档。

关注后续增强功能

Dagster+ 的分支部署功能强化了现有的代码审查流程,提升了团队测试与审查代码的能力,使你能够更快地迭代并提高部署数据管道的质量。

在 Dagster Labs,我们不断探索创新方式,简化数据团队的开发与测试流程。目前,我们正积极探索让分支部署成为更真实的测试环境的方法,例如支持读取生产数据但写入暂存环境。我们期待听到关于分支部署未来演进的你的建议。

加入 GitHub 讨论 你有反馈或疑问?在 Slack 或 GitHub 发起讨论。 有意加入我们?查看我们的开放职位。 想看更多类似内容?关注我们的 LinkedIn。

评论 (0)