本文为您介绍 Pipeline YAML 配置文件的格式规范和完整字段定义。
Pipeline 配置文件采用 YAML 格式,命名约定为:
${name}.pipeline.yml
例如:daily_etl_orders.pipeline.yml
命名规则:
${name} 部分建议与 metadata.name 保持一致。apiVersion: newide.studio.dataleap.volc/v1 kind: Pipeline metadata: name: daily_etl_orders spec: displayName: "每日订单 ETL" description: "从 ODS 层抽取订单数据,清洗后写入 DWD 层" runAs: User/123456 schedulingResourceGroupName: default_scheduling_group activities: - name: extract_orders type: sql # ... - name: transform_orders type: notebook # ... trigger: type: scheduled cronExpression: "0 2 * * *" frequency: daily parameters: - name: biz_date default: "${date}" variables: - name: record_count default: "0" dataOutputs: - type: partition dataSource: las_catalog database: dwd table: orders partitions: - key: dt value: "${date}" dependsOn: pipelines: - name: upstream_ods_pipeline
顶层字段说明:
字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| String | 是 | 文件定义版本,固定为 |
| String | 是 | 资源类型,固定为 |
| Object | 是 | 元信息 |
| Object | 是 | Pipeline 详细配置 |
metadata: name: daily_etl_orders
字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| String | 是 | Pipeline 唯一标识名。在同一项目中唯一,建议只包含字母、数字和下划线,长度不超过 127。 |
注意
name 在项目内唯一,发布时系统自动维护 name 与发布态 Pipeline ID 的映射。.pipeline.yml 文件中 metadata.name 相同,它们发布时会发布到同一个 Pipeline。name(修改会导致发布为新的 Pipeline)。spec.displayName 字段。spec.activities 是一个数组,定义 Pipeline 中所有执行单元:
spec: activities: - name: extract_orders type: sql source: WORKSPACE path: /Workspace/Users/zhang3/sql/extract_orders.sql engineType: emr_serverless_spark engineQueue: default parameterValues: biz_date: "${date}" position: x: "200" y: "100" - name: transform_orders type: notebook source: WORKSPACE path: /Workspace/Users/zhang3/notebooks/transform.notebook sqlEngineType: emr_serverless_spark sqlEngineQueue: default dependsOn: activities: - name: extract_orders position: x: "400" y: "100"
每个 Activity 的通用字段:
字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| String | 是 | Activity 名称,当前 Pipeline 内唯一,只包含字母、数字和下划线,长度不超过 127 |
| String | 是 | Activity 类型(如 |
| String | 否 | 描述信息 |
| Object | 否 | 上游依赖配置 |
| Object | 否 | 重试策略 |
| Object | 是 | 画布位置信息(x, y 坐标) |
说明
各 Activity 类型的特有字段详见 Activity(任务节点)类型。
spec.trigger 定义 Pipeline 的触发方式:
spec: trigger: type: scheduled cronExpression: "0 2 * * *" frequency: daily priority: d4 effectiveTime: "2026-01-01 00:00:00.000" expirationTime: "9999-12-31 23:59:59.000" earliestBackfillTime: "2026-01-01 00:00:00.000" concurrency: 1
字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| Enum | 是 | 触发类型: |
| String | 条件必填 | Cron 表达式( |
| Enum | 否 | 调度频率: |
| Enum | 否 | 调度优先级: |
| Datetime | 否 | 调度生效起始时间 |
| Datetime | 否 | 调度失效时间 |
| Datetime | 条件必填 | 最早回溯时间,数据补跑时不会生成早于此时间的实例。 |
| Integer | 否 | 最大并发实例数, |
Cron 表达式格式:
┌────── 分钟 (0-59) │ ┌──── 小时 (0-23) │ │ ┌── 日 (1-31) │ │ │ ┌ 月 (1-12) │ │ │ │ ┌ 星期 (0-6, 0=周日) │ │ │ │ │ * * * * *
常用表达式示例:
表达式 | 含义 |
|---|---|
| 每天凌晨 2:00 |
| 每 6 小时 |
| 每天 1:30 |
| 每周一 3:00 |
| 每月 1 日 0:00 |
| 每 10 分钟 |
spec.parameters 定义 Pipeline 可接收的输入参数:
spec: parameters: - name: biz_date description: "业务日期" default: "${date}" - name: target_region description: "目标区域" default: "{{project.parameters.default_region}}" - name: run_mode description: "运行模式:full 全量 / incremental 增量" default: "incremental"
字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| String | 是 | 参数名,Pipeline 内唯一(字母、数字、下划线)。 |
| String | 否 | 参数描述 |
| String | 是 | 默认值 |
默认值支持的来源:
来源 | 语法 | 示例 |
|---|---|---|
硬编码值 | 直接写入 |
|
系统变量 |
|
|
项目参数 |
|
|
上游 Pipeline 输出 |
|
|
spec.variables 定义运行时可修改的内部变量:
spec: variables: - name: record_count description: "已处理记录数" default: "0" - name: error_flag description: "错误标记" default: "false" - name: file_list description: "待处理文件列表" default: "[]"
字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| String | 是 | 变量名,Pipeline 内唯一。 |
| String | 否 | 变量描述 |
| String | 否 | 初始值 |
变量的值可在运行过程中通过 set_variable 类型的 Activity 修改,适用于 Activity 间传递中间状态(如计数器、标记位、中间结果等)。
spec.dataOutputs 登记 Pipeline 的数据产出,用于建立数据血缘和调度依赖:
spec: dataOutputs: # 表级产出 - type: table dataSource: las_catalog catalog: default database: dwd table: orders # 分区级产出 - type: partition dataSource: las_catalog catalog: default database: dwd table: orders partitions: - key: dt value: "${date}" # HDFS 路径产出 - type: hdfs dataSource: emr clusterId: emr-xxxxxxxx path: "/data/warehouse/${date}" # 其他类型产出 - type: other
产出类型:
type 值 | 说明 | 必填字段 |
|---|---|---|
| 表级产出 |
|
| 分区级产出 |
|
| HDFS 路径产出 |
|
| 其他类型 | 无 |
字段说明:
字段 | 类型 | 说明 |
|---|---|---|
| Enum | 产出类型 |
| String | 数据源标识(如 |
| String | 数据目录(如 |
| String | 数据库名 |
| String | 表名 |
| Array | 分区键值对列表 |
| String | HDFS 集群 ID |
| String | HDFS 路径 |
说明
数据产出登记是可选配置,但建议为所有写入操作的 Pipeline 配置 dataOutputs,有助于平台建立完整的数据血缘关系和自动化依赖管理。