すべてのプロダクト
Search
ドキュメントセンター

MaxCompute:CLONE TABLE を使用した同一リージョン内の MaxCompute プロジェクト間でのデータ移行

最終更新日:Mar 01, 2026

CLONE TABLE ステートメントは、ソーステーブルから宛先テーブルへ、同一リージョン内でデータをコピーします。このステートメントを使用して、同一の Alibaba Cloud アカウント内、または異なるアカウント間で MaxCompute プロジェクト間のデータを移行できます。

クローン後、宛先テーブルのデータを検証します。SELECT を実行してデータを検査するか、DESC を実行してテーブルスキーマとサイズを確認します。

構文

CLONE TABLE <[<src_project_name>.]<src_table_name>> [PARTITION(<pt_spec>), ...]
  TO <[<dest_project_name>.]<dest_table_name>> [IF EXISTS [OVERWRITE | IGNORE]];

完全な構文リファレンスと追加の例については、「CLONE TABLE」をご参照ください。

制限事項

制限事項説明
スキーマの互換性宛先テーブルスキーマは、ソーステーブルスキーマと互換性がある必要があります。
サポートされているテーブルタイプパーティションテーブル、非パーティションテーブル、およびクラスターテーブル。
パーティション制限 (既存テーブル)宛先テーブルが既に存在する場合、一度にクローンできるパーティションは最大 10,000 個です。
パーティション制限 (新規テーブル)無制限です。これにより、クローン操作の原子性が保証されます。
リージョン間サポートされていません。
外部テーブルサポートされていません。

同一 Alibaba Cloud アカウント内でのデータ移行

Alibaba Cloud アカウントの使用

ソースプロジェクトで CLONE TABLE ステートメントを直接実行します。

-- ソースプロジェクトで実行
SET odps.namespace.schema=false;

-- project_analytics から project_reporting へ sales_data テーブルをクローン
CLONE TABLE project_analytics.sales_data TO project_reporting.sales_data IF EXISTS OVERWRITE;

RAM ユーザーの使用

RAM ユーザーとして CLONE TABLE を実行する前に、RAM ユーザーが以下の権限を持っていることを確認してください。

権限スコープ
SELECTソースプロジェクト内のソーステーブル
CreateTable宛先プロジェクト
CreateInstance宛先プロジェクト

これらの権限を持つ RAM ユーザーは、Alibaba Cloud アカウントと同様に CLONE TABLE ステートメントを実行できます。権限付与の詳細については、「」をご参照ください。

異なる Alibaba Cloud アカウント間でのデータ移行

異なる Alibaba Cloud アカウントが所有するプロジェクト間でデータをクローンするには、宛先プロジェクトのオーナーをソースプロジェクトに追加し、必要な権限を付与します。Alibaba Cloud アカウント (RAM ユーザーではない) のみがアカウント間操作を実行できます。

前提条件

開始する前に、以下を確認してください。

  • ソースプロジェクトと宛先プロジェクトが同一リージョンにあること

  • ソースおよび宛先プロジェクトのオーナー両方に対する Alibaba Cloud アカウントの認証情報があること

操作手順

  1. ソースプロジェクトで権限を付与します。 ソースプロジェクトのオーナーアカウントでログインし、以下のコマンドを実行します。アカウントの追加の詳細については、「Alibaba Cloud アカウントの追加 (プロジェクトレベル)」をご参照ください。権限付与の詳細については、「指定されたプロジェクトへのユーザーへの権限付与」をご参照ください。

       -- ソースプロジェクト (project_analytics) で実行
       USE project_analytics;
    
       -- 宛先プロジェクトのオーナーをソースプロジェクトに追加
       ADD USER ALIYUN$destination_owner@aliyunid.com;
    
       -- プロジェクトレベルの権限を付与
       GRANT CreateTable, CreateInstance ON PROJECT project_analytics TO USER ALIYUN$destination_owner@aliyunid.com;
    
       -- ソーステーブルへの読み取りアクセスを付与
       GRANT Select ON TABLE sales_data TO USER ALIYUN$destination_owner@aliyunid.com;
  2. 宛先プロジェクトで CLONE TABLE を実行します。 宛先プロジェクトのオーナーアカウントでログインします。宛先プロジェクトのオーナーは既に宛先プロジェクトに対する完全な権限を持っているため、追加の権限付与は不要です。

       -- 宛先プロジェクト (project_reporting) で実行
       USE project_reporting;
    
       -- project_analytics から project_reporting へテーブルをクローン
       CLONE TABLE project_analytics.sales_data TO project_reporting.sales_data IF EXISTS OVERWRITE;
  3. クローンされたデータを検証します。 SELECT を実行してデータを検査するか、DESC を実行してテーブルスキーマとサイズを確認します。予想される出力 (例): テーブルスキーマとサイズも検証できます。

       -- 行のサンプルを確認
       SELECT * FROM sales_data LIMIT 2;
       +----+------------+--------+
       | id | order_date | amount |
       +----+------------+--------+
       |  1 | 2024-01-15 | 299.00 |
       |  2 | 2024-01-16 | 450.50 |
       +----+------------+--------+
       -- テーブル構造とサイズを確認
       DESC sales_data;

アカウント間アクセスのクリーンアップ

重要

移行が完了したら、データセキュリティを維持するために、ソースプロジェクトから宛先プロジェクトのオーナーを削除します。詳細については、「Alibaba Cloud アカウントの削除 (プロジェクトレベル)」をご参照ください。