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

MaxCompute:UNLOAD

最終更新日:Feb 07, 2026

UNLOAD コマンドを使用して、MaxCompute プロジェクトのデータを OSS や Hologres などの外部ストレージにエクスポートします。これにより、他のコンピュートエンジンがこのデータにアクセスできるようになります。

必要な権限

  • MaxCompute 権限:アカウントには、MaxCompute プロジェクト内のテーブルに対する SELECT 権限が必要です。詳細については、「MaxCompute 権限」をご参照ください。

  • 外部ストレージ権限:MaxCompute から外部ストレージにデータをエクスポートする前に、MaxCompute がそのストレージにアクセスできるように権限を付与する必要があります。これは OSS および Hologres の両方に適用されます。

    • OSS 権限付与:より高いセキュリティを確保するため、ワンクリック認証を使用してください。詳細については、「STS ベースの権限付与」をご参照ください。以下の例では、ロール名は AliyunODPSDefaultRole です。

    • Hologres 権限付与:RAM ロールを作成し、MaxCompute が Hologres にアクセスできるように権限を付与します。その後、そのロールを Hologres インスタンスに追加します。手順の詳細については、「Hologres 外部テーブルの作成 (STS モード)」をご参照ください。

外部ストレージへのエクスポート

UNLOAD コマンドは追加モードで動作します。同じ宛先パスに対して UNLOAD を複数回実行しても、既存のファイルは上書きされません。代わりに、そのパス内に新しいファイルが作成されます。ファイルを上書きするには、UNLOAD 実行前に手動で宛先パスを削除してください。

OSS へのエクスポート

テキスト形式 (CSV または TSV) でのエクスポート

この方法では、組み込みの StorageHandler を使用してデータをエクスポートします。デフォルトでは、ファイル拡張子は .csv または .tsv になります。

構文

UNLOAD FROM {<select_statement>|<table_name> [PARTITION (<pt_spec>)]} 
INTO 
LOCATION <oss_location>
STORED BY <StorageHandler>
[WITH SERDEPROPERTIES ('<property_name>'='<property_value>',...)];

主な構成項目

構成項目

説明

oss_location

対象 OSS パス。形式:oss://<oss_endpoint>/<bucket>/<object_path>

StorageHandler

組み込みハンドラを指定します。

  • 'com.aliyun.odps.CsvStorageHandler':CSV 形式でエクスポート。

  • 'com.aliyun.odps.TsvStorageHandler':TSV 形式でエクスポート。

SERDEPROPERTIES

エクスポート動作を設定します。一般的なプロパティは以下のとおりです。

  • 'odps.properties.rolearn':必須。OSS にアクセスするために使用する RAM ロールの ARN。

  • 'odps.text.option.gzip.output.enabled'='true':エクスポートされたファイルを GZIP で圧縮。

例 1:CSV 形式でエクスポートし、GZIP 圧縮を適用

MaxCompute プロジェクトの sale_detail テーブルのデータを OSS にエクスポートします。sale_detail のデータは以下のとおりです。

-- パーティションフィールド:sale_date、region
+------------+-------------+-------------+------------+------------+
| shop_name  | customer_id | total_price | sale_date  | region     |
+------------+-------------+-------------+------------+------------+
| s1         | c1          | 100.1       | 2013       | china      |
| s2         | c2          | 100.2       | 2013       | china      |
| s3         | c3          | 100.3       | 2013       | china      |
| null       | c5          | NULL        | 2014       | shanghai   |
| s6         | c6          | 100.4       | 2014       | shanghai   |
| s7         | c7          | 100.5       | 2014       | shanghai   |
+------------+-------------+-------------+------------+------------+

