本文为您介绍 Pipeline YAML 配置文件的格式规范和完整字段定义。
Pipeline 配置文件采用 YAML 格式,命名约定为:
${name}.pipeline.yaml
例如:daily_etl_orders.pipeline.yaml
命名规则:
${name} 部分建议与 metadata.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" dependsOn: pipelines: - name: upstream_ods_pipeline
顶层字段说明:
字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| String | 是 | 文件定义版本,固定为 |
| String | 是 | 资源类型,固定为 |
| Object | 是 | 元信息 |
| Object | 是 | Pipeline 详细配置 |
metadata: name: daily_etl_orders
字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| String | 是 | Pipeline 唯一标识名。在同一项目中唯一,建议只包含字母、数字和下划线,长度不超过 127。 |
注意
name 在项目内唯一,发布时系统自动维护 name 与发布态 Pipeline ID 的映射。.pipeline.yaml 文件中 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.ipynb kernelType: emr_serverless_spark engineQueue: 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
字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| Enum | 是 | 触发类型: |
| String | 条件必填 | Cron 表达式( |
| Enum | 否 | 调度频率: |
| Enum | 否 | 调度优先级: |
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.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 间传递中间状态(如计数器、标记位、中间结果等)。