該文章主要針對于使用者同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