---
url: /flinkcdc/pipeline-yaml.md
description: 本文重点介绍Pipeline的YAML文件的详情
---

# Pipeline的YAML文件编写

本文是本系列教程的第四部分：Pipeline的YAML文件编写。

## 前言

在第三部分——Flink CDC环境的部署的结尾已经提到了需要把代表任务的YAML文件作为参数提交到Flink环境中，本文我们则重点介绍Pipeline的YAML文件的详情。

## 编写一个YAML文件

以下为Mysql整库同步到Doris的YAML文件，主要包含三个部分：

* source

用于指定数据从哪里来

* sink

用于指定数据到哪里去

* pipeline

用于任务的名称和并行度，在Flink任务管理页面可以看到对应的任务名称

```yaml
source:
  type: mysql # 定义数据源的数据库类型
  hostname: localhost # 数据库连接地址
  port: 3306 # 数据库端口号
  username: root # 数据库账户名
  password: 123456 # 数据库账户密码
  tables: app_db.\.* # 指定需要同步的数据库以及表，此处采用正则表达式的方式实现整库同步配置,多个规则可以用逗号分隔，如：adb.\.*, bdb.user_table_[0-9]+, [app|web].order_\.*
  server-id: 5400-5404 # 服务id，详细用法可以参考官方文档

sink:
  type: doris # 定义目标数据源的类型
  fenodes: 127.0.0.1:8030 # Doris集群FE的Http地址
  username: root # Doris集群的用户名
  password: "" # Doris集群的密码
  table.create.properties.light_schema_change: true # Doris表属性，是否使用light_schema_change优化
  table.create.properties.replication_num: 1 # Doris表属性，副本数

pipeline:
  name: Sync MySQL Database to Doris # 数据管道的名称
  parallelism: 1 # 数据管道的并发数
```

有了Pipeline文件，我们就可以提交任务了。

## 进阶

想要更加深刻的理解Flink CDC的原理，除了上面提到的Source、Sink，还需要进一步理解什么是Event，什么是DataChangeEvent，什么是SchemaChangeEvent以及Flow of Events。

下图呈现了一个数据流：

![](/img/b9124e7d-fef6-4c01-bea8-3d9ad59de0bb.png)

想要了解更多，可以关注：遇码，回复**flinkcdc**，获取官方文档。
