本文为您介绍如何通过迁移服务MMS(MaxCompute Migration Serverless)将数据源迁移至MaxCompute。
前提条件
迁移作业类型
MMS支持单库整库迁移、部分迁移(多表)、部分迁移(多分区)三种迁移作业类型。
单库整库迁移,迁移单个Database。
部分迁移(多表),迁移一个或多个Table。
部分迁移(多分区), 迁移一个或多个Partition。
操作步骤
登录MaxCompute控制台,在左上角选择目标地域。
在左侧导航栏,选择
。在数据源页签,单击目标数据源左侧的
,展开数据库列表。
单击目标数据库操作列中的整库迁移或部分迁移,配置相关参数。
若单击部分迁移,将进入目标数据库页面,在表列表和分区列表页签,勾选待迁移的表或分区,然后单击新建迁移作业。
参数名
是否必填
说明
库名
是
默认为待迁移的数据库名称。
作业名称
是
作业名称。
数据源
是
默认为当前数据源名称。
源库
是
默认为当前待迁移的数据库名称。
目标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、p2和p3均为分区名。
分区值仅包含字符串和数字,字符串被双引号或单引号包裹。
除INT和BIGINT类型的分区列值外,其他类型的分区值都只能取字符串值。
比较操作符包括:
>、>=、= 、<、<=、<>
。分区过滤表达式支持
IN
操作符。逻辑操作符包括:
AND
和OR
。支持使用括号。
表名映射
否
表迁移到目标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"} } }
。单击提交,完成迁移作业的创建。
创建完成后,您可在迁移作业页签,查看迁移作业状态,若迁移作业运行失败后:
您可以单击目标迁移作业操作列中的详情,进入迁移任务列表页面,单击目标任务操作列中日志,查看失败原因。
您可以单击目标迁移作业操作列中的重试,重跑迁移作业。
说明数据迁移会涉及迁移Schema、迁移数据、数据校验三个阶段,如果迁移作业的某个任务迁移任务失败,执行重试操作后,迁移任务会重新从迁移数据阶段开始重新运行。
附录:数据类型映射
BigQuery与MaxCompute数据类型映射详情如下表所示。
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 |
Hive与MaxCompute数据类型映射详情如下表所示。
普通列
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类型。