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 UI 中:
Dagster 旨在用于数据开发生命周期的每个阶段 - 本地开发、单元测试、集成测试、暂存环境,一直到生产。
如果您是 Dagster 的新手,我们建议您阅读其核心概念或通过实践教程进行学习。
Dagster 可在 PyPI 上使用,并正式支持 Python 3.9 到 Python 3.12。
pip install dagster dagster-webserver
这会安装两个包:
dagster
:核心编程模型。dagster-webserver
:托管 Dagster Web UI 的服务器,用于开发和操作 Dagster 作业和资产。在配备 Apple 芯片的 Mac 上运行?在此处检查安装详细信息。
您可以在此处找到完整的 Dagster 文档,包括“入门”指南。
使用声明性方法确定需要创建的关键资产,或者您可以专注于运行基本任务。从一开始就采用 CI/CD 最佳实践:构建可重用组件、发现数据质量问题并尽早标记错误。
使用强大的多租户、多工具引擎将您的管道投入生产,该引擎可在技术和组织上进行扩展。
随着复杂性的增加,保持对数据的控制。将您的元数据集中在一款具有内置可观察性、诊断、编目和沿袭功能的工具中。发现任何问题并确定绩效改进机会。
Dagster 为当今最流行的数据工具提供了一个不断增长的集成库。与您已使用的工具集成,并部署到您的基础设施。
与使用 Dagster 构建的数千名其他数据从业者联系。分享知识、获取帮助并为开源项目做出贡献。要查看特色材料和即将举办的活动,请查看我们的 Dagster 社区页面。
在这里加入我们的社区:
有关贡献或运行项目进行开发的详细信息,请查看我们的贡献指南。
Dagster 已获得 Apache 2.0 许可。