全部產品
Search
文件中心

MaxCompute:使用CLONE TABLE實現同地區MaxCompute跨專案資料移轉

更新時間:Jun 19, 2024

本文為您介紹如何通過CLONE TABLE功能實現同Region的MaxCompute專案資料移轉,包含兩種使用情境:同Region同雲帳號內不同專案的資料移轉和同Region不同雲帳號間的專案資料移轉。

CLONE TABLE功能介紹

CLONE TABLE功能可以高效地將源表中的資料複製到目標表中。將資料複製到目標表之後,建議您執行資料驗證以確保複製後資料的準確性,例如執行select命令查看錶的資料、執行desc命令查看錶的大小。

使用限制

  • 目標表與源表的Schema需要相容。

  • 支援分區表和非分區表,支援對聚簇表使用clone table命令複製表資料。

  • 目標表已存在時,一次性複製分區的數量上限為10000個。

  • 目標表不存在時,無分區數量限制,滿足原子性。

  • 對同一個非分區表或分區表的同一個分區,執行clone table命令的次數不能超過6次。

  • 不支援在跨地區的MaxCompute專案之間使用clone table命令複製表資料。

  • 不支援對外部表格使用clone table命令複製表資料。

命令格式

clone table <[<src_project_name>.]<src_table_name>> [partition(<pt_spec>), ...]  to <[<dest_project_name>.]<dest_table_name>> [if exists [overwrite | ignore]] ;

參數詳細介紹與使用樣本請參見CLONE TABLE

同Region同雲帳號內不同專案的資料移轉

  • 若阿里雲帳號操作,則直接在源專案執行複製命令即可。

    set odps.namespace.schema=false;
    
    --將proejctA中的表複製至projectB;
    clone TABLE projectA.<tablename> to projectB.<tablename> IF EXISTS OVERWRITE;
  • 若RAM使用者操作,需要確認操作者是否擁有資料來源專案內源表的SELECT許可權及目標專案的CreateTableCreateInstacne許可權,擁有許可權後執行複製命令即可。授權詳情請參見。

同Region不同雲帳號間的資料移轉

跨帳號進行同步資料,需要所將目標專案Owner阿里雲賬戶添加至資料來源專案空間,並且賦予源專案的CreateTableCreateInstacne許可權,最後通過Clone Table功能實現同Region跨帳號資料移轉。

  1. 在遷移資料表源專案添加目標專案Owner的阿里雲帳號並賦予許可權:

    --進入資料來源專案projectA;
    use projectA;
    --將目標專案(projectB)Owner的阿里雲帳號(projectB_owner@aliyunid.com)添加至源專案空間(projectA);
    add user ALIYUN$projectB_owner@aliyunid.com;
    --賦予源專案的CreateTable、CreateInstacne許可權
    grant CreateTable,CreateInstance on project projectA to user ALIYUN$projectB_owner@aliyunid.com;
    --賦予源表的Select許可權
    grant Select on table <tablename> to user ALIYUN$projectB_owner@aliyunid.com;

    添加阿里雲帳號詳情請參見添加阿里雲帳號使用者(專案層級),授權詳情請參見直接為使用者授權

  2. 在目標專案執行複製命令。

    由於跨雲帳號操作一定是由阿里雲帳號進行操作,因此預設擁有目標專案內所有資料許可權,無需單獨授權。

    use projectB;
    --將proejctA中的表複製至projectB;
    clone TABLE projectA.<tablename> to projectB.<tablename> IF EXISTS OVERWRITE;
  3. 在目標專案確認表資料是否遷移成功。

    select * from <tablename> limit 2;
    重要

    建議完成資料移轉後,及時將目標專案Owner阿里雲帳號從資料來源專案中移除,以保證資料安全。移除操作詳情請參見刪除阿里雲帳號使用者(專案層級)