# 检索和编辑管道配置

您可以检索管道的 YAML 配置文件，通过导出项目，或从版本控制中检索它。然后，您可以在您的开发环境中编辑 YAML 文件以进行更改。

在入门时，您有三个选项。

* 导出项目为 YAML

  导出项目会生成一个 ZIP 文件，其中包含所有任务、数据集和项目设置的 YAML 文件。有关更多信息，请参阅[导出和导入数据管道](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Introduction/Data-project-export-import.htm)。

  提示注释首先以最小化格式导出。最小化文件仅显示与默认值不同的内容，使其更易于阅读，也更易于在不同项目中复制。当您导入一个最小化文件时，Qlik Talend Data Integration 会应用指定的值，并对其他所有内容使用默认值。如果您需要查看所有可用属性及其默认值的完整列表，请以完整格式导出同一项目以供参考。

* 从版本控制导入项目

  有关更多信息，请参阅[从版本控制导入项目](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/VersionControl/Project-version-control.htm#Importin)。

* 您也可以从头开始创建管道配置，方法是编写与所需文件夹结构匹配的 YAML 文件，但我们建议您从现有模板开始。

## 将项目迁移到 YAML 格式

在引入声明式管道管理之前创建的项目，使用旧版 JSON 文件存储在版本控制中。

信息注释旧版 JSON 格式的支持截至 2027 年 6 月底，让您有充足的时间来顺利规划和迁移项目。

您可以将这些项目迁移到基于 YAML 的结构，以利用精简文件和声明式管道工作流。

信息注释此操作仅适用于以旧版 JSON 格式存储的项目。已经使用 YAML 文件的项目不显示此选项。

将项目迁移到 YAML 格式：

1. 打开项目并打开版本控制菜单。

2. 点击 迁移到 YAML 格式。

3. 查看确认消息并点击 迁移。

   信息注释迁移过程会提交并推送当前项目状态为 JSON 格式，然后将文件转换为新的 YAML 结构并再次提交。由于在转换过程中文件夹结构和文件名会发生变化，因此迁移前的版本历史记录可能无法与迁移后的历史记录直接比较。

迁移完成后，项目将以 YAML 格式存储在当前分支上。其他仍然包含 JSON 文件的分支，下次您切换到它们时，将显示迁移选项。

提示注释按顺序迁移所有环境分支，从开发分支开始，以在它们之间打开拉取请求之前保持各分支结构一致。

## 理解文件结构

解压后的文件夹包含以下文件。文件内容在所有类型的任务中都相同。

```
qtcp_project.yaml
qtcp_tasks/
  <task-name>/
    task.yaml
    sourceSelection.yaml
    schedule.yaml          (only if a schedule is configured)
    model.yaml             (only if relationships are defined)
    transformationRules.yaml  (only if task-level rules are defined)
    datasets/
      <dataset-name>.yaml
  newTaskDefaults.yaml     (only if custom task defaults are defined)
```

### qtcp\_project.yaml

qtcp\_project.yaml 包含项目级定义，以及名称、平台和默认架构处理等属性。

### task.yaml

task.yaml 包含任务级别定义，并包含诸如任务名称、类型、连接以及满负载和变更捕获行为之类的属性。

### 源选择.yaml

sourceSelection.yaml 定义了为任务选择的源表。每个条目指定架构和表选择模式。

源选择在登陆任务与其他任务类型之间有所不同。

### 数据集文件

每个数据集都有一个以数据集命名的 YAML 文件，直接位于 datasets/ 文件夹中。该文件结合了数据集定义和显式转换规则。

信息注释数据集文件是所有任务都必需的，除了登陆任务，并且必须包含数据集 ID，如果您想从其他任务引用该数据集。

### schedule.yaml

schedule.yaml 定义了任务何时运行。文件包含一个`scheduling`数组，其中包含日程配置。此文件仅在项目定义了计划时才包含。

### model.yaml

model.yaml 定义了任务的数据模型关系。文件包含一个 `relationships` 数组。

### 转换规则.yaml

transformationRules.yaml 包含所有任务级别的转换规则，以数组形式存在。

## 编辑配置文件

在您的IDE中打开提取的文件夹，并根据需要编辑YAML文件。常见编辑包括：

* 更改连接名称以指向不同的环境。

* 在 sourceSelection.yaml 中添加或移除源表。

* 更新任务设置，例如加载类型或架构处理。

* 向数据集文件添加转换规则。

* 给任务添加计划。

警告注释请完全按照目标空间中定义的连接名称进行引用。连接名称不匹配将导致导入错误。

## YAML 文件中的对象 ID

对于引用的对象 — 例如，在另一个任务的源定义中引用的任务 ID — 您必须定义一个唯一的 ID 并在所有文件中一致地使用它。

## 相关主题

* [验证管道配置](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/DeclarativePipelines/Validating-pipeline-configuration.htm)

* [部署管道配置](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/DeclarativePipelines/Deploying-pipeline-configuration.htm)