操作手順

  1. OSS の場合: OSS 管理コンソール にログインします。mc-unload/data_location/ という名前の OSS バケットを oss-cn-hangzhou リージョンに作成します。次に、OSS パスを構築します。バケットの作成方法の詳細については、「コンソールでバケットを作成する」をご参照ください。バケット、リージョン、およびエンドポイントを使用して OSS パスを構築します:

    oss://oss-cn-hangzhou-internal.aliyuncs.com/mc-unload/data_location
  2. MaxCompute 側MaxCompute クライアントにログインします。UNLOAD コマンドを実行します。

    方法 1:SELECT 文を使用

    -- 出力ファイル数を制御するために、ワーカーあたりのデータサイズを 256 MB に設定します。
    SET odps.stage.mapper.split.size=256;
    
    UNLOAD FROM (SELECT * FROM sale_detail)
    INTO
    LOCATION 'oss://oss-cn-hangzhou-internal.aliyuncs.com/mc-unload/data_location'
    STORED BY 'com.aliyun.odps.CsvStorageHandler'
    WITH SERDEPROPERTIES (
        'odps.properties.rolearn'='acs:ram::<uid>:role/AliyunODPSDefaultRole', 
        'odps.text.option.gzip.output.enabled'='true'
    );

    方法 2:テーブル名を直接指定(クエリコストなし)

    -- 出力ファイル数を制御するために、ワーカーあたりのデータサイズを 256 MB に設定します。
    SET odps.stage.mapper.split.size=256;
    
    UNLOAD FROM sale_detail 
    INTO
    LOCATION 'oss://oss-cn-hangzhou-internal.aliyuncs.com/mc-unload/data_location'
    STORED BY 'com.aliyun.odps.CsvStorageHandler'
    WITH SERDEPROPERTIES (
        'odps.properties.rolearn'='acs:ram::<uid>:role/AliyunODPSDefaultRole', 
        'odps.text.option.gzip.output.enabled'='true'
    );
  3. 結果の確認OSS 管理コンソールにログインし、対象 OSS パスを確認します。エクスポートされたファイルは CSV 形式で、GZIP 圧縮されています。

例 2:パーティションデータを TSV 形式でエクスポートし、圧縮を適用

sale_detail テーブルのうち、sale_date='2013' かつ region='china' のデータを TSV 形式でエクスポートし、GZIP 圧縮を適用します。

-- パーティションフィールド:sale_date、region
+------------+-------------+-------------+------------+------------+
| shop_name  | customer_id | total_price | sale_date  | region     |
+------------+-------------+-------------+------------+------------+
| s1         | c1          | 100.1       | 2013       | china      |
| s2         | c2          | 100.2       | 2013       | china      |
| s3         | c3          | 100.3       | 2013       | china      |
| null       | c5          | NULL        | 2014       | shanghai   |
| s6         | c6          | 100.4       | 2014       | shanghai   |
| s7         | c7          | 100.5       | 2014       | shanghai   |
+------------+-------------+-------------+------------+------------+

操作手順

  1. OSS の場合: OSS 管理コンソール にログインします。mc-unload/data_location/ という名前の OSS バケットを oss-cn-hangzhou リージョンに作成します。その後、OSS パスを構築します。バケットの作成方法の詳細については、「コンソールでバケットを作成する」をご参照ください。バケット、リージョン、およびエンドポイントを使用して OSS パスを構築します。

    oss://oss-cn-hangzhou-internal.aliyuncs.com/mc-unload/data_location
  2. MaxCompute 側MaxCompute クライアントにログインします。UNLOAD コマンドを実行します。

    SET odps.stage.mapper.split.size=256;
    
    UNLOAD FROM sale_detail PARTITION (sale_date='2013',region='china')
    INTO
    LOCATION 'oss://oss-cn-hangzhou-internal.aliyuncs.com/mc-unload/data_location'
    STORED BY 'com.aliyun.odps.TsvStorageHandler'
    WITH SERDEPROPERTIES (
        'odps.properties.rolearn'='acs:ram::<uid>:role/AliyunODPSDefaultRole', 
        'odps.text.option.gzip.output.enabled'='true'
    );
  3. 結果の確認OSS 管理コンソールにログインし、対象 OSS パスを確認します。エクスポートされたファイルは TSV 形式で、GZIP 圧縮されています。

