Dagster 是一个面向整个开发生命周期的云原生数据管道编排工具,集成了血缘分析和可观察性,采用声明式编程模型,并具有同类最佳的可测试性。
它专为开发和维护数据资产而设计,如表格、数据集、机器学习模型和报告。
使用 Dagster,您可以通过 Python 函数声明要构建的数据资产。然后,Dagster 帮助您在适当的时间运行这些函数,并保持资产的最新状态。
以下是一个用 Python 定义的三个资产的图示例:
from dagster import asset
from pandas import DataFrame, read_html, get_dummies
from sklearn.linear_model import LinearRegression
@asset
def country_populations() -> DataFrame:
df = read_html("https://tinyurl.com/mry64ebh")[0]
df.columns = ["country", "pop2022", "pop2023", "change", "continent", "region"]
df["change"] = df["change"].str.rstrip("%").str.replace("−", "-").astype("float")
return df
@asset
def continent_change_model(country_populations: DataFrame) -> LinearRegression:
data = country_populations.dropna(subset=["change"])
return LinearRegression().fit(get_dummies(data[["continent"]]), data["change"])
@asset
def continent_stats(country_populations: DataFrame, continent_change_model: LinearRegression) -> DataFrame:
result = country_populations.groupby("continent").sum()
result["pop_change_factor"] = continent_change_model.coef_
return result
在 Dagster 的 Web 界面中加载的图:
Dagster 旨在用于数据开发生命周期的每个阶段 - 从本地开发、单元测试、集成测试、预发环境,一直到生产环境。
快速入门:
如果您是 Dagster 新手,我们建议阅读其核心概念或通过实践教程学习。
Dagster 可在 PyPI 上获得,并正式支持 Python 3.8 至 Python 3.12。
pip install dagster dagster-webserver
这将安装两个包:
dagster
:核心编程模型。dagster-webserver
:托管 Dagster Web 界面的服务器,用于开发和操作 Dagster 作业和资产。
使用搭载 Apple 芯片的 Mac?请查看这里的安装详情。
文档
您可以在这里找到完整的 Dagster 文档,包括"入门指南"。
主要特性:
Dagster 作为生产力平台
使用声明式方法确定需要创建的关键资产,或者专注于运行基本任务。从一开始就采用 CI/CD 最佳实践:构建可重用组件,发现数据质量问题,并及早标记错误。
Dagster 作为强大的编排引擎
使用一个强大的多租户、多工具引擎将您的管道投入生产,该引擎在技术和组织上都能扩展。
Dagster 作为统一控制平面
随着复杂性增加,保持对数据的控制。将您的元数据集中在一个工具中,该工具内置可观察性、诊断、编目和血缘分析。发现任何问题并识别性能改进机会。
通过集成掌握现代数据栈
Dagster 为当今最流行的数据工具提供了不断增长的集成库。与您已在使用的工具集成,并部署到您的基础设施中。
社区
与数千名使用 Dagster 构建的其他数据从业者联系。分享知识、获取帮助,并为开源项目做出贡献。要查看精选材料和即将举行的活动,请查看我们的 Dagster 社区页面。
通过以下方式加入我们的社区:
- 🌟 在 GitHub 上为我们点星
- 📥 订阅我们的新闻通讯
- 🐦 在 Twitter 上关注我们
- 🕴️ 在 LinkedIn 上关注我们
- 📺 订阅我们的 YouTube 频道
- 📚 阅读我们的博客文章
- 👋 加入我们的 Slack
- 🗃 浏览 Slack 存档
- ✏️ 开始 GitHub 讨论
贡献
有关贡献或为开发运行项目的详细信息,请查看我们的贡献指南。
许可证
Dagster 采用 Apache 2.0 许可证。