DeltaLake(有元数据)迁移至MRS DeltaLake数据校验
本文主要介绍将自建DeltaLake环境上的数据迁移至华为云MRS DeltaLake之后,使用迁移中心 MgC进行数据一致性校验的步骤和方法。

DeltaLake存在元数据,可通过数据湖元数据同步方式进行数据采集。
准备工作
需要先在源端内网环境中安装用于配合数据校验的工具MgC Agent(原Edge)并注册用户,方法请参见安装Linux版本的MgC Agent。
操作步骤
- 登录迁移中心管理控制台。
- 单击左侧导航栏的“配置管理”,进入配置管理页面。
- 选择“项目管理”页签,单击“创建项目”,右侧弹出创建新项目窗口。
图1 创建项目
- 项目类型选择“复杂迁移(大数据迁移)”,输入自定义项目名称,单击“创建”。
图2 创建大数据迁移项目
- 创建项目完成后,参考连接迁移中心,将MgC Agent与云端MgC控制台建立连接。
- 连接成功后,需要在MgC Agent上分别添加源端“Delta Lake执行机”凭证和目的端“MRS Delta Lake执行机”凭证,类型选择“大数据-执行机”,认证方式选择“用户名/密码”。凭证的添加方法请参考添加资源凭证。
- 在MgC控制台左侧导航栏选择“实施 > 大数据校验”,进入大数据校验页面。在左侧导航栏的项目下拉列表中选择步骤4.创建的项目。
- 首次使用大数据校验功能时,需要先启用MgC Agent。单击“选择并启用迁移中心Agent”按钮,在弹窗的下拉列表中,选择与迁移中心连接成功的MgC Agent。
在进行大数据校验时,请确保MgC Agent一直处于在线并启用状态。
- 在功能入口区域,单击“迁移准备”,进入迁移准备页面。
- 选择“连接管理”,单击“创建连接”,右侧弹出新增连接窗口。
图3 创建连接
- 连接类型选择“Delta Lake(有元数据)”,单击“下一步”。
- 根据表1,配置连接参数后,单击“测试连接”按钮,测试通过代表连接成功。
表1 Delta Lake(有元数据)连接参数配置说明 参数
配置说明
所属源
选择源端。
连接名称
默认创建名称为“Delta-Lake-有元数据-4位随机数(字母和数字)”,也可以自定义名称。
迁移中心Agent
选择步骤5.与MgC建立连接的MgC Agent。
执行机凭证
选择步骤6.在MgC Agent侧添加的源端Delta Lake执行机凭证。
执行机IP
填写连接执行机的IP地址。
执行机连接端口
填写连接执行机的端口,默认为22端口。
Spark客户端目录
填写Spark客户端的bin目录的绝对路径
环境变量地址
请添加环境变量文件的绝对路径,示例:/opt/bigdata/client/bigdata_env, 如果该参数不为空,则环境变量文件在命令执行前将被自动“source”
SQL文件地址
填写用于存放执行作业时生成的SQL文件的文件夹地址。您需要拥有该文件夹的读写权限。
须知:迁移完成后,您需要手动清理该路径下生成的文件夹,以释放存储空间。
- 测试连接通过后,单击“确认”按钮,创建云服务连接完成。
- 选择元数据管理,单击创建数据湖元数据同步任务按钮,右侧弹出创建任务-数据湖元数据同步窗口。
图4 创建数据湖元数据同步任务
- 根据表2,配置数据湖元数据同步任务参数后,单击“确认”按钮,创建数据湖元数据同步任务。
表2 元数据同步任务参数配置说明 参数
配置说明
任务名称
默认创建名称为“数据湖元数据同步任务-4位随机数(字母和数字)”,也可以自定义名称。
元数据连接
选择步骤12.创建的元数据连接。
数据库
填写需要进行元数据同步的数据库名称。不填则代表同步全部数据库。
并发线程数
设置采集线程并发数。默认为3,1≤取值范围≤10。增加线程并发数,可以提高同步效率,但会占用更多源端连接和MgC Agent所安装主机的计算资源。
自定义参数
可以通过自定义参数设置同步的特定表或分区、过滤条件等。
- 如果需要同步的是阿里云 EMR环境中的元数据,请添加如下参数:
- 参数名:conf
- 参数值:spark.sql.catalogImplementation=hive
- 如果源端是阿里云 EMR Delta 2.2版本并且是通过Delta 2.3版本依赖访问时,请添加如下参数:
- 参数名:master
- 参数值:local
- 如果源端是阿里云 EMR Delta 2.1.0版本并且配置了Spark 2.4.8来处理Delta Lake数据,请添加如下参数:
- 参数名:mgc.delta.spark.version
- 参数值:2
- 如果源端是阿里云 EMR并且配置了Spark 3来处理Delta Lake数据,请添加如下参数:
- 参数名:jars
- 参数值:'/opt/apps/DELTALAKE/deltalake-current/spark3-delta/delta-core_2.12-*.jar,/opt/apps/DELTALAKE/deltalake-current/spark3-delta/delta-storage-*.jar'
注意:
参数值需要根据实际环境目录和Delta Lake 的版本进行替换。
- 如果需要同步的是阿里云 EMR环境中的元数据,请添加如下参数:
- 在任务管理页签,可以查看已创建的元数据同步任务列表以及参数配置信息。单击操作列的“更多>修改”,可以修改任务参数配置。
图5 元数据同步任务管理
- 单击操作列的“运行任务”,即可触发一次任务执行。每执行一次任务,会生成一条任务实例。
- 单击操作列的“查看实例”,进入任务实例管理页签。可以查看该任务的运行记录,以及每条任务实例的状态和采集结果。当元数据同步任务的实例状态为“已完成”且采集结果有数值时,在库表清单页签可以查看采集到的元数据列表。
图6 任务实例管理
- 在大数据校验页面的功能入口区域,单击“表管理”,进入表管理页面的表组页签。
- 单击“新增表组”,弹出新增表组窗口。根据新增表组参数说明,配置参数后,单击“确认”按钮,创建表组。
表3 新增表组参数说明 参数
说明
表组名
用户自定义
元数据连接
选择步骤12.创建的元数据连接。
注意:表组中的所有表必须来源于同一个元数据来源。
校验标准
选择可以接受的数据差异最大值(即错误容忍度)。MgC提供了多种类型的对数标准可供选择,关于对数标准的详细说明,可以单击新增表组弹窗中的“查看更多”进行查看。
说明(可选)
您可以输入用于区分表组的说明。
- 在表管理页面,选择库表清单页签,勾选要加入同一表组的数据表,单击列表上方的“表组管理 > 批量加入组”,在弹出的修改表组窗口中,选择要加入的表组,单击“确认”。
如果需要新增数据表,可以通过导入数据表的方式添加,方法请参考导入数据表并加入表组。
- 分别创建源端执行机连接和目的端执行机连接,方法请参考创建执行机连接。执行机凭证分别选择步骤6.在MgC Agent侧添加的源端和目的端执行机凭证。
- 在MgC控制台,分别创建源端和目的端Delta统计任务并执行,方法请参考创建统计任务并执行校验。需要注意任务配置中的表组,选择步骤20.创建的表组。
- 任务类型请选择大数据组件中的“Delta”。
- 统计方式按实际需求选择,各统计方式说明请参见校验方式说明。
- 任务类型请选择大数据组件中的“Delta”。
- 当源端与目的端的统计任务都执行完成后(实例状态为“已完成”),在校验结果页面可以查看并导出任务的执行结果,方法请参考查看并导出校验结果。