オープンソース形式 (Parquet、ORC など) でのエクスポート

この方法では、複数のオープンソースのカラム型または構造化データ形式でデータをエクスポートできます。

構文

UNLOAD FROM {<select_statement>|<table_name> [PARTITION (<pt_spec>)]}
INTO 
LOCATION <oss_location>
[ROW FORMAT SERDE '<serde_class>' 
  [WITH SERDEPROPERTIES ('<property_name>'='<property_value>',...)]
]
STORED AS <file_format>
[PROPERTIES ('<tbproperty_name>'='<tbproperty_value>')];

主な構成項目

構成項目

説明

oss_location

対象 OSS パス。形式:oss://<oss_endpoint>/<bucket>/<object_path>

serde_class

シリアライズ/デシリアライズライブラリを指定します。たとえば、Parquet の場合は org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe です。

SERDEPROPERTIES

'odps.properties.rolearn':必須。OSS にアクセスするために使用する RAM ロールの ARN。

file_format

必須。ファイル形式を指定します。たとえば、PARQUETORCTEXTFILEJSON などです。

PROPERTIES

- 'mcfed.parquet.compression'='SNAPPY':Parquet ファイルの圧縮形式。サポートされる形式は SNAPPY および LZO です。
- 'odps.text.option.gzip.output.enabled'='true':TEXTFILE の GZIP 圧縮。

サポートされる形式と圧縮方式

ファイル形式

サポートされる圧縮形式

説明

PARQUET

SNAPPY、LZO

分析クエリ向けに最適化されたカラム型ストレージ形式

ORC

SNAPPY、LZO

Hadoop エコシステム向けのカラム型ストレージ形式

TEXTFILE

GZIP

カスタムデリミタをサポートするテキスト形式

RCFILE

-

行・列ハイブリッドストレージ形式

SEQUENCEFILE

-

Hadoop シーケンスファイル形式

AVRO

-

データシリアライズ形式

JSON

-

JSON 形式

例 1:PARQUET 形式でエクスポートし、SNAPPY 圧縮を適用

MaxCompute プロジェクトの sale_detail テーブルのデータを OSS にエクスポートします。sale_detail テーブルのデータは以下のとおりです。

-- パーティションフィールド:sale_date、region
+------------+-------------+-------------+------------+------------+
| shop_name  | customer_id | total_price | sale_date  | region     |
+------------+-------------+-------------+------------+------------+
| s1         | c1          | 100.1       | 2013       | china      |
| s2         | c2          | 100.2       | 2013       | china      |
| s3         | c3          | 100.3       | 2013       | china      |
| null       | c5          | NULL        | 2014       | shanghai   |
| s6         | c6          | 100.4       | 2014       | shanghai   |
| s7         | c7          | 100.5       | 2014       | shanghai   |
+------------+-------------+-------------+------------+------------+

操作手順

  1. OSS で: OSS 管理コンソールにログオンします。 mc-unload/data_location/ という名前の OSS バケットを oss-cn-hangzhou リージョンに作成します。 次に、OSS パスを構築します。 バケットの作成に関する詳細については、「コンソールでバケットを作成する」をご参照ください。 バケット、リージョン、およびエンドポイントを使用して OSS パスを構築します:

    oss://oss-cn-hangzhou-internal.aliyuncs.com/mc-unload/data_location
  2. MaxCompute 側MaxCompute クライアントにログインします。UNLOAD コマンドを実行します。

    -- 出力ファイル数を制御するために、ワーカーあたりのデータサイズを 256 MB に設定します。
    SET odps.stage.mapper.split.size=256;
    
    UNLOAD FROM (SELECT * FROM sale_detail) 
    INTO  
    LOCATION 'oss://oss-cn-hangzhou-internal.aliyuncs.com/mc-unload/data_location' 
    ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' 
    WITH SERDEPROPERTIES (
        'odps.properties.rolearn'='acs:ram::<uid>:role/AliyunODPSDefaultRole'
    ) 
    STORED AS PARQUET 
    PROPERTIES('mcfed.parquet.compression'='SNAPPY');
  3. 結果の確認OSS 管理コンソールにログインし、対象 OSS パスを確認します。エクスポートされたファイルは PARQUET 形式で、SNAPPY 圧縮されています。

