
# 新建整库迁移作业
#### 操作场景
CDM支持在同构、异构数据源之间进行整库迁移，迁移原理与[新建表/文件迁移作业](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0046.html#dataartsstudio_01_0046)相同，关系型数据库的每张表、Redis的每个键前缀、Elasticsearch的每个类型、MongoDB的每个集合都会作为一个子任务并发执行。
![](https://support.huaweicloud.com/usermanual-dataartsstudio/public_sys-resources/note_3.0-zh-cn.png)
整库迁移作业每次运行，会根据整库作业的配置重建子任务，不支持修改子任务后再重新运行主作业。
支持整库迁移的数据源请参见[支持的数据源](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0215.html)。
#### 约束限制
- 配置源端和目的端参数时，字段名不可包含\&和%。
- 整库迁移不支持迁移视图。
- 作业过多可能会导致集群过载，需合理规划作业个数，作业配额数与集群规格有关，具体参见[表3 作业配额数与集群规格的关系](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0083.html#dataartsstudio_01_0083__zh-cn_topic_0173586861_table74331926191610)：
  表1作业配额数与集群规格的关系 
  | 核数/内存     | 表/文件迁移 | 整库迁移 |
  |:---|:---|:---|
  | 8核/16GB   | 500    | 50   |
  | 16核/32GB  | 1000   | 100  |
  | 64核/128GB | 4000   | 400  |
     
  
 
#### 前提条件
- 已新建连接，详情请参见[创建CDM与数据源之间的连接](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0024.html#dataartsstudio_01_0024)。

- CDM集群与待迁移数据源可以正常通信。
 
#### 操作步骤
1. 进入CDM主界面，单击左侧导航上的"集群管理"，选择集群后的"作业管理"。
2. 选择"整库迁移 \> 新建作业"，进入作业参数配置界面。 
   图1创建整库迁移作业   
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000001468143433.png "点击放大")
   
   
3. 配置源端作业参数，根据待迁移的数据库类型配置对应参数，如[表2]所示。
   
    表2源端作业参数 
   | 源端数据库类型                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | 源端参数       | 参数说明                                                                                                                                                                                                                                                                           | 取值样例                                                                           |
   |:---|:---|:---|:---|
   | - DWS  - MySQL  - PostgreSQL  - SQL Server  - Oracle  - IBM Db2  - SAP HANA   | 模式或表空间     | "使用SQL语句"选择"否"时，显示该参数，表示待抽取数据的模式或表空间名称。单击输入框后面的按钮可进入模式选择界面，用户也可以直接输入模式或表空间名称。 如果选择界面没有待选择的模式或表空间，请确认对应连接里的账号是否有元数据查询的权限。                                                                                      | schema                                                                         |
   | - DWS  - MySQL  - PostgreSQL  - SQL Server  - Oracle  - IBM Db2  - SAP HANA   | Where子句    | 该参数适用于整库迁移中的所有子表，配置子表抽取范围的Where子句，不配置时抽取整表。如果待迁移的表中没有Where子句的字段，则迁移失败。 该参数支持配置为时间宏变量，实现抽取指定日期的数据，详细说明请参见[关系数据库增量迁移](https://support.huaweicloud.com/bestpractice-dataartsstudio/dataartsstudio_05_0005.html)。 | age \> 18 and age \<= 60                                                       |
   | - DWS  - MySQL  - PostgreSQL  - SQL Server  - Oracle  - IBM Db2  - SAP HANA   | 分区字段是否允许空值 | 选择分区字段是否允许空值。                                                                                                                                                                                                                                                                  | 是                                                                              |
   | Hive                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | 数据库名称      | 待迁移的数据库名称，源连接中配置的用户需要拥有读取该数据库的权限。                                                                                                                                                                                                                                              | hivedb  |
   | HBase CloudTable                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | 起始时间       | 起始时间（包含该值）。格式为'yyyy-MM-dd HH:mm:ss', 支持dateformat时间宏变量函数。 例如："2017-12-31 20:00:00" 或 "${dateformat(yyyy-MM-dd, -1, DAY)} 02:00:00" 或 ${dateformat(yyyy-MM-dd HH:mm:ss, -1, DAY)}                               | "2017-12-31 20:00:00"                                                          |
   | HBase CloudTable                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | 终止时间       | 终止时间（不包含该值）。格式为'yyyy-MM-dd HH:mm:ss', 支持dateformat时间宏变量函数。 例如："2018-01-01 20:00:00" 或 "${dateformat(yyyy-MM-dd, -1, DAY)} 02:00:00" 或 "${dateformat(yyyy-MM-dd HH:mm:ss, -1, DAY)}"                            | "2018-01-01 20:00:00"                                                          |
   | Redis                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | 键过滤字符      | 填写键过滤字符后，将迁移符合条件的键。 例如：a\*, 迁移所有: \*                                                                                                                                                                           | a\*                                                                            |
   | DDS                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | 数据库名称      | 待迁移的数据库名称，源连接中配置的用户需要拥有读取该数据库的权限。                                                                                                                                                                                                                                              | ddsdb                                                                          |
   | DDS                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | 查询筛选       | 创建用于匹配文档的筛选器。 例如：{HTTPStatusCode:{$gt:"400",$lt:"500"},HTTPMethod:"GET"}。                                                                                                                                      | -                                                                              |
      
   
   
4. 配置目的端作业参数，根据待导入数据的云服务配置对应参数，如[表3]所示。
   
    表3目的端作业参数 
   | 目的端数据库类型                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | 目的端参数 | 参数说明                                                                                                                                                                          | 取值样例    |
   |:---|:---|:---|:---|
   | - 云数据库MySQL  - 云数据库PostgreSQL  - 云数据库SQL Server   | -     | 整库迁移到RDS关系数据库时，目的端作业参数请参见[配置MySQL/SQL Server/PostgreSQL目的端参数](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0068.html#dataartsstudio_01_0068)。  | schema  |
   | IBM Db2                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | -     | 整库迁移到IBM Db2关系数据库时，目的端作业参数请参见[配置IBM Db2目的端参数](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_1647.html#dataartsstudio_01_1647)。                  | schema  |
   | DWS                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | -     | 整库迁移到DWS时，目的端作业参数请参见[配置DWS目的端参数](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_1251.html#dataartsstudio_01_1251)。                               | -       |
   | MRS Hive                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | -     | 整库迁移到MRS Hive时，目的端作业参数请参见[配置Hive目的端参数](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0066.html#dataartsstudio_01_0066)。                         | hivedb  |
   | MRS HBase CloudTable                                                                                                                                                                                                                                                                                                                                                                                                                                       | -     | 整库迁移到MRS HBase或CloudTable时，目的端作业参数请参见[配置HBase/CloudTable目的端参数](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0064.html#dataartsstudio_01_0064)。 | 是       |
   | Redis                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | 清除数据库 | 在导入数据前清除数据库数据。                                                                                                                                                                | 是       |
   | DDS                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | 数据库名称 | 待迁移的数据库名称，源连接中配置的用户需要拥有读取该数据库的权限。                                                                                                                                             | mongodb |
   | DDS                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | 迁移行为  | 选择新增或替换。                                                                                                                                                                      | -       |
      
   
   
5. 如果是关系型数据库整库迁移，则作业参数配置完成后，单击"下一步"会进入表的选择界面，选择的目的库表名须与源端库表名保持一致。如源端表名为test，则目的端表名只能选择test。 
   图2字段映射关系   
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000002050509502.png "点击放大")
   
   
6. 单击"下一步"配置任务参数。 
   图3任务参数   
   ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000001191470873.png "点击放大")
   各参数说明如[表4]所示。
    表4任务配置参数 
   | 参数           | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                    | 取值样例           |
   |:---|:---|:---|
   | 同时执行的表个数     | 抽取时并发执行的表的数量。                                                                                                                                                                                                                                                                                                                                                                                                                         | 3              |
   | 抽取并发数        | 当前任务从源端进行读取最大线程数。 说明： 由于数据源限制，实际执行时并发的线程数可能小于等于此处配置的并发数，如CSS，ClickHouse数据源不支持多并发抽取。                                                                                                                                                                                            | 1              |
   | 是否写入脏数据      | 选择是否记录脏数据，默认不记录脏数据。 CDM中脏数据指的是数据格式非法的数据。当源数据中存在脏数据时，建议您打开此配置。否则可能导致迁移作业失败。 说明： 脏数据功能仅用于任务容错处理。 当脏数据量过大时，将影响作业整体运行性能。建议结合业务实际场景，合理配置脏数据阈值范围。 | 是              |
   | 脏数据写入连接      | 当"是否写入脏数据"为"是"才显示该参数。 脏数据要写入的连接，目前只支持写入到OBS连接。                                                                                                                                                                                                                                                                                                | obs_link       |
   | OBS桶         | 当"脏数据写入连接"为OBS类型的连接时，才显示该参数。 写入脏数据的OBS桶的名称。                                                                                                                                                                                                                                                                                                   | dirtydata      |
   | 脏数据目录        | "是否写入脏数据"选择为"是"时，该参数才显示。 OBS上存储脏数据的目录，只有在配置了脏数据目录的情况下才会记录脏数据。 用户可以进入脏数据目录，查看作业执行过程中处理失败的数据或者被清洗过滤掉的数据，针对该数据可以查看源数据中哪些数据不符合转换、清洗规则。                                                                                                                     | /user/dirtydir |
   | 单个分片的最大错误记录数 | 当"是否写入脏数据"为"是"才显示该参数。 单个map的错误记录超过设置的最大错误记录数则任务自动结束，已经导入的数据不支持回退。推荐使用临时表作为导入的目标表，待导入成功后再改名或合并到最终数据表。                                                                                                                                                                                                                                          | 0              |
      
   
   
7. 单击"保存"，或者"保存并运行"。 
   作业任务启动后，每个待迁移的表都会生成一个子任务，单击整库迁移的作业名称，可查看子任务列表。
   
   
![](https://support.huaweicloud.com/usermanual-dataartsstudio/public_sys-resources/note_3.0-zh-cn.png)
Oracle整库迁移作业场景下，如果源端选择视图或无主键表，且目标端为hudi时，不支持自动建表。
