该文章主要针对于用户同region不同账户之间的MaxCompute数据迁移方式,属于迁移的方式可以有三种方式,一、添加MaxCompute数据源的方式进行数据迁移(该方式针对多个表配置同步节点较为繁琐);二、使用tunnel方式结合代码进行数据的迁移;三、使用clone table进行MaxCompute数据到另一MaxCompute之间的数据迁移。本案例主要介绍Clone table功能,Clone table跨账号进行同步数据,需要所做的添加对应的主账户到对应的项目空间,并且赋予有对应创建表权限的用户,最后实现不同MaxCompute之间的Clone table功能。
背景:
针对用户在不同MaxCompute之间进行数据迁移,使用三种方式的第一种、第二种进行数据的迁移造成了很多用户操作繁琐,在这里给大家带来一篇实践不同账号Clone table功能的一个范例,希望可以帮助到大家。
一、CLONE TABLE功能介绍
CLONE TABLE可以复制表数据到另一个表中,极大的提高了数据迁移的效率。本文为您介绍CLONE TABLE的使用。
使用限制
- 要求目标表与源表的Schema兼容。
- 支持分区表和非分区表。
- 目标表已存在时一次性复制分区的数量上限为10000个。
- 目标表不存在时无分区数量限制,满足原子性。
命令格式
CLONE TABLE <[src_project_name.]src_table_name> [PARTITION(spec), ...]
TO <[dest_project_name.]desc_table_name> [IF EXISTS (OVERWRITE | IGNORE)] ;
具体使用情况请参阅CLONE TABLE功能介绍
二、添加用户与赋予用户权限
2.1进入需要同步数据的MaxCompute客户端,并添加目标源MaxCompute的主账号到目的空间
限制
只能将另一个主账户添加到本项目空间
涉及到的权限知识点可以参考MaxCompute与DataWorks权限介绍和示例
2.2查询所有角色,并查看对应角色的权限设置,并赋予新增用户的权限
三、在源MaxCompute创建对应的表,并插入数据
3.1在源MaxCompute创建对应的表并插入数据
CREATE TABLE IF NOT EXISTS git_project.testone(name STRING) STORED AS ALIORC;
INSERT INTO testone VALUES ('tom');
INSERT INTO testone VALUES ('tony');
四、clone数据,并确认数据是否clone是否成功
4.1在源MaxCompute执行命令
clone TABLE git_project.testone to WB_BestPractice_dev.testone IF EXISTS OVERWRITE;
4.2登录MaxCompute目的端,查看是否迁移完成
执行命令
select * from testone;
欢迎加入“MaxCompute开发者社区2群”,点击链接申请加入或扫描二维码
https://h5.dingtalk.com/invite-page/index.html?bizSource=____source____&corpId=dingb682fb31ec15e09f35c2f4657eb6378f&inviterUid=E3F28CD2308408A8&encodeDeptId=0054DC2B53AFE745