例 2:パーティションデータを PARQUET 形式でエクスポート

MaxCompute の sale_detail テーブルのうち、sale_date='2013'region='china' でパーティションされたデータを PARQUET 形式でエクスポートし、SNAPPY 圧縮を適用します。sale_detail のデータは以下のとおりです。

-- パーティションフィールド:sale_date、region
+------------+-------------+-------------+------------+------------+
| shop_name  | customer_id | total_price | sale_date  | region     |
+------------+-------------+-------------+------------+------------+
| s1         | c1          | 100.1       | 2013       | china      |
| s2         | c2          | 100.2       | 2013       | china      |
| s3         | c3          | 100.3       | 2013       | china      |
| null       | c5          | NULL        | 2014       | shanghai   |
| s6         | c6          | 100.4       | 2014       | shanghai   |
| s7         | c7          | 100.5       | 2014       | shanghai   |
+------------+-------------+-------------+------------+------------+

操作手順

  1. OSS の場合: OSS 管理コンソール にログインします。mc-unload/data_location/ という名前の OSS バケットを oss-cn-hangzhou リージョンに作成します。次に、OSS パスを構築します。バケットの作成方法の詳細については、「コンソールでバケットを作成する」をご参照ください。バケット、リージョン、およびエンドポイントを使用して OSS パスを構築します:

    oss://oss-cn-hangzhou-internal.aliyuncs.com/mc-unload/data_location
  2. MaxCompute 側MaxCompute クライアントにログインします。UNLOAD コマンドを実行します。

    -- 出力ファイル数を制御するために、ワーカーあたりのデータサイズを 256 MB に設定します。
    SET odps.stage.mapper.split.size=256;
    
    UNLOAD FROM sale_detail PARTITION (sale_date='2013',region='china') 
    INTO 
    LOCATION 'oss://oss-cn-hangzhou-internal.aliyuncs.com/mc-unload/data_location' 
    ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' 
    WITH SERDEPROPERTIES ('odps.properties.rolearn'='acs:ram::<uid>:role/AliyunODPSDefaultRole') 
    STORED AS PARQUET 
    PROPERTIES('mcfed.parquet.compression'='SNAPPY');
  3. 結果の確認OSS 管理コンソールにログインし、対象 OSS パスを確認します。エクスポートされたファイルは PARQUET 形式で、SNAPPY 圧縮されています。

例 3:カスタムデリミタを使用して TEXTFILE 形式でエクスポート

sale_detail テーブルのデータを、カンマデリミタを使用した TXT ファイルとしてエクスポートします。

-- パーティションフィールド:sale_date、region
+------------+-------------+-------------+------------+------------+
| shop_name  | customer_id | total_price | sale_date  | region     |
+------------+-------------+-------------+------------+------------+
| s1         | c1          | 100.1       | 2013       | china      |
| s2         | c2          | 100.2       | 2013       | china      |
| s3         | c3          | 100.3       | 2013       | china      |
| null       | c5          | NULL        | 2014       | shanghai   |
| s6         | c6          | 100.4       | 2014       | shanghai   |
| s7         | c7          | 100.5       | 2014       | shanghai   |
+------------+-------------+-------------+------------+------------+

