数据 ETL 任务流

需要对接外部数据中台、在平台上编排数据 ETL 任务节点(入库/出库/计算/脚本),并查看任务流 JSON 与运行实例时阅读

平台使用 / 数据资产与处理
数据ETLETLetl pipeline数据中台任务流pipeline编排dag_jsonhdfshivesparksparkjobhadoopdataxcos数据入库

数据 ETL 任务流

数据 ETL 用于在平台上对接外部数据中台,编排并触发数据 ETL 操作。它是专用于数据 ETL 的任务流:对接数据中台之后,在此处添加数据 ETL 任务流,拖拉拽 ETL 任务模板编排任务节点。

这里只负责编排任务节点,实际的数据 ETL 任务运行仍在二次开发时对接的外部调度/任务系统上。

这是一种特化的任务流(DAG)编排,编排交互与通用 ML 任务流类似,可对照 任务流编排;可拖拽的节点模板含义见 任务模板总览

入口:「数据 ETL」。后端模型 ETL_Pipeline(表名 etl_pipeline),视图 etl_pipeline_modelview。每条任务流有「计算引擎(workflow)」字段,取值 etldata_analysisdata_analysis 为 CubeStudio 内置的数据分析任务流,etl 用于对接外部调度系统(myapp/views/view_etl_pipeline.py:248,247)。

新建与编排

点击「数据 ETL」的「新建任务流」,再点击新建好的任务流名称链接,即可进入 pipeline 编排界面(链接指向 /etl_pipeline_modelview/api/web/<id>,见 myapp/models/model_etl_pipeline.py:41)。

输入图片说明

生成的任务流编排信息会自动保存为 JSON 格式存入数据库(ETL_Pipeline.dag_json 字段,myapp/models/model_etl_pipeline.py:30),在任务流详情界面可以查看该 JSON。

输入图片说明

下图是一个典型的 ETL 任务流。左侧边栏有一系列可进行 ETL 操作的模板,拖拉拽需要的模板并配置每个任务节点,即可完成数据中台的数据入库、数据 ETL、数据出库等操作。

输入图片说明

ETL 任务模板

ETL 编排界面内置的任务模板分为四组(myapp/views/view_etl_pipeline_etl.py:123,125):

  • 绑定任务:已存在任务、xx 平台任务流
  • 出库入库:hdfs 入库至 hive、hive 出库至 hdfs、hdfs 导入 cos、cos 导入 hdfs
  • 数据计算:SparkScala、SQL
  • 脚本执行:pyspark、shell

说明:早期文档曾称「主要是使用 hadoop、sparkjob 等任务模板来实现」,但 ETL 任务流的内置模板实为上列四组(myapp/views/view_etl_pipeline_etl.py:123:128-900),并无名为 hadoop / sparkjob 的模板。仓库另有通用 ML pipeline 的 hadoopsparkdatax 任务模板(job-template/job/),与此处 ETL 任务流的内置模板不是同一套。除内置模板外,还可通过二次开发扩展模板。

对接数据中台、数据 ETL 的各类模板,除了平台内置的,还可以通过二次开发增加模板(参见「二次开发」相关文档)。

运行与跟踪

任务流提交后会产生运行实例(ETL_Pipeline_Run,表名 etl_pipeline_run)。列表页可查看每次运行的状态、耗时,并通过「跟踪」查看各 DAG 节点的状态、日志与数据预览(myapp/models/model_etl_pipeline.py:116-151)。

最后更新 2026-07-04完整文档以官方仓库为准:GitHub Wiki