全量数据迁移
将源端数据库中的所有数据迁移到目的端华为云数据湖探索(DLI)。
使用须知
- 当迁移的表数量较多或单个表的列数较多时,迁移过程可能会耗费较长时间。
- 在数据迁移时,如果重复迁移分区数据时提示错误信息:"Do not support update partition SerDeInfo for DLI table",需要您手动删除DLI中的分区数据,然后再进行迁移。
- 使用SQL查询MaxCompute中的infomattionSchmea数据时,因infomattionSchmea数据并非实时更新,通常存在约 3 小时的延迟。当源端新增表后,informationschema中可能尚未反映这些新表的信息,从而会出现迁移后数据表不一致的情况。
操作步骤
- 登录迁移中心管理控制台。在左侧导航栏的项目下拉列表中选择在完成准备工作时创建的大数据迁移项目。
- 在左侧导航栏选择“实施>大数据数据迁移”,进入大数据数据迁移页面。
- 单击页面右上角的“创建迁移任务”按钮,右侧弹出创建迁移任务窗口。
- 源端组件选择“MaxCompute”,目的端组件选择“数据湖探索 DLI”,任务类型选择“全量数据迁移”,单击“下一步”,进入详细配置页面。
- 根据表1,配置全量数据迁移任务参数。
表1 全量数据迁移参数配置说明 区域
参数
配置说明
基本信息
任务名称
默认创建名称为“MaxCompute到DLI全量数据迁移-4位随机数(字母和数字)”,也可以自定义名称。
迁移中心Agent
选择在完成准备工作时与迁移中心连接成功的MgC Agent。
源端配置
源端连接
选择创建的源端连接。
MaxCompute参数(可选)
非必填参数,一般为空。如有需要,可参考MaxCompute参数文档进行配置。
数据范围
预估项目周期(天)(可选)
配置后,系统会在任务执行时检查表的生命周期。若表的生命周期在项目的预期结束时间之前终止,则忽略该表。不配置则默认迁移所有表。
按库筛选
即按数据库进行筛选,在数据库参数框中输入待迁移的数据库名称。单击“添加数据库”,可以新增数据库,最多支持同时添加10个数据库。不输入数据库名称,将默认迁移所有数据库。
如果数据库中有不需要迁移的表,可以下载CSV格式的“排除表”模板,参考2.~5.在模板中添加不需要迁移的表信息,然后上传至MgC。
按表筛选
目的端配置
目的端连接
选择创建的目的端DLI 通用队列连接。
注意:切勿选择DLI SQL队列。
自定义参数
根据实际需求进行配置,支持的自定义参数详情请参考conf参数说明和自定义参数说明。
- 如果是公网迁移,需要填写以下4个参数:
- spark.dli.metaAccess.enable:填写true。
- spark.dli.job.agency.name:填写在完成准备工作时配置的DLI委托权限名称。
- mgc.mc2dli.data.migration.dli.file.path:填写在完成准备工作时存放migration-dli-spark-1.0.0.jar包的OBS路径。例如:obs://mgc-test/data/migration-dli-spark-1.0.0.jar
- mgc.mc2dli.data.migration.dli.spark.jars:填写在完成准备工作时存放fastjson-1.2.54.jar和datasource.jar包的OBS路径,以数组形式传入,路径带双引号,以英文逗号隔开。例如:["obs://mgc-test/data/datasource.jar","obs://mgc-test/data/fastjson-1.2.54.jar"]
- 如果是专线迁移,需要填写以下8个参数:
- spark.dli.metaAccess.enable:填写true。
- spark.dli.job.agency.name:填写在完成准备工作时配置的DLI委托权限名称。
- mgc.mc2dli.data.migration.dli.file.path:填写在完成准备工作时存放migration-dli-spark-1.0.0.jar包的OBS路径。例如:obs://mgc-test/data/migration-dli-spark-1.0.0.jar
- mgc.mc2dli.data.migration.dli.spark.jars:填写在完成准备工作时存放fastjson-1.2.54.jar和datasource.jar包的OBS路径,以数组形式传入,路径带双引号,以英文逗号隔开。例如:["obs://mgc-test/data/datasource.jar","obs://mgc-test/data/fastjson-1.2.54.jar"]
- spark.sql.catalog.mc_catalog.tableWriteProvider:填写tunnel。
- spark.sql.catalog.mc_catalog.tableReadProvider:填写tunnel。
- spark.hadoop.odps.end.point:填写源端MaxCompute服务所在地域的VPC网络Endpoint信息。各地域VPC网络Endpoint信息请参考Endpoint对照表。例如:源端所在地域为“香港”,则填写“http://service.cn-hongkong.maxcompute.aliyun-inc.com/api”
- spark.hadoop.odps.tunnel.end.point:填写源端MaxCompute服务所在地域的VPC网络Tunnel Endpoint信息。各地域VPC网络Tunnel Endpoint信息请参考Endpoint对照表。例如:源端所在地域为“香港”,则填写“http://dt.cn-hongkong.maxcompute.aliyun-inc.com”
迁移选项
大表规则
设置大表条件,当符合大表的条件时,将自动按分区拆分迁移子任务。建议保持默认,也可根据实际需求修改。
子任务合并规则
用于控制子任务的生成逻辑。当一个子任务中分区或表的大小总计达到设定的阈值时,会触发生成一个新的子任务。随后继续累加,直到再次达到阈值,重复上述过程。
例如,阈值设置为1 GB,当子任务中的分区或表的总大小累计达到1 GB时,系统会将这些分区或表分配到当前子任务中。剩余的分区或表将被拆分到一个新的子任务中,继续累加,直到再次达到1 GB,重复上述过程。
并发连接数
设置迁移并发数。默认为3,1≤取值范围≤10。
自定义参数(可选)
- mgc.mc2dli.data.migration.table.filter.sdk.enable:设置MaxCompute获取表的方式是否为SDK/SQL,默认为:false。迁移分区表时,参数值必须设置为:ture。
- mgc.mc2dli.data.migration.mc.table.size.skip:查询表tableSize开关,默认为:true。
- mgc.mc2dli.data.migration.sub.merge.number:子任务中可以包含的表或分区数量之和,默认为:10。
- 如果是公网迁移,需要填写以下4个参数:
- 配置完成后,选择任务的运行方式。
- 创建的迁移任务可重复运行,每运行一次,即会生成一条任务实例。
- 单击任务名称,可以修改任务配置。
- 立即运行:如果需要立即运行迁移任务,可以勾选“保存后立即运行”,然后单击“保存”按钮,会在任务管理列表中生成一条全量数据迁移任务并自动开始执行迁移。
- 手动运行:如果需要后续手动启动迁移任务,则只需单击“保存”按钮,在任务管理列表中生成一条全量数量迁移任务。在需要启动迁移时,单击操作列的“运行”,手动启动迁移。
- 迁移任务运行后,在任务管理页签,单击操作列的“查看实例”,进入任务进度页签,可以查看该任务产生的运行实例以及迁移进度。
单击状态列的“重新运行”,可以多次运行迁移实例。
单击进度统计列的“查看”,进入进度详情页面。可以查看迁移的数据表清单、状态并导出任务结果。
- (可选)数据迁移完成后,可以使用MgC提供的大数据校验功能,对源端和目的端数据进行一致性校验。详细的操作步骤请参考MaxCompute迁移至DLI数据校验。