
# 使用CDM服务迁移Doris数据至MRS集群
#### 操作场景
本章节适用于使用CDM服务将线下IDC机房或者公有云Doris集群中的数据迁移到华为云MRS服务。CDM是同构/异构数据源之间批量进行数据迁移的服务，能帮助用户实现数据的自由流动。
本章节以公有云Doris数据迁移到MRS集群为例。
#### 方案架构
Doris数据迁移主要包括元数据迁移和数据迁移两部分，迁移方案如[图1]所示。
图1Doris数据迁移   
![](https://support.huaweicloud.com/bestpractice-mrs/zh-cn_image_0000002372386828.png "点击放大")
- 全量元数据使用SQL从源端查询，在目的端执行相同的建表语句完成迁移。 增量元数据通过导出全量建表语句，与上一次导出的建表语句做比对，识别增量元数据后进行迁移。
  

- 业务历史数据和增量数据使用Stream Load方式进行迁移，增量数据非分区表清表重迁，分区表迁移新增分区数据。
  - 历史数据迁移：历史数据通过CDM全量迁移至目标端。
  
  - 增量数据迁移**：**使用CDM迁移增量数据，非分区表清表重迁，分区表迁移新分区。
   
 
#### 迁移调研
迁移Doris数据前需要对源端Doris组件进行调研，以便评估迁移过程中可能会产生的风险、对系统的影响等。调研主要包含Doris组件版本、部署模式、数据存储、性能优化等，具体请参考[表1](https://support.huaweicloud.com/bestpractice-mrs/mrs_05_0030.html#mrs_05_0030__table2320936112)。
表1迁移调研 
| **调研项目**  | **调研**内容                                                                                                                                                                                                                                                                            | **示例**                                                               |
|:---|:---|:---|
| 版本兼容性     | Doris集群版本。                                                                                                                                                                                                                                                                          | Doris集群版本为1.2.0。                                                     |
| 规格选型      | Doris集群实例规格。                                                                                                                                                                                                                                                                        | Doris集群实例规格为8Core 8GB\*3。                                            |
| 迁移数据量     | Doris处理的总数据量。                                                                                                                                                                                                                                                                       | 单节点100TB。                                                            |
| 库表清单      | 统计需要迁移的Doris表个数，及分区表个数，表的最大数据规模的分布情况（即*xxx* 个表是GB以内，*xxx* 个表是TB以内，最大表是*xxx*TB），及最大分区数量（单表的分区数量不能太大，需在数万以内）。                                                                                                                                                                         | 总表数量为3DB Doris表，每DB包含3000张表，10%的表有分区，最大表为10TB，普通表约20GB，表最大分区数量为1000。 |
| 目标端集群     | - 目标端MRS集群是否启用了Kerberos认证。  - 集群中Doris用户个数。  - Doris的权限模型。   | 目标端MRS集群启用了Kerberos认证，有10个不同权限的Doris用户，用户交叉授权。                       |
| UDF作业     | 是否存在自定义UDF，如果存在需统计自定义UDF个数及类型。                                                                                                                                                                                                                                                      | 存在20个用户自定义UDF。                                                       |
| 磁盘大小      | 用户需要存储数据的总容量，会乘以副本数作为磁盘总容量的规划，                                                                                                                                                                                                                                                      | 总容量为300TB。                                                           |
| 已使用磁盘大小   | 统计目前已经使用的存储容量。                                                                                                                                                                                                                                                                      | 已使用160TB容量。                                                          |
| 数据是否多副本存储 | 统计副本数，系统默认是3，如果用户有特殊需求，可以变更副本数。                                                                                                                                                                                                                                                     | 3副本                                                                  |
| 数据来源      | 统计写入Doris表中的数据来源。                                                                                                                                                                                                                                                                   | Flink、Kafka、Load                                                     |
   
#### 网络方案
迁移方案支持各种网络选型：公网、VPN、专线等。根据实际情况选择网络方案，两端网络互通即可迁移。
表2网络方案 
| **迁移网络类型** | **优点**                                                                                                                                                                                                                                                                                                                                                                  | **缺点**                                                                                                                                                                                                                                                                            |
|:---|:---|:---|
| 专线         | - 性能稳定：时延低至毫秒级。  - 带宽选择范围可达几十Gbit/s。  - 数据传输安全性高。                                                                                          | - 成本高：一般是包年包月。  - 源端和目的端私网IP地址不能重叠。  - 开通时间长：一般需提前1个月申请。   |
| VPN        | - 组网灵活，随时搭建。  - 稳定性较好，安全性较好。  - 成本适中：公网费用+VPN费用。                                                                                             | - 时延较高。  - 源端和目的端私网IP地址不能重叠。                                                                                            |
| 公网IP       | - 支持源端和目的端私网IP一致的情况下实施迁移。  - 带宽任意选择（Mbit/s\~Gbit/s）。  - 即买即用，快速绑定。  - 成本低。   | - 稳定性差：带宽可能无法全部利用，迁移速率相对较慢。  - 公网传输数据有泄漏风险。                                                                               |
   
在配置MRS Doris数据源时，需要确保[表3]中的端口在安全组或自有网络中已经放通，以供数据集成服务访问MRS使用，更多常用端口介绍请参见[MRS集群服务常用端口列表](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0504.html)。
 表3Doris组件需要放通的端口 
| **服务**名称 | **端口类型**                                         | **端口号**    | **说明**                                                                                            |
|:---|:---|:---|:---|
| Doris    | JDBC                                             | 9030/29982 | 用于数据集成服务通过JDBC连接到Doris数据库进行数据读取和写入操作。                                                             |
| Doris    | Stream Load  | 8030/29980 | 如果使用Stream Load方式写入数据，需要确保Doris服务的Stream Load端口已放通，以便数据集成服务能够通过此端口将数据高效地写入Doris。                  |
| Doris    | Stream Load  | 8050/29991 | 如果使用Stream Load方式写入数据且已开启HTTPS加密，需要确保Doris服务的Stream Load HTTPS端口已放通，以便数据集成服务能够通过此端口将数据安全地写入Doris。 |
   
#### 约束与限制
- 在迁移过程中，如果源集群在实时写入数据，会导致作业运行时间不一致，最终导致迁移数据不一致。使用校验工具识别不一致表，通过业务时间确定数据是否一致。
- 迁移操作可能导致源端集群性能下降，影响源端业务的响应时间。在源端集群上合理配置资源，包括计算、存储和网络，确保能承受迁移负载。
- CDM每次迁移数据量不能太大，建议每次迁移50GB，超过需分批次迁移。
- 无法迁移bitmap类型表，详细介绍请参见[CDM迁移约束与限制](https://support.huaweicloud.com/productdesc-cdm/cdm_01_0008.html)。
 
#### 前提条件
- 已准备迁移目的端MRS Doris集群，例如，集群版本为"MRS 3.3.1-LTS.1"，组件选择"Doris集群"，未开启Kerberos认证。
- 已[创建CDM集群](https://support.huaweicloud.com/usermanual-cdm/cdm_01_0018.html)，该CDM集群的安全组、虚拟私有云、子网需要和迁移目的端MRS Doris集群保持一致，保证CDM集群和MRS集群之间网络互通。
 
#### 迁移Doris全量元数据
在源端执行**show create**查询建表语句，在目标端执行相同的建表语句完成Doris元数据迁移。
1. 使用MySQL客户端连接源端Doris集群，执行以下命令查看源端数据库： 
   ```
   show databases;
   ```
   记录需要迁移的数据库名称，系统表无需迁移，例如需要迁移的数据库名称为"test_w"。
   图2查看数据库   
   ![](https://support.huaweicloud.com/bestpractice-mrs/zh-cn_image_0000002384003861.png)
   
   
2. 在源端Doris集群查看创建数据库和表的命令。 
   1. 执行以下命令查看并记录创建数据库的命令：
      ```
      show create database test_w;
      ```
      图3查看创建数据库的命令   
      ![](https://support.huaweicloud.com/bestpractice-mrs/zh-cn_image_0000002384764809.png "点击放大") 
   
   2. 执行以下命令切换数据库：
      ```
      use test_w;
      ```
      
   
   3. 执行以下命令查看数据库中的表：
      ```
      show tables;
      ```
      图4查看表   
      ![](https://support.huaweicloud.com/bestpractice-mrs/zh-cn_image_0000002350988226.png) 
   
   4. 依次执行以下命令查看并记录需要迁移的表的创建命令，例如，查看创建"orders1"表的命令：
      ```
      show create table test_w.orders1;
      ```
      在目的端执行创建表命令时删除回显结果中的"*表名* \|"内容，直接执行**create** ...**;**命令即可。
      图5查看创建表的命令   
      ![](https://support.huaweicloud.com/bestpractice-mrs/zh-cn_image_0000002350831798.png "点击放大") 
   
   
   
   
3. 在目的端创建需要迁移的数据库和表，完成元数据迁移。 
   1. 使用MySQL客户端连接目的端Doris集群。
   
   2. 执行[2.a]查看到的创建数据库的命令，在目标端Doris中创建数据库。
   
   3. 切换至新创建的数据库，例如"test_w"：
      ```
      use test_w;
      ```
      
   
   4. 执行[2.d]查看到的创建表的命令，在目标端Doris中创建表。
   
   
   
   
 
 #### 迁移全量数据
1. 登录CDM管理控制台。
2. 在"集群管理"页面单击待操作集群对应"操作"列的"作业管理"。
3. 在"连接管理"页签，单击"新建连接"，分别创建源端连接和目的端连接。
   
   1. 连接器类型选择"数据仓库"中的"DORIS"，单击"下一步"。
   
   2. 在详细配置页面，配置以下参数，更多参数详细介绍请参见[Doris连接参数说明](https://support.huaweicloud.com/usermanual-cdm/cdm_01_1215.html)。
      表4配置Doris连接 
      | **参数**        | **说明**                                                                                                                                                                                                                                           | 示例                                                                                                                                                                                           |
      |:---|:---|:---|
      | 名称            | 连接的名称，根据连接的数据源类型，用户可自定义便于记忆、区分的连接名。                                                                                                                                                                                                              | - doris_source  - doris_target   |
      | 数据库服务器        | 一个或多个通过分号分隔的服务器列表（服务器域名或IP地址）。                                                                                                                                                                                                                   | 192.168.0.1;192.168.0.2                                                                                                                                                                      |
      | 端口            | 配置为要连接的数据库的端口。                                                                                                                                                                                                                                   | 9030                                                                                                                                                                                         |
      | 数据库名称         | 配置为要连接的数据库名称。                                                                                                                                                                                                                                    | dbname                                                                                                                                                                                       |
      | 用户名           | 待连接数据库的用户。该数据库用户需要有数据表的读写权限，以及对元数据的读取权限。                                                                                                                                                                                                         | cdm                                                                                                                                                                                          |
      | 密码            | 用户名密码。                                                                                                                                                                                                                                           | -                                                                                                                                                                                            |
      | SSL加密         | 连接Doris是否进行SSL加密。                                                                                                                                                                                                                                | 是                                                                                                                                                                                            |
      | stream load端口 | 配置stream load端口。                                                                                                                                                                                                                                 | 8030                                                                                                                                                                                         |
      | 检查 streamLoad | 检查streamLoad连接是否正常。                                                                                                                                                                                                                              | 是                                                                                                                                                                                            |
      | 引用符号          | 可选参数，连接引用表名或列名时的分隔符号。                                                                                                                                                                                                                            | \`                                                                                                                                                                                           |
      | 驱动版本          | 上传所需的驱动版本。                                                                                                                                                                                                                                       | -                                                                                                                                                                                            |
      | 单次请求行数        | 可选参数，单击"显示高级属性"后显示。 指定每次请求获取的行数，根据数据源端和作业数据规模的大小配置该参数。如果配置过大或过小，可能影响作业的时长。                                                                                                                                           | 1000                                                                                                                                                                                         |
      | 单次提交行数        | 可选参数，单击"显示高级属性"后显示。 指定每次批量提交的行数，根据数据目的端和作业数据规模的大小配置该参数。如果配置过大或过小，可能影响作业的时长。                                                                                                                                          | -                                                                                                                                                                                            |
      | 连接属性          | 可选参数，单击"添加"可增加多个指定数据源的JDBC连接器的属性，参考对应数据库的JDBC连接器说明文档进行配置。 常见配置举例如下： query_timeout=259200与socketTimeout=300000：迁移数据量较大、或通过查询语句检索全表时，会由于连接超时导致迁移失败。此时可自定义连接超时时间与socket超时时间（单位ms），避免超时导致失败。 | query_timeout=259200                                                                                                                                                                         |
      | 连接私密属性        | 自定义私密连接属性。                                                                                                                                                                                                                                       | -                                                                                                                                                                                            |
         
      
   
   3. 单击"测试"，测试通过后单击"保存"。
   
   
   
   
4. 创建并运行作业。 
   1. 选择"表/文件迁移"页签，单击"新建作业"进入作业配置页面，配置相关参数。
      - 作业名称：运行作业的名称，根据连接的数据源类型，用户可自定义便于记忆、区分的作业名，例如"doris-test_w.sales-data"。
      
      - 源端作业配置（更多参数介绍请参见[配置Doris源端参数](https://support.huaweicloud.com/usermanual-cdm/cdm_01_0136.html)）
        表5Doris源端作业配置 
        | 参数              | 说明                                                                          | 示例                                    |
        |:---|:---|:---|
        | 源连接名称           | 选择[步骤 3]创建的源端Doris连接。 | doris-source                          |
        | 使用SQL语句         | 是否使用SQL语句，来进行源端数据抽取。                                                        | 否                                     |
        | 模式或表空间          | 需要迁移的数据库名称。 单击输入框后面的按钮可选择模式或表空间。                | test_w                                |
        | 表名              | 要迁移数据的表名。                                                                   | sales                                 |
        | Where子句         | 指定抽取的WHERE子句，不指定则抽取整表。如果要迁移的表中没有WHERE子句的字段，迁移失败。                            | age \> 18 and age \<= 60              |
        | date类型值是否保留一位精度 | Date类型的数据保留精度                                                               | 否                                     |
        | 抽取分区字段          | 抽取数据时使用该字段进行数据切分， 从而实现并行化抽取，不支持选择字符串类型的字段。                                  | id  |
        | 分区字段含有空值        | 多并发抽取时，若确定分区字段不含Null，将该值设为"否"可提升性能，若不确定，请设为"是"，否则可能会丢失数据。                   | 是                                     |
           
        
      
      - 目的端作业配置（更多参数介绍请参见[配置Doris目的端参数](https://support.huaweicloud.com/usermanual-cdm/cdm_01_1201.html)）
        表6Doris目的端作业配置 
        | 参数        | 说明                                                                                                                                                                                                                                                                                                                                                                       | 示例                       |
        |:---|:---|:---|
        | 目的连接名称    | 选择[步骤 3]创建的目的端Doris连接。                                                                                                                                                                                                                                                                                             | doris_target             |
        | 模式或表空间    | 目的端待写入数据的数据库名称，支持自动创建Schema。 单击输入框后面的按钮可选择模式或表空间。                                                                                                                                                                                                                                                                                          | test_w                   |
        | 表名        | 目的端待写入数据的表名称。 单击输入框后面的按钮可进入表的选择界面。                                                                                                                                                                                                                                                                                                       | sales                    |
        | 导入开始前     | 导入数据前，对目的端表做的预处理。 - 不清除：写入数据前不清除目标表中数据，数据追加写入。  - 清除全部数据：写入数据前会清除目标表中数据。  - 清除部分数据：需要配置"where条件"参数，CDM根据条件选择性删除目标表的数据。   | 不清除                      |
        | where条件   | "导入开始前"参数选择为"清除部分数据"时配置，配置后导入前根据where条件删除目的表中的数据。                                                                                                                                                                                                                                                                                                                        | age \> 18 and age \<= 60 |
        | 导入前准备语句   | 执行任务之前率先执行的SQL语句。目前仅允许执行一条SQL语句。                                                                                                                                                                                                                                                                                                                                         | create table *xxx*       |
        | 导入后完成语句   | 执行任务之后执行的SQL语句，目前仅允许执行一条SQL语句。                                                                                                                                                                                                                                                                                                                                           | create table *xxx*       |
        | loader线程数 | 每个loader内部启动的线程数，可以提升写入并发数。 并发场景下有如下限制：约束冲突处理策略不支持"replace into"或"on duplicate key update"。                                                                                                                                                                                                                                                  | 4                        |
           
        
       
   
   2. 单击"下一步"进入字段映射配置页面，查看字段映射关系。
   
   3. 单击"下一步"进入任务配置页面，配置以下参数单击"保存并运行"运行作业。
      - 作业任务失败重试：建议仅对文件类作业和启用了阶段表的数据库作业配置自动重试，避免自动重试重复写入数据导致数据不一致。例如，设置为"不重试"。
      
      - 作业分组：选择作业所对应的组，例如，设置为"DEFAULT"。
      
      - 是否定时执行：配置作业是否要定时运行，例如，设置为"否"。
      
      
      图6Doris任务配置   
      ![](https://support.huaweicloud.com/bestpractice-mrs/zh-cn_image_0000002386944505.png "点击放大") 
   
   4. 在作业列表中观察新建作业的运行情况，状态为"Succeeded"表示作业运行成功。
      图7Doris作业运行情况   
      ![](https://support.huaweicloud.com/bestpractice-mrs/zh-cn_image_0000002353582600.png "点击放大") 
   
   
   
   
 
#### 识别和迁移增量元数据
1. 在目的端MySQL所在节点上执行**mysqldump** 命令，导出源端和目的端的库表结构，并将结果保存在两个不同的文件中：
   
   ```
   mysqldump -hhost  -Pport  -u用户名 -p密码 --no-tablespaces --all-databases --no-data > 文件路径
   ```
   例如保存源端库表结构的文件路径为"/opt/doris/doris-source-meta"，保存目的端库表结构的文件路径为"/opt/doris/doris-target-meta"。
   
   
2. 执行**vimdiff** 命令，比较[步骤 1]导出的两个文件的差异：
   
   ```
   vimdiff /opt/doris/doris-source-meta /opt/doris/doris-target-meta
   ```
   ![](https://support.huaweicloud.com/bestpractice-mrs/public_sys-resources/caution_3.0-zh-cn.png)
   - 不同版本的系统表不同，请忽略系统表，系统表无需迁移。
   
   - 如果是**properties** 中的不同，需做判断，仅迁移**新增字段** 和**新增分区**即可。
    
   例如，以下比对结果中：
   - 源端新增了表"part2"：
     图8源端新增了表   
     ![](https://support.huaweicloud.com/bestpractice-mrs/zh-cn_image_0000002353471614.png "点击放大") 
   
   - 源端"mrs_table"有新增字段"type"：
     图9源端表新增了字段   
     ![](https://support.huaweicloud.com/bestpractice-mrs/zh-cn_image_0000002353631454.png "点击放大") 
   
   
   
   
3. 根据[步骤 2]的比对结果，在目的端新增表或修改表结构新增字段，修改表结构命令为：
   
   ```
   ALTER TABLE db.table_name ADD COLUMN column_name TYPE;
   ```
   
   
 
#### 迁移增量数据
使用CDM迁移Doris增量数据时，分区表主要是通过在配置数据迁移作业时，增加where筛选条件来迁移增量；非分区表通过导入开始前，清除全部数据，再全量迁移来实现。
1. 参考[迁移全量数据]的[步骤 1]\~[步骤 3]新增Doris源端连接和目的端连接。
2. 创建并运行作业。 
   1. 选择"作业管理"的"表/文件迁移"页签，单击"新建作业"进入作业配置页面，配置相关参数。
      - 作业名称：运行作业的名称，根据连接的数据源类型，用户可自定义便于记忆、区分的作业名，例如"doris-increase"。
      
      - 源端作业配置（更多参数介绍请参见[配置Doris源端参数](https://support.huaweicloud.com/usermanual-cdm/cdm_01_0136.html)）
        表7Doris源端作业配置 
        | 参数              | 说明                                                                                                            | 示例                                      |
        |:---|:---|:---|
        | 源连接名称           | 选择[步骤 3]创建的源端Doris连接。                                   | doris-source                            |
        | 使用SQL语句         | 是否使用SQL语句，来进行源端数据抽取。                                                                                          | 否                                       |
        | 模式或表空间          | 需要迁移的数据库名称。 单击输入框后面的按钮可选择模式或表空间。                                                  | test_w                                  |
        | 表名              | 要迁移数据的表名。                                                                                                     | sales                                   |
        | Where子句         | 指定抽取的WHERE子句，不指定则抽取整表。如果要迁移的表中没有WHERE子句的字段，迁移失败。 **如果需要迁移分区表的增量数据，则该参数必须设置。** | sale_data="2024-06-13"                  |
        | date类型值是否保留一位精度 | Date类型的数据保留精度                                                                                                 | 否                                       |
        | 抽取分区字段          | 抽取数据时使用该字段进行数据切分， 从而实现并行化抽取，不支持选择字符串类型的字段。                                                                    | id  |
        | 分区字段含有空值        | 多并发抽取时，若确定分区字段不含Null，将该值设为"否"可提升性能，若不确定，请设为"是"，否则可能会丢失数据。                                                     | 是                                       |
           
        
      
      - 目的端作业配置（更多参数介绍请参见[配置Doris目的端参数](https://support.huaweicloud.com/usermanual-cdm/cdm_01_1201.html)）
        表8Doris目的端作业配置 
        | 参数        | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | 示例                       |
        |:---|:---|:---|
        | 目的连接名称    | 选择[步骤 3]创建的目的端Doris连接。                                                                                                                                                                                                                                                                                                                                                                                          | doris_target             |
        | 模式或表空间    | 目的端待写入数据的数据库名称，支持自动创建Schema。 单击输入框后面的按钮可选择模式或表空间。                                                                                                                                                                                                                                                                                                                                                                                       | test_w                   |
        | 表名        | 目的端待写入数据的表名称。 单击输入框后面的按钮可进入表的选择界面。                                                                                                                                                                                                                                                                                                                                                                                                       | sales                    |
        | 导入开始前     | 导入数据前，对目的端表做的预处理。 - 不清除：写入数据前不清除目标表中数据，数据追加写入。  - 清除全部数据：写入数据前会清除目标表中数据。 **如果需要增量迁移非分区表数据，需设置为"清除全部数据"。**   - 清除部分数据：需要配置"where条件"参数，CDM根据条件选择性删除目标表的数据。   | 不清除                      |
        | where条件   | "导入开始前"参数选择为"清除部分数据"时配置，配置后导入前根据where条件删除目的表中的数据。                                                                                                                                                                                                                                                                                                                                                                                                                     | age \> 18 and age \<= 60 |
        | 导入前准备语句   | 执行任务之前率先执行的SQL语句。目前仅允许执行一条SQL语句。                                                                                                                                                                                                                                                                                                                                                                                                                                      | create table *xxx*       |
        | 导入后完成语句   | 执行任务之后执行的SQL语句，目前仅允许执行一条SQL语句。                                                                                                                                                                                                                                                                                                                                                                                                                                        | create table *xxx*       |
        | loader线程数 | 每个loader内部启动的线程数，可以提升写入并发数。 并发场景下有如下限制：约束冲突处理策略不支持"replace into"或"on duplicate key update"。                                                                                                                                                                                                                                                                                                                                              | 4                        |
           
        
       
   
   2. 单击"下一步"进入字段映射配置页面，查看字段映射关系。
   
   3. 单击"下一步"进入任务配置页面，配置以下参数单击"保存并运行"运行作业。
      - 作业任务失败重试：建议仅对文件类作业和启用了阶段表的数据库作业配置自动重试，避免自动重试重复写入数据导致数据不一致。例如，设置为"不重试"。
      
      - 作业分组：选择作业所对应的组，例如，设置为"DEFAULT"。
      
      - 是否定时执行：配置作业是否要定时运行，例如，设置为"否"。
      
      
      图10Doris任务配置   
      ![](https://support.huaweicloud.com/bestpractice-mrs/zh-cn_image_0000002363043368.png "点击放大") 
   
   4. 在作业列表中观察新建作业的运行情况，状态为"Succeeded"表示作业运行成功。
      图11Doris作业运行情况   
      ![](https://support.huaweicloud.com/bestpractice-mrs/zh-cn_image_0000002363203264.png "点击放大") 
   
   
   
   
 
 #### Doris数据迁移校验
以下操作为使用MgC Agent校验迁移后的Doris数据的一致性操作示例，以Linux版本25.3.3为例进行演示，具体以实际版本界面为准，详细操作请参见[大数据校验](https://support.huaweicloud.com/usermanual-mgc/mgc_03_0092.html)。
1. 分别创建两个Linux系统和一个Windows系统的弹性云服务器，对应ECS的安全组、虚拟私有云、子网需要和迁移目的端MRS集群保持一致，具体操作请参见[自定义购买ECS](https://support.huaweicloud.com/usermanual-ecs/ecs_03_7002.html)。
   
   后续操作中，MRS集群客户端和Mgc Agent需分别安装在不同的ECS节点上。
   
   
2. 安装MRS集群客户端。 
   在新创建的其中一个Linux主机上安装MRS集群客户端，具体操作请参见[安装客户端（3.x版本）](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0089.html#section4)。
   
   
3. 创建Mgc项目。
   
   1. 登录[迁移中心管理控制台](https://console.huaweicloud.com/mgc/?#/guide)。
   
   2. 单击左侧导航栏的"其他 \> 配置管理"，进入配置管理页面。
   
   3. 选择"项目管理"页签，单击"创建项目"，右侧弹出创建新项目窗口。
   
   4. 在弹出的窗口中，选择"复杂迁移（大数据迁移）"项目类型，并设置项目名称，例如"doris_datacheck"。
      ![](https://support.huaweicloud.com/bestpractice-mrs/public_sys-resources/notice_3.0-zh-cn.png)
      项目类型选择后将无法更改。
      
   
   5. 单击"创建"。创建项目成功，可在项目管理列表查看。
   
   
   
   
4. 部署MgC Agent。 
   1. 在导航栏左侧最上方切换新创建的项目，选择"总览 \> 迁移中心Agent"下载Agent安装包。 在Linux版区域，单击"下载安装包"或"复制下载命令"，将MgC Agent安装程序下载到Linux主机。
      本示例以在与源端和目的端网络互通的Linux主机中安装MgC Agent为例进行演示，且已准备一台用于登录MgC Agent控制台的Windows主机。部署MgC Agent的详细操作请参见[部署MgC Agent（原Edge）](https://support.huaweicloud.com/usermanual-mgc/mgc_03_0112.html)。
      
   
   2. 执行如下命令，解压MgC Agent安装包：
      ```
      tar zxvf MgC-Agent.tar.gz
      ```
      
   
   3. 执行如下命令，进入MgC Agent安装目录中的scripts目录：
      ```
      cd MgC-Agent/scripts/
      ```
      
   
   4. 执行如下命令，启动MgC Agent安装脚本：
      ```
      ./install.sh
      ```
      
   
   5. 输入Linux本机网卡的弹性公网IP地址作为后续访问MgC Agent页面的地址。
      如果输入的地址不在本机拥有的IP列表中，会提示是否开放本机所拥有的任何公网IP作为访问地址。
      
   
   6. 当出现如下图所示提示时，表示Linux版的MgC Agent已安装完成。其中提示的端口号请以实际情况为准。
      图12安装MgC Agent成功   
      ![](https://support.huaweicloud.com/bestpractice-mrs/zh-cn_image_0000002328951972.png "点击放大")
      执行如下命令，更新环境变量：
      ```
      source /opt/cloud/MgC-Agent/scripts/setenv.sh
      ```
      还需在安装MgC Agent的主机安全组入网规则中，需要添加一条允许通过TCP协议访问27080端口的规则。源地址填写用于登录MgC Agent控制台的Windows主机IP地址。
      
   
   7. 安装完成后，在Windows主机上打开浏览器，输入地址"https://*IP地址:端口号* "，即可访问MgC Agent的登录页面。例如，IP为"192.168.*x* .*x* "，端口号为"27080"，则MgC Agent的访问地址为"https://192.168.x.x:27080"。
      其中，IP为[4.e]输入的IP地址，端口号为[4.f]中MgC Agent安装成功提示的端口号。
      
   
   
   
   
5. 创建连接。 
   1. 登录MgC Agent。
      1. 在登录页面，登录方式选择"华为云密钥登录"。
      
      2. 分别输入华为云账号的AK、SK，在区域下拉列表选择在MgC服务创建项目的区域。
      
      3. 单击"登录"按钮，进入MgC Agent的总览页面。
       
   
   2. （仅首次登录需要配置）在总览界面，单击页面右上方的"立即连接"按钮，右侧弹出连接迁移中心页面。
      1. 在连接迁移中心页面配置以下参数：
         - 第一步：配置连接方式 输入华为云账号的AK/SK。
           
         
         - 第二步：关联迁移中心项目 迁移中心项目：单击"查询项目"按钮，查询成功后在下拉列表中，选择[步骤 3](https://support.huaweicloud.com/bestpractice-mrs/mrs_05_0031.html#mrs_05_0031__li397475471519)创建的迁移项目。
           
         
         - 第三步：预设当前迁移中心Agent名称 迁移中心Agent名称：输入自定义迁移Agent名称，例如"Agent"。
           
          
      
      2. 单击"连接"按钮，确认要与迁移中心进行连接，单击"确定"按钮。 当总览页面显示状态为"已连接"，代表与MgC连接成功。
         
       
   
   
   
   
6. 添加Doris源端和目的端凭证。
   
   1. 在左侧导航栏选择"云边协同 \> 凭证列表"，进入凭证列表页面。
   
   2. 单击列表上方的"创建凭证"按钮，配置以下参数创建源端凭证和目的端凭证：
      表9创建Doris凭证 
      | 参数   | 参数配置                                                       |
      |:---|:---|
      | 使用类型 | 选择"大数据"。                                                   |
      | 类型   | 选择"Doris"。                                                 |
      | 凭证名称 | 输入自定义凭证名称，例如，源端凭证名称为"doris_source"，目标端凭证名称为"doris_target"。 |
      | 认证方式 | 选择"用户名/密码"。                                                |
      | 用户名  | 输入连接源端或目的端Doris的用户名。                                       |
      | 密码   | 输入用户密码。                                                    |
         
      凭证创建后，等待凭证列表中相应凭证所在行的"同步状态"变为"已同步"。
      
   
   
   
   
7. 选择并启用MgC Agent（仅首次使用时需要配置）。 
   1. 登录[迁移中心管理控制台](https://console.huaweicloud.com/mgc/?#/guide)。
   
   2. 切换页面左上方的项目为[步骤 3]创建的项目名称。
   
   3. 在左侧导航栏选择"实施 \> 大数据校验"，进入大数据校验页面。
   
   4. 单击"选择并启用迁移中心Agent"按钮，弹出选择迁移中心Agent窗口。
   
   5. 在下拉列表中，选择与迁移中心连接成功的MgC Agent，单击"启用"按钮，启用该工具进行后续操作。
      图13**启用MgC Agent**   
      ![](https://support.huaweicloud.com/bestpractice-mrs/zh-cn_image_0000002398299317.png "点击放大") 
   
   
   
   
8. 创建Doris源端和目的端连接。
   
   1. 在大数据校验页面的"功能入口"区域单击"大数据迁移准备"进入大数据迁移准备页面。
   
   2. 在"连接管理"页签，单击"创建连接"进入新增连接页面，"大数据组件"选择"Doris"，单击"下一步"。
   
   3. 在详细配置页面配置以下参数，分别创建源端和目的端连接：
      表10Doris连接配置 
      | 参数        | 参数配置                                                                    |
      |:---|:---|
      | 所属源       | 选择"源端"或"目的端"。                                                           |
      | 连接名称      | 默认创建名称为"Doris-*4位随机数（字母和数字）*"，也可以自定义名称，例如"Doris-source"或"Doris-target"。 |
      | 迁移中心Agent | 选择MgC Agent中已启用的Agent名称。                                                |
      | Doris凭证   | 选择[步骤 6]中在MgC Agent添加的源端或目的端Doris凭证。   |
      | 数据库地址     | 连接源端或目的端Doris FE节点的服务器IP地址。                                             |
      | 数据库端口     | 连接源端或目的端Doris FE节点的端口号，默认为9030。                                         |
      | 数据库名      | 填写源端或目的端Doris数据库名称。                                                     |
         
      
   
   4. 单击"测试连接"，测试连接通过后，单击"确认"创建源端和目的端Doris连接。
   
   
   
   
9. 创建并运行元数据同步任务。 
   1. 在大数据迁移准备页面，单击"元数据管理"，在"任务管理"页签单击"创建元数据同步任务"，右侧弹出"创建任务-元数据同步"页面，配置以下参数，并单击"确认"：
      - 任务名称：数据自定义任务名称。
      
      - 元数据连接：选择[步骤 8]创建的Doris源端连接。
      
      - 数据库（可选）：数据待校验的数据库名称，例如"test_w"。
       
   
   2. 在任务列表中单击新创建的任务所在行的"运行任务"运行元数据同步任务。
   
   3. 任务运行完成后，单击"任务实例管理"页签，可查看到任务运行状态。
   
   4. 单击"库表清单"页签，查看同步的表清单。
   
   
   
   
10. 创建并加入表组。 
    1. 在左侧导航栏选择"实施 \> 大数据校验"，在"功能入口"区域单击"表管理"进入表管理页面。
    
    2. 在"表组"页面，单击"新增表组"，弹出新增表组窗口，配置以下参数并单击"确认"：
       - 表组名：输入自定义表组名称。
       
       - 元数据连接：选择[步骤 8]创建的Doris源端连接。
       
       - 校验标准：根据实际需求选择校验标准。
        
    
    3. 选择"库表清单"页签，将待校验的表添加到[10.b]已创建的表组中。
       在库表清单列表中单击待校验的表所在行的"加入组"，弹出加入组页面，表组名选择[10.b]创建的表组，单击"确认"。
       
    
    4. 加入成功后，可在库表清单列表中查看对应表的"表组名"，即为加入的表组名。
    
    
    
    
11. 创建并运行校验任务。 
    1. 在左侧导航栏选择"实施 \> 大数据校验"，在"功能入口"区域单击"任务管理"进入任务管理页面。
    
    2. 单击页面右上方的"新增任务"，右侧弹出新增任务窗口，配置以下参数并单击"下一步"：
       - 大数据组件：选择"Doris"。
         - 统计方式：根据实际情况选择，支持"全量校验"、"日级增量校验"和"小时级增量校验"，例如选择"全量校验"。
          
        
    
    3. 配置以下参数并单击"保存"创建源端任务。
       表11新增任务配置 
       | 参数       | 参数配置                                                 |
       |:---|:---|
       | 任务名      | 自定义任务名称。                                             |
       | 表组       | 选择[10.b]已创建的表组名称。    |
       | Doris连接  | 选择[步骤 8]已创建的Doris源端连接。 |
       | OBS桶配置检查 | 根据实际需求勾选"我确认仅需在迁移中心Agent侧查看日志和内容校验结果，无需上传至OBS桶"。     |
          
       
    
    4. 参考[11.b]\~[11.c]创建目标端任务，其中"Doris连接"需选择[步骤 8]已创建的目的端Doris连接。
    
    5. 在任务管理列表中，单击源端任务和目的端任务所在行的"执行任务"，在弹窗中单击"确定"，等待任务执行结束。
       图14执行校验任务   
       ![](https://support.huaweicloud.com/bestpractice-mrs/zh-cn_image_0000002401753873.png "点击放大") 
    
    
    
    
12. 查看校验任务运行情况。 
    1. 单击"实例列表"页签，查看校验任务运行情况。
       图15查看校验任务运行结果   
       ![](https://support.huaweicloud.com/bestpractice-mrs/zh-cn_image_0000002368317012.png "点击放大") 
    
    2. 在实例列表中，选择校验任务所在行的"更多 \> 查看校验结果"进入校验结果页面，查看校验结果。
       图16查看校验结果   
       ![](https://support.huaweicloud.com/bestpractice-mrs/zh-cn_image_0000002401759317.png "点击放大") 
    
    
    
    
 