操作手順

  1. OSS の場合: OSS 管理コンソールにログインします。mc-unload/data_location/ という名前の OSS バケットを oss-cn-hangzhou リージョンに作成します。次に、OSS パスを作成します。バケットの作成方法の詳細については、「コンソールでバケットを作成する」をご参照ください。バケット、リージョン、およびエンドポイントを使用して OSS パスを作成します:

    oss://oss-cn-hangzhou-internal.aliyuncs.com/mc-unload/data_location
  2. MaxCompute 側MaxCompute クライアントにログインします。UNLOAD コマンドを実行します。

    -- 出力ファイル数を制御するために、ワーカーあたりのデータサイズを 256 MB に設定します。
    SET odps.sql.allow.fullscan=true; 
    
    UNLOAD FROM (SELECT * FROM sale_detail)
    INTO
    LOCATION 'oss://oss-cn-beijing-internal.aliyuncs.com/mc-unload/data_location/'
    ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
    WITH SERDEPROPERTIES ('field.delim'=',')
    STORED AS TEXTFILE
    PROPERTIES ('odps.external.data.enable.extension'='true');
  3. 結果の確認OSS 管理コンソールにログインし、対象 OSS パスを確認します。エクスポートされたファイルは TXT 形式で、カンマデリミタを使用しています。

ファイル名のプレフィックス、サフィックス、拡張子のカスタマイズ

UNLOAD は OSS にデータをエクスポートします。PROPERTIES または SERDEPROPERTIES のプロパティを使用して、出力ファイルのプレフィックス、サフィックス、拡張子をカスタマイズできます。

構文

UNLOAD FROM {<select_statement>|<table_name> [PARTITION (<pt_spec>)]}
INTO 
LOCATION <oss_location>
[ROW FORMAT SERDE '<serde_class>' 
  [WITH SERDEPROPERTIES ('<property_name>'='<property_value>',...)]
]
STORED AS <file_format>
[PROPERTIES ('<tbproperty_name>'='<tbproperty_value>',...)];

主な構成項目

property_name/tbproperty_name

説明

odps.external.data.output.prefix

ファイル名のプレフィックス。英数字およびアンダースコアのみ使用可能。長さ:1~10 文字。

'mc_'

odps.external.data.output.suffix

ファイル名のサフィックス。英数字およびアンダースコアのみ使用可能。

'_hangzhou'

odps.external.data.enable.extension

デフォルトのファイル拡張子(例:.tx.parquet)を表示するかどうか。

'true'

odps.external.data.output.explicit.extension

カスタムファイル拡張子。デフォルトの拡張子を上書きします。

'jsonl'

サフィックスのリファレンス

以下の表は、odps.external.data.enable.extension=true を設定した場合に生成されるデフォルトの拡張子の一覧です。

ファイル形式

SerDe

サフィックス

SEQUENCEFILE

org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe

.sequencefile

TEXTFILE

org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe

.txt

RCFILE

org.apache.hadoop.hive.serde2.columnar.LazyBinaryColumnarSerDe

.rcfile

ORC

org.apache.hadoop.hive.ql.io.orc.OrcSerde

.orc

PARQUET

org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe

.parquet

AVRO

org.apache.hadoop.hive.serde2.avro.AvroSerDe

.avro

JSON

org.apache.hive.hcatalog.data.JsonSerDe

.json

CSV

org.apache.hadoop.hive.serde2.OpenCSVSerde

.csv

説明

SNAPPY または LZO 圧縮でエクスポートされたファイルには、.snappy または .lzo 拡張子は表示されません。

例 1:プレフィックスとサフィックスを指定して TEXTFILE 形式でエクスポート

ご利用の MaxCompute プロジェクトの sale_detail テーブルのデータを OSS に TXT 形式でエクスポートし、ファイル名を mc_<システム生成>_beijing.txt の形式にします。sale_detail テーブルのデータは以下のとおりです。

-- パーティションフィールド:sale_date、region
+------------+-------------+-------------+------------+------------+
| shop_name  | customer_id | total_price | sale_date  | region     |
+------------+-------------+-------------+------------+------------+
| s1         | c1          | 100.1       | 2013       | china      |
| s2         | c2          | 100.2       | 2013       | china      |
| s3         | c3          | 100.3       | 2013       | china      |
| null       | c5          | NULL        | 2014       | shanghai   |
| s6         | c6          | 100.4       | 2014       | shanghai   |
| s7         | c7          | 100.5       | 2014       | shanghai   |
+------------+-------------+-------------+------------+------------+

