创建迁移作业

本文为您介绍如何通过迁移服务MMS(MaxCompute Migration Serverless)将数据源迁移至MaxCompute。

前提条件

配置MaxCompute数据源配置BigQuery数据源

迁移作业类型

MMS支持单库整库迁移、部分迁移(多表)、部分迁移(多分区)三种迁移作业类型。

  • 单库整库迁移,迁移单个Database。

  • 部分迁移(多表),迁移一个或多个Table。

  • 部分迁移(多分区), 迁移一个或多个Partition。

操作步骤

  1. 登录MaxCompute控制台,在左上角选择目标地域。

  2. 在左侧导航栏,选择数据传输 > 迁移服务

  3. 数据源页签,单击目标数据源左侧的image,展开数据库列表。

  4. 单击目标数据库操作列中的整库迁移部分迁移,配置相关参数。

    若单击部分迁移,将进入目标数据库页面,在表列表分区列表页签,勾选待迁移的表或分区,然后单击新建迁移作业

    参数名

    是否必填

    说明

    库名

    默认为待迁移的数据库名称。

    作业名称

    作业名称。

    数据源

    默认为当前数据源名称。

    源库

    默认为当前待迁移的数据库名称。

    目标MaxCompute项目

    选择目标Maxompute项目名称。

    说明

    当数据源为BigQuery时,目标MaxCompute项目必须支持Schema

    目标Schema

    选择目标MaxCompute项目下的Schema。Schema详情请参见Schema操作

    说明

    该参数仅适用于已开启Schema的项目。

    table黑白名单

    你可以选择白名单黑名单,介绍如下:

    • 白名单:即为需要迁移的Table名称,多个Table名称之间以半角逗号(,)分隔。

      说明
      • 当迁移类型选择部分迁移(多表),白名单为已勾选的表。

      • 整库迁移进入时,白名单默认为空。

    • 黑名单:为不需要迁移的Table名称,多个Table名称之间以半角逗号(,)分隔。

    当迁移类型选择部分迁移(多分区),无需进行此配置。

    ETA

    选择期望作业执行完成时间,MMS服务将根据该时间进行优先级排序。

    开启校验

    如果开启,MMS将在源、目标端分区分别执行SELECT COUNT(*),获取迁移对象的行数,根据行数验证数据是否迁移成功。

    增量迁移

    如果开启,则新建任务将忽略已经迁移成功的分区。

    只迁移表结构

    只在MaxCompute端创建相应表和分区的结构,不迁移数据。

    分区过滤

    分区过滤表达式。例如:p1 >= '2022-03-04' and (p2 = 10 or p3 > 20) and p4 in ('abc', 'cde'),介绍如下:

    • p1、p2p3均为分区名。

    • 分区值仅包含字符串和数字,字符串被双引号或单引号包裹。

      INTBIGINT类型的分区列值外,其他类型的分区值都只能取字符串值。

    • 比较操作符包括:>、>=、= 、<、<=、<>

    • 分区过滤表达式支持IN操作符。

    • 逻辑操作符包括:ANDOR

    • 支持使用括号。

    表名映射

    表迁移到目标MaxCompute后的名称。

    字段名映射

    列名中迁移到MaxCompute后的名称。

    其他配置

    针对TableType类型的映射, 配置项为JSON格式,如:{ "mc.table.type": { "dataset1.table1":{"table.type":"delta","pk":["id1"]}, "dataset2.table2":{"table.type":"delta","pk":["id1","id2"]}, "dataset2.table2":{"table.type":"transactional"} } }

  5. 单击提交,完成迁移作业的创建。

    创建完成后,您可在迁移作业页签,查看迁移作业状态,若迁移作业运行失败后:

    • 您可以单击目标迁移作业操作列中的详情,进入迁移任务列表页面,单击目标任务操作列中日志,查看失败原因。

    • 您可以单击目标迁移作业操作列中的重试,重跑迁移作业。

      说明

      数据迁移会涉及迁移Schema、迁移数据、数据校验三个阶段,如果迁移作业的某个任务迁移任务失败,执行重试操作后,迁移任务会重新从迁移数据阶段开始重新运行。

附录:数据类型映射

BigQueryMaxCompute数据类型映射详情如下表所示。

BigQuery数据类型

MaxCompute数据类型

ARRAY

ARRAY

BOOLEAN

BOOLEAN

BYTES

BINARY

DATE

DATE

DATETIME

TIMESTAMP_NTZ

Geography

STRING

INTERVAL

STRING

JSON

JSON

INT64

BIGINT

NUMERIC

DECIMAL(38, 9)

BIGNUMERIC

DECIMAL(x, y)

说明

上述x、y参数是可设置的,默认值为DECIMAL(38, 18)。

FLOAT64

DOUBLE

RANGE

STRING

STRING

STRING

STRUCT

STRUCT

TIME

BIGINT

TIMESTAMP

TIMESTAMP

HiveMaxCompute数据类型映射详情如下表所示。

  • 普通列

    Hive数据类型

    MaxCompute数据类型

    BOOLEAN

    BOOLEAN

    TINYINT

    TINYINT

    SMALLINT

    SMALLINT

    INT

    INT

    BIGINT

    BIGINT

    FLOAT

    FLOAT

    DOUBLE

    DOUBLE

    DECIMAL

    DECIMAL

    STRING

    STRING

    VARCHAR

    VARCHAR

    CHAR

    STRING

    BINARY

    BINARY

    TIMESTAMP

    TIMESTAMP

    TIMESTAMP

    说明

    Hive 3版本开始支持此类型。

    TIMESTAMP_NTZ

    DATE

    DATE

    DATE

    DATETIME

    ARRAY

    ARRAY

    MAP<key,value>

    MAP

    STRUCT

    STRUCT

    UNION

    UNION

    说明

    暂时不支持Hive3 TIMESTAMP_NTZ类型。

  • 分区列

    • STRING /VARCHAR/CHAR/TINYINT/SMALLINT/INT/BIGINT类型保留原始类型。

    • 其他类型均转换为STRING类型。