更新时间:2025-09-12 GMT+08:00
分享

增量数据迁移

将上一次迁移后,在源端数据库中发生变化(新增、修改或删除)的数据同步至目的端华为云数据湖探索(DLI)。

使用须知

  • 在进行指定分区数据迁移的场景下,由于MaxCompute在创建表时会自动将表名转换为小写,因此在迁移过程中,请确保Excel文件中的库表名称与MaxCompute中的实际表名一致(全部小写)。如果Excel文件中填写的库表名称为大写,迁移任务会因为无法正确识别表名导致无法迁移。
  • 使用SQL查询MaxCompute中的infomattionSchmea数据时,因infomattionSchmea数据并非实时更新,通常存在约 3 小时的延迟。当源端新增表后,informationschema中可能尚未反映这些新表的信息,从而会出现迁移后数据表不一致的情况。

前提条件

  • 已最少完成一次全量数据迁移
  • 开始迁移前,需要联系技术支持人员,将您添加到允许jar程序访问DLI元数据功能的白名单中。

操作步骤

  1. 登录迁移中心管理控制台。在左侧导航栏的项目下拉列表中选择在完成准备工作时创建的大数据迁移项目
  2. 在左侧导航栏选择“实施>大数据数据迁移”,进入大数据数据迁移页面。
  3. 单击页面右上角的“创建迁移任务”按钮,右侧弹出创建迁移任务窗口。
  4. 源端组件选择“MaxCompute”,目的端组件选择“数据湖探索 DLI”,任务类型选择“增量数据迁移”,单击“下一步”,进入详细配置页面。

  5. 根据表1,配置增量数据迁移任务参数。

    表1 增量数据迁移参数配置说明

    区域

    参数

    配置说明

    基本信息

    任务名称

    默认创建名称为“MaxCompute到DLI增量数据迁移-4位随机数(字母和数字)”,也可以自定义名称。

    迁移中心Agent

    选择在完成准备工作时与迁移中心连接成功的MgC Agent。

    源端配置

    源端连接

    选择创建的源端连接

    MaxCompute参数(可选)

    非必填参数,一般为空。如有需要,可参考MaxCompute参数文档进行配置。

    数据范围

    数据迁移策略

    • 时间过滤:通过数据变化发生的时间,过滤出需要迁移的增量数据。选择该方式还需要配置“增量区间”、“分区筛选方式”、“按库筛选或按表筛选”等参数。
    • 自定义过滤:迁移指定分区内发生变化的数据。选择该方式,请按照以下步骤,在模板文件中添加分区表信息,然后上传至MgC。
      1. 单击“指定分区迁移文件”下的“下载模板”,下载CSV格式的模板。
      2. 下载后用记事本打开该CSV模板文件。
        注意:

        请不要使用Excel对CSV模板文件进行编辑,通过Excel编辑并保存的模板文件无法被MgC识别。

      3. 保留CSV文件中的第一行不变,从第二行开始,每行填写一个表的迁移信息,格式为“{MC项目名},{表名},{分区字段},{分区值}”,其中MC项目名代表MaxCompute项目名称,表名代表具体的表名称。
        须知:

        每行的参数值之间使用英文逗号隔开,不要使用空格或其他分隔符。

        每添加完一个表的信息后,使用回车键换行。

      4. 完成所有表信息的添加后,保存CSV文件的更改。
      5. 单击“指定分区迁移文件”下的“添加文件”,将编辑并保存好的CSV文件上传至MgC。

    增量区间

    选择T-N区间作为增量数据的迁移范围,即任务开始执行时间的前 24 x N 小时内的增量数据。例如:选择T-1,2024/06/06 14:50执行任务,则表示迁移从 2024/06/05 14:50 到 2024/06/06 14:50(现在)的增量数据。

    如果勾选“指定日期”,将只迁移指定日期内的增量数据。

    分区筛选方式

    根据数据的分区属性来选择和检索数据。默认为更新时间

    • 更新时间:筛选出最近或在特定时间段内有更新的数据。
    • 创建时间:筛选出在特定时间窗口内创建的数据。

    按库筛选

    即按数据库进行筛选,在数据库参数框中输入需要增量迁移的数据库名称。单击“添加数据库”,可以新增数据库,最多支持同时添加10个数据库。不输入数据库名称,将默认迁移所有数据库。

    如果数据库中有不需要迁移的表,可以下载CSV格式的“排除表”模板,参考2.~5.在模板中添加不需要迁移的表信息,然后上传至MgC。

    按表筛选

    1. 下载CSV格式的模板。
    2. 下载后用记事本打开该CSV模板文件。
      注意:

      请不要使用Excel对CSV模板文件进行编辑,通过Excel编辑并保存的模板文件无法被MgC识别。

    3. 保留CSV文件中的第一行不变,从第二行开始,每行填写一个表的迁移信息,格式为“{MC项目名},{表名}”,其中MC项目名代表MaxCompute项目名称,表名代表具体的表名称。
      须知:
      • 每行的“MC项目名”和“表名”之间使用英文逗号隔开,不要使用空格或其他分隔符。
      • 每添加完一个表的信息后,使用回车键换行。
    4. 完成所有表信息的添加后,保存CSV文件的更改。
    5. 将编辑并保存好的CSV文件上传至MgC。

    目的端配置

    目的端连接

    选择创建的目的端DLI 通用队列连接

    注意:

    切勿选择DLI SQL队列。

    自定义参数

    根据实际需求进行配置,支持的自定义参数详情请参考conf参数说明自定义参数说明

    • 如果是公网迁移,需要填写以下4个参数:

    • 如果是专线迁移,需要填写以下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。

    更多自定义参数详情请参考conf参数说明自定义参数说明

  6. 配置完成后,选择任务的运行方式。

    • 创建的迁移任务可重复运行,每运行一次,即会生成一条任务实例。
    • 单击任务名称,可以修改任务配置。
    • 立即运行:如果需要立即运行迁移任务,可以勾选“保存后立即运行”,然后单击“保存”按钮,会在任务管理列表中生成一条全量数据迁移任务并自动开始执行迁移。

    • 手动运行:如果需要后续手动启动迁移任务,则只需单击“保存”按钮,在任务管理列表中生成一条全量数量迁移任务。在需要启动迁移时,单击操作列的“运行”,手动启动迁移。

  7. 迁移任务运行后,在任务管理页签,单击操作列的“查看实例”,进入任务进度页签,可以查看该任务产生的运行实例以及迁移进度。

    单击状态列的“重新运行”,可以多次运行迁移实例。

    单击进度统计列的“查看”,进入进度详情页面。可以查看迁移的数据表清单、状态并导出任务结果

  8. (可选)数据迁移完成后,可以使用MgC提供的大数据校验功能,对源端和目的端数据进行一致性校验。详细的操作步骤请参考MaxCompute迁移至DLI数据校验

相关文档