操作手順

  1. OSS で: OSS 管理コンソールにログインします。mc-unload/data_location/ という名前の OSS バケットを oss-cn-hangzhou リージョンに作成します。その後、OSS パスを構築します。バケットの作成方法の詳細については、「コンソールでバケットを作成する」をご参照ください。バケット、リージョン、およびエンドポイントを使用して OSS パスを構築します。

    oss://oss-cn-hangzhou-internal.aliyuncs.com/mc-unload/data_location
  2. MaxCompute 側MaxCompute クライアントにログインします。UNLOAD コマンドを実行します。

    UNLOAD FROM (SELECT * FROM sale_detail) 
    INTO 
    LOCATION 'oss://oss-cn-beijing-internal.aliyuncs.com/***/textfile' 
    row format serde 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
    STORED AS textfile
    PROPERTIES (
        'odps.external.data.output.prefix'='mc_', 
        'odps.external.data.output.suffix'='_beijing',
        'odps.external.data.enable.extension'='true');
  3. 結果の確認OSS 管理コンソールにログインし、対象 OSS パスを確認します。エクスポートされたファイルの名前は mc_<システム生成>_beijing.txt になっています。

例 2:カスタム拡張子を指定して JSON 形式でエクスポート

MaxCompute プロジェクトの sale_detail テーブルのデータを OSS に JSON ファイルとしてエクスポートし、ファイル名を mc_<システム生成ファイル名>_beijing.json の形式にします。sale_detail のデータは以下のとおりです。

-- パーティションフィールド:sale_date、region
+------------+-------------+-------------+------------+------------+
| shop_name  | customer_id | total_price | sale_date  | region     |
+------------+-------------+-------------+------------+------------+
| s1         | c1          | 100.1       | 2013       | china      |
| s2         | c2          | 100.2       | 2013       | china      |
| s3         | c3          | 100.3       | 2013       | china      |
| null       | c5          | NULL        | 2014       | shanghai   |
| s6         | c6          | 100.4       | 2014       | shanghai   |
| s7         | c7          | 100.5       | 2014       | shanghai   |
+------------+-------------+-------------+------------+------------+

操作手順

  1. OSS の場合: OSS 管理コンソール にログインします。mc-unload/data_location/ という名前の OSS バケットを oss-cn-hangzhou リージョンに作成します。その後、OSS パスを構築します。バケットの作成方法の詳細については、「コンソールでバケットを作成する」をご参照ください。バケット、リージョン、およびエンドポイントを使用して OSS パスを構築します:

    oss://oss-cn-hangzhou-internal.aliyuncs.com/mc-unload/data_location
  2. MaxCompute 側MaxCompute クライアントにログインします。UNLOAD コマンドを実行します。

    UNLOAD FROM (SELECT * FROM sale_detail) 
    INTO 
    LOCATION 'oss://oss-cn-beijing-internal.aliyuncs.com/***/json' 
    ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe'
    WITH SERDEPROPERTIES (
        'odps.external.data.output.prefix'='mc_', 
        'odps.external.data.output.suffix'='_beijing',
        'odps.external.data.output.explicit.extension'='json')
    STORED AS JSON;
  3. 結果の確認OSS 管理コンソールにログインし、対象 OSS パスを確認します。エクスポートされたファイルの名前は mc_<システム生成ファイル名>_beijing.json になっています。

Hologres へのエクスポート

制限事項

  • 二重署名非対応:Hologres へのエクスポート時に二重署名認証を使用しないでください。

  • パーティションテーブル非対応:Hologres のパーティションテーブルにデータをエクスポートすることはできません。

  • データ型マッピング:Hologres 宛先テーブルのフィールド型は、MaxCompute ソーステーブルのフィールド型と一致している必要があります。詳細については、「MaxCompute と Hologres 間のデータ型マッピング」をご参照ください。

構文

UNLOAD FROM {<select_statement>|<table_name> [PARTITION (<pt_spec>)]} 
INTO 
LOCATION <hologres_location>
STORED BY <StorageHandler>
[WITH SERDEPROPERTIES ('<property_name>'='<property_value>',...)];

