使用CLONE TABLE方式实现同region不同可用区的MaxCompute

更新于 3月18日  约 6 分钟

该文章主要针对于用户同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://yqh.aliyun.com/

本文为阿里云原创内容,未经允许不得转载。

阅读 59更新于 3月18日

推荐阅读
阿里云栖社区
用户专栏

汇集阿里技术精粹-yq.aliyun.com

11601 人关注
1534 篇文章
专栏主页
目录