【大数据_数仓架构-DolphinScheduler_一次性讲解清楚如何用DolphinScheduler编排数仓任务】

发布时间:2026/6/22 23:44:56
【大数据_数仓架构-DolphinScheduler_一次性讲解清楚如何用DolphinScheduler编排数仓任务】 一、概念逐级对照┌────────────────────────────┬──────────────────────────────────────────────────────────────────┬─────────────────────────────────────────────┐│ DS 概念 │ Airflow 对应 │ 说明 │├────────────────────────────┼──────────────────────────────────────────────────────────────────┼─────────────────────────────────────────────┤│ Project 项目 │ ❌ 无原生概念 → 用 dags/ 子目录 tags (可选) RBAC Role │ Airflow 所有 DAG 在同一命名空间靠约定分组 │├────────────────────────────┼──────────────────────────────────────────────────────────────────┼─────────────────────────────────────────────┤│ Workflow 工作流 │ DAG │ 一对一 │├────────────────────────────┼──────────────────────────────────────────────────────────────────┼─────────────────────────────────────────────┤│ Task Node 节点 │ TaskOperator/task │ 一对一 │├────────────────────────────┼──────────────────────────────────────────────────────────────────┼─────────────────────────────────────────────┤│ SUB_PROCESS 子节点 │ TaskGroup同 DAG 内复用/ TriggerDagRunOperator跨 DAG 触发 │ SubDagOperator 已废弃别用 │├────────────────────────────┼──────────────────────────────────────────────────────────────────┼─────────────────────────────────────────────┤│ DEPENDENT 节点跨流依赖 │ ExternalTaskSensor 或 Datasets数据感知调度推荐 │ 这是迁移重点 │├────────────────────────────┼──────────────────────────────────────────────────────────────────┼─────────────────────────────────────────────┤│ 全局/项目参数 │ Variables Jinja 模板{{ ds }} 业务日期 │ DS 的 $[yyyyMMdd] ≈ {{ ds_nodash }} │├────────────────────────────┼──────────────────────────────────────────────────────────────────┼─────────────────────────────────────────────┤│ Task Group 并发组 │ Pool限并发保护源库 │ │├────────────────────────────┼──────────────────────────────────────────────────────────────────┼─────────────────────────────────────────────┤│ 租户 Tenant │ Queue Connection Worker │ │├────────────────────────────┼──────────────────────────────────────────────────────────────────┼─────────────────────────────────────────────┤│ 告警/重试 │ DAG/Task 的 retries、on_failure_callback │ 写在代码里 │└────────────────────────────┴──────────────────────────────────────────────────────────────────┴─────────────────────────────────────────────┘ODS 接入、DWD/DWS 建模、ADS 分析是不同团队按层建项目刚好对齐权限若同一个团队全包5 个项目反而增加跨项目 DEPENDENT 的管理成本——这点要结合组织结构–项目ODS–工作流 ODS_交易–工作流 ODS_履约–工作流 ODS_会员–项目DIM–工作流 dim_用户–工作流 dim_店铺–工作流 dim_城市–项目DWD–工作流 dwd_交易–工作流 dwd_履约–工作流 dwd_会员–项目DWS 【跨域】–工作流 dws_用户主题–工作流 dws_店铺主题–工作流 dws_商品主题–工作流 dws_履约主题–项目ADS 【跨主题】–工作流 ads_经营看板–工作流 ads_会员运营类–工作流 ads_商家服务类–工作流 ads_履约监控类AirflowAirflow 没有 Project所以5 个项目变成目录分层 统一 tag/ownerdags/├── ods/│ ├── ods_trade.py # DAG(dag_id“ods_trade”, tags[“ods”])│ ├── ods_fulfillment.py│ └── ods_member.py├── dim/│ ├── dim_user.py│ ├── dim_shop.py│ └── dim_city.py├── dwd/│ ├── dwd_trade.py # 依赖 ods_trade → ExternalTaskSensor / Dataset│ ├── dwd_fulfillment.py│ └── dwd_member.py├── dws/│ ├── dws_user.py # 跨域: 等 dwd_trade dwd_member│ ├── dws_shop.py│ ├── dws_item.py│ └── dws_fulfillment.py└── ads/├── ads_ops_board.py # 跨主题: 等多个 dws├── ads_member_ops.py├── ads_merchant_svc.py└── ads_fulfillment_mon.py项目边界 目录 tags[“dws”] owner RBAC按 tag/folder 配权限角色对齐 ODS/DWD/ADS 不同团队。