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

AnalyticDB:MaxCompute へのデータエクスポート

最終更新日:Mar 29, 2026

AnalyticDB for MySQL Data Warehouse Edition (V3.0) クラスターから、外部テーブルを経由して MaxCompute のパーティションテーブルへデータをエクスポートします。まず、送信先の MaxCompute テーブルに対応する外部テーブルを作成し、その後 INSERT 文を実行して対象のパーティションにデータを書き込みます。

前提条件

開始する前に、以下の条件を満たしていることを確認してください。

  • MaxCompute 内に送信先テーブルが作成済みであること。はじめに、「Alibaba Cloud アカウントの作成」をご参照ください。テーブルの作成については、「テーブルの作成」をご参照ください。参考として、以下に MaxCompute のパーティションテーブルを作成する例を示します。詳細については、「テーブル操作」をご参照ください。

    • ハッシュパーティションを指定したテーブルの作成:

      CREATE TABLE IF NOT EXISTS odps_table
      (
      uid STRING
       )
      PARTITIONED BY (ds STRING)
      LIFECYCLE 3;     
    • リストパーティションを指定したテーブルの作成:

      CREATE TABLE IF NOT EXISTS odps_table
      (
      uid STRING
       )
      PARTITIONED BY (ds STRING,other STRING)
      LIFECYCLE 3;     
  • AnalyticDB for MySQL Data Warehouse Edition (V3.0) クラスターが存在し、ホワイトリストが設定済みで、データベースアカウントおよびデータベースが作成済みであること。「クラスターの作成」をご参照ください。

  • (弾性モードを使用する場合)「ネットワーク情報」セクションの「クラスター情報」ページで、Elastic Network Interface (ENI) が有効化されていること。

説明

各エクスポート操作は、単一のパーティションに対してデータを書き込みます。複数のパーティションにデータをエクスポートするには、各パーティションごとに個別の INSERT 文を実行してください。MaxCompute では、最大 6 段階のパーティションレベルがサポートされています。

仕組み

各エクスポート処理は、以下の 3 つのステップで実行されます。

  1. AnalyticDB for MySQL クラスターに接続します。

  2. AnalyticDB for MySQL 内に、送信先の MaxCompute テーブルに対応する外部テーブルを作成します。

  3. INSERT 文を実行して、AnalyticDB for MySQL のテーブルから MaxCompute のパーティションへデータを書き込みます。

この外部テーブルでは、ENGINE='ODPS' および TABLE_PROPERTIES JSON オブジェクトを用いて接続を確立します。AnalyticDB for MySQL は、パブリックエンドポイントではなく、VPC エンドポイントを介してのみ MaxCompute にアクセスできます。

ハッシュパーティションを備えた MaxCompute テーブルへのデータエクスポート

この例では、AnalyticDB for MySQL の adb_table から、odps_tableds 列に基づく単一レベルのハッシュパーティションを備えた MaxCompute テーブル)へデータをエクスポートします。

ステップ 1:ご利用の AnalyticDB for MySQL クラスターに接続

AnalyticDB for MySQL クラスターへの接続」をご参照ください。

ステップ 2:外部テーブルの作成

CREATE TABLE odps_external_table
(
uid string,
ds string
)
ENGINE='ODPS'
TABLE_PROPERTIES='{
"endpoint":"http://service.odps.aliyun-inc.com/api",
"accessid":"<your-accesskey-id>",
"accesskey":"<your-accesskey-secret>",
"project_name":"<your-maxcompute-project>",
"table_name":"odps_table",
"partition_column":"ds"
}'
パラメーター説明
ENGINE='ODPS'エンジンを MaxCompute に設定します。
TABLE_PROPERTIESAnalyticDB for MySQL が MaxCompute にアクセスし、データを書き込むために使用する接続詳細です。
endpointMaxCompute の VPC エンドポイントです。リージョンごとのエンドポイント値については、「エンドポイント」をご参照ください。
accessid送信先 MaxCompute テーブルにアクセスするために使用する AccessKey ID です。
accesskey送信先 MaxCompute テーブルにアクセスするために使用する AccessKey Secret です。
project_name送信先テーブルを含む MaxCompute プロジェクトです。
table_nameMaxCompute 内の送信先テーブルの名前です。
partition_columnパーティション列です。ハッシュパーティションテーブルの場合、単一のパーティション列を指定します。

ステップ 3:対象パーティションへのデータエクスポート

INSERT [OVERWRITE] INTO odps_external_table PARTITION(ds='20200401')
SELECT [adb_table_column, ...] FROM adb_table [WHERE ...]
説明

SELECT 句の列リストには、パーティション列(ds)を含めないでください。PARTITION 句によってパーティション値が指定されます。

リストパーティションを備えた MaxCompute テーブルへのデータエクスポート

この例では、AnalyticDB for MySQL の adb_table から、odps_tableds および other 列に基づく 2 段階のリストパーティションを備えた MaxCompute テーブル)へデータをエクスポートします。

ステップ 1:ご利用の AnalyticDB for MySQL クラスターに接続

AnalyticDB for MySQL クラスターへの接続」をご参照ください。

ステップ 2:外部テーブルの作成

CREATE TABLE odps_external_table
(
uid string,
ds string,
other string
)
ENGINE='ODPS'
TABLE_PROPERTIES='{
"endpoint":"http://service.odps.aliyun-inc.com/api",
"accessid":"<your-accesskey-id>",
"accesskey":"<your-accesskey-secret>",
"project_name":"<your-maxcompute-project>",
"table_name":"odps_table",
"partition_column":"ds,other"
}'

複数段階のリストパーティションを備えたテーブルでは、partition_column を、パーティションレベル順にカンマ区切りで並べたパーティション列のリストとして指定します。

ステップ 3:対象パーティションへのデータエクスポート

INSERT [OVERWRITE] INTO odps_external_table PARTITION(ds='20200401',other='hangzhou')
SELECT [adb_table_column, ...] FROM adb_table [WHERE ...]
説明

SELECT 句の列リストには、パーティション列(dsother)を含めないでください。PARTITION 句によってパーティション値が指定されます。

次のステップ

  • テーブル操作 — 高いパーティションレベルを備えた MaxCompute テーブルの作成

  • エンドポイント — ご利用の MaxCompute リージョンに対応する VPC エンドポイントの照会