主な構成項目

構成項目

説明

hologres_location

対象 Hologres テーブルの JDBC 接続文字列。形式:'jdbc:postgresql://<endpoint>:<port>/<database>?ApplicationName=MaxCompute&[currentSchema=<schema>&][useSSL={true|false}&]table=<holo_table_name>/'

StorageHandler

組み込みハンドラを指定します。JDBC を使用して接続するには、com.aliyun.odps.jdbc.JdbcStorageHandler を使用します。

SERDEPROPERTIES

以下の 3 つのプロパティを必ず含めてください。

  • 'odps.properties.rolearn'='<ram_arn>':Hologres にアクセスするために使用する RAM ロールの ARN。

  • 'mcfed.mapreduce.jdbc.driver.class'='org.postgresql.Driver':Hologres の JDBC ドライバー。

  • 'odps.federation.jdbc.target.db.type'='holo':対象データベースの種類。

MaxCompute テーブル data_test を Hologres テーブル mc_2_holo にエクスポートします。data_test のデータは以下のとおりです。

+------------+------+
| id         | name |
+------------+------+
| 3          | rgege |
| 4          | Gegegegr |
+------------+------+

操作手順

  1. Hologres 側:宛先テーブル mc_2_holo を作成します。

    CREATE TABLE mc_2_holo (id INT, name TEXT);
  2. MaxCompute 側MaxCompute クライアントにログインします。UNLOAD コマンドを実行します。

    UNLOAD FROM (SELECT * FROM data_test) 
    INTO 
    LOCATION 'jdbc:postgresql://hgprecn-cn-5y**********-cn-hangzhou-internal.hologres.aliyuncs.com:80/test?ApplicationName=MaxCompute&currentSchema=public&useSSL=false&table=mc_2_holo/'  
    STORED BY 'com.aliyun.odps.jdbc.JdbcStorageHandler'
    WITH SERDEPROPERTIES ( 
      'odps.properties.rolearn'='acs:ram::13**************:role/aliyunodpsholorole',
      'mcfed.mapreduce.jdbc.driver.class'='org.postgresql.Driver', 
      'odps.federation.jdbc.target.db.type'='holo'
    );
  3. 結果の確認:Hologres でエクスポートされたデータをクエリします。

    SELECT * FROM mc_2_holo;

    結果:

    id	name
    4	Gegegegr
    3	rgege

課金

コマンドの課金

  • UNLOAD の無償:UNLOAD コマンド自体には費用は発生しません。

  • クエリ句の課金:UNLOAD 内のクエリ句はデータをスキャンし、コンピューティングリソースを使用するため、標準の SQL タスクとして課金されます。

ストレージの課金

OSS に構造化データを保存することで、場合によってはストレージコストを削減できます。開始前にコストを見積もってください。

  • MaxCompute ストレージ料金1 GB あたり月額 USD 0.018。詳細については、「ストレージ料金 (従量課金)」をご参照ください。MaxCompute にインポートされたデータは約 5 倍に圧縮されます。課金は圧縮後のデータサイズに基づいて行われます。

  • OSS ストレージ料金:標準 OSS ストレージのコストは1 GB あたり月額 USD 0.018 です。その他のストレージクラスには、低頻度アクセス、アーカイブ、コールドアーカイブがあります。詳細については、「ストレージ料金」をご参照ください。

コスト最適化の推奨事項

ストレージコストを削減する目的でのみデータをエクスポートする場合は、以下の手順に従ってください。

  1. 圧縮率のテスト:データ特性に基づいて圧縮率を見積もります。

  2. UNLOAD コストの見積もり:クエリ文に基づいて UNLOAD コストを見積もります。

  3. アクセスパターンの評価:エクスポートされたデータのアクセス方法を検討し、不要なデータ移行による追加コストを回避します。

参考情報

外部ストレージから CSV またはその他のオープンソース形式のデータを MaxCompute にインポートする方法については、「LOAD」をご参照ください。