Dagster 数据资产编排
Dagster 以“数据资产(asset)”为中心,适合管理数据管道的依赖、分区、调度和血缘。核心概念是 asset、job、schedule、sensor 和 Definitions。
本地开发:
dagster dev -f definitions.py
# 访问 http://localhost:3000
定义资产:
from dagster import asset, Definitions, ScheduleDefinition
@asset
def raw_orders():
return [{"id": 1, "amount": 100}]
@asset
def daily_revenue(raw_orders):
return sum(o["amount"] for o in raw_orders)
defs = Definitions(
assets=[raw_orders, daily_revenue],
schedules=[ScheduleDefinition(
job=...,
cron_schedule="0 2 * * *",
)],
)
执行资产:
dagster asset materialize -f definitions.py --select daily_revenue
查看运行记录:
dagster run list
dagster asset list
生产部署使用 dagster-webserver、dagster-daemon 和 PostgreSQL,并配置对象存储保存运行日志。
Definitions 没有注册 job/schedule,UI 看不到。