UNLOAD コマンドは、MaxCompute プロジェクトから Object Storage Service (OSS) や Hologres などの外部ストレージにデータをエクスポートし、他のコンピュートエンジンで利用できるようにします。
権限
MaxCompute 権限:操作に使用するアカウントには、エクスポート対象のテーブルデータに対する読み取り (Select) 権限が必要です。権限の付与方法の詳細については、「MaxCompute 権限」をご参照ください。
外部ストレージ権限:MaxCompute から外部ストレージにデータをエクスポートする前に、MaxCompute に外部ストレージ (OSS または Hologres) へのアクセス権限を付与する必要があります。
OSS 権限付与:より高いセキュリティを実現するために、ワンクリック認可がサポートされています。詳細については、「外部データソースへのアクセスに関する権限付与ソリューション」をご参照ください。この例では、ワンクリック認可を使用し、ロール名は
AliyunODPSDefaultRoleです。Hologres 権限付与:権限付与を完了するには、RAM ロールを作成し、そのロールに MaxCompute へのアクセス権限を付与し、Hologres インスタンスに追加する必要があります。詳細については、「Hologres 外部テーブルの作成 (STS モード)」をご参照ください。
外部ストレージへのデータエクスポート
UNLOAD コマンドは追加モードを使用します。同じ宛先パスに複数回データをエクスポートする場合、システムは既存のファイルを上書きせず、そのパスに新しいファイルを作成します。データを上書きするには、UNLOAD コマンドを実行する前に、手動で宛先パスをクリアする必要があります。
OSS へのデータエクスポート
テキスト形式 (CSV または TSV) でのデータエクスポート
このメソッドは、組み込みの StorageHandler を使用してデータをエクスポートします。デフォルトでは、出力ファイルに .csv または .tsv のファイル名拡張子が追加されます。
構文
UNLOAD FROM {<select_statement>|<table_name> [PARTITION (<pt_spec>)]}
INTO | OVERWRITE
LOCATION <oss_location>
STORED BY <StorageHandler>
[WITH SERDEPROPERTIES ('<property_name>'='<property_value>',...)];主要な設定
設定項目 | 説明 |
oss_location | OSS 内の宛先パス。形式は |
StorageHandler | 組み込みプロセッサ:
|
SERDEPROPERTIES | エクスポートプロパティを設定するために使用します。最も一般的なプロパティは次のとおりです:
|
例
例 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 |
+------------+-------------+-------------+------------+------------+操作手順:
OSS 側:OSS コンソールにログインし、
oss-cn-hangzhouリージョンにある OSS バケットにmc-unload/data_location/フォルダを作成し、OSS パスを構築します。OSS バケットの作成方法の詳細については、「コンソールでのバケットの作成」をご参照ください。バケット、リージョン、エンドポイントの情報に基づいて OSS パスを構築します。例:oss://oss-cn-hangzhou-internal.aliyuncs.com/mc-unload/data_locationMaxCompute 側:MaxCompute クライアントにログインし、UNLOAD コマンドを実行します。
方法 1:SELECT クエリの使用
-- 1 つのワーカーが MaxCompute テーブルから読み取るデータ量を 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:テーブル名を直接指定 (クエリ料金は発生しません)
-- 1 つのワーカーが MaxCompute テーブルから読み取るデータ量を 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' );結果の検証:OSS コンソールにログインし、宛先の OSS パスでエクスポートされたデータを表示します。エクスポートされたファイルは CSV 形式で、GZIP を使用して圧縮されています。
例 2:パーティション分割されたデータを TSV 形式でエクスポートし、圧縮
sale_date='2013' および region='china' が指定されたパーティションのデータを sale_detail テーブルから 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 |
+------------+-------------+-------------+------------+------------+操作手順:
OSS 側:OSS コンソールにログインし、
oss-cn-hangzhouリージョンにある OSS バケットにmc-unload/data_location/フォルダを作成し、OSS パスを構築します。OSS バケットの作成方法の詳細については、「コンソールでのバケットの作成」をご参照ください。バケット、リージョン、エンドポイントの情報に基づいて OSS パスを構築します。例:oss://oss-cn-hangzhou-internal.aliyuncs.com/mc-unload/data_locationMaxCompute 側: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' );結果の検証:OSS 管理コンソールにログインし、ターゲットの OSS パスでインポート結果を表示します。エクスポートされたファイルは、TSV 形式の GZIP 圧縮ファイルです。
オープンソース形式 (Parquet や ORC など) でのデータエクスポート
このメソッドは、さまざまなオープンソースのカラムナストレージや構造化データ形式へのデータエクスポートをサポートしています。
構文
UNLOAD FROM {<select_statement>|<table_name> [PARTITION (<pt_spec>)]}
INTO | OVERWRITE
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 内の宛先パス。形式は |
serde_class | シリアル化・デシリアル化ライブラリを指定します。例えば、Parquet には |
SERDEPROPERTIES |
|
file_format | 必須。ファイル形式を指定します。例: |
PROPERTIES | - |
サポートされている形式と圧縮方法
ファイル形式 | サポートされている圧縮形式 | 説明 |
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 |
+------------+-------------+-------------+------------+------------+操作手順:
OSS 側:OSS コンソールにログインし、
oss-cn-hangzhouリージョンにある OSS バケットにmc-unload/data_location/フォルダを作成し、OSS パスを構築します。OSS バケットの作成方法の詳細については、「コンソールでのバケットの作成」をご参照ください。バケット、リージョン、エンドポイントの情報に基づいて OSS パスを構築します。例:oss://oss-cn-hangzhou-internal.aliyuncs.com/mc-unload/data_locationMaxCompute 側:MaxCompute クライアントにログインし、UNLOAD コマンドを実行します。
-- 1 つのワーカーが MaxCompute テーブルから読み取るデータ量を 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');検証結果:OSS 管理コンソールにログインし、ターゲットの OSS パスでインポート結果を表示します。エクスポートされたファイルは PARQUET 形式で、SNAPPY を使用して圧縮されています。
例 2:パーティション分割されたデータを PARQUET 形式でエクスポート
sale_date='2013' および region='china' が指定されたパーティションのデータを MaxCompute の sale_detail テーブルから 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 |
+------------+-------------+-------------+------------+------------+操作手順:
OSS 側:OSS コンソールにログインし、
oss-cn-hangzhouリージョンにある OSS バケットにmc-unload/data_location/フォルダを作成し、OSS パスを構築します。OSS バケットの作成方法の詳細については、「コンソールでのバケットの作成」をご参照ください。バケット、リージョン、エンドポイントの情報に基づいて OSS パスを構築します。例:oss://oss-cn-hangzhou-internal.aliyuncs.com/mc-unload/data_locationMaxCompute 側:MaxCompute クライアントにログインし、UNLOAD コマンドを実行します。
-- 1 つのワーカーが MaxCompute テーブルから読み取るデータ量を 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');結果の検証: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 |
+------------+-------------+-------------+------------+------------+操作手順:
OSS 側:OSS コンソールにログインし、
oss-cn-hangzhouリージョンにある OSS バケットにmc-unload/data_location/フォルダを作成し、OSS パスを構築します。OSS バケットの作成方法の詳細については、「コンソールでのバケットの作成」をご参照ください。バケット、リージョン、エンドポイントの情報に基づいて OSS パスを構築します。例:oss://oss-cn-hangzhou-internal.aliyuncs.com/mc-unload/data_locationMaxCompute 側:MaxCompute クライアントにログインし、UNLOAD コマンドを実行します。
-- 1 つのワーカーが MaxCompute テーブルから読み取るデータ量を 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');結果の検証:OSS コンソールにログインし、宛先の OSS パスでエクスポートされたデータを表示します。エクスポートされたファイルは TXT 形式で、区切り文字としてカンマを使用します。
ファイル名のプレフィックス、サフィックス、拡張子のカスタマイズ
UNLOAD コマンドを使用して OSS にデータをエクスポートする場合、PROPERTIES または SERDEPROPERTIES のプロパティを使用して、出力ファイルのプレフィックス、サフィックス、および拡張子をカスタマイズできます。
構文
UNLOAD FROM {<select_statement>|<table_name> [PARTITION (<pt_spec>)]}
INTO | OVERWRITE
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 | デフォルトの拡張子 ( | '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_<system-generated>_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 |
+------------+-------------+-------------+------------+------------+操作手順:
OSS 側:OSS コンソールにログインし、
oss-cn-hangzhouリージョンにある OSS バケットにmc-unload/data_location/フォルダを作成し、OSS パスを構築します。OSS バケットの作成方法の詳細については、「コンソールでのバケットの作成」をご参照ください。バケット、リージョン、エンドポイントの情報に基づいて OSS パスを構築します。例:oss://oss-cn-hangzhou-internal.aliyuncs.com/mc-unload/data_locationMaxCompute 側: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');結果の検証:OSS コンソールにログインし、宛先の OSS パスでエクスポートされたデータを表示します。エクスポートされたファイルの名前は
mc_<system-generated>_beijing.txtです。
例 2:JSON 形式のファイルをエクスポートし、ファイル名拡張子をカスタマイズ
MaxCompute プロジェクトの sale_detail テーブルから OSS に JSON ファイルとしてデータをエクスポートします。ファイル名は mc_<system-generated file name>_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 |
+------------+-------------+-------------+------------+------------+操作手順:
OSS 側:OSS コンソールにログインし、
oss-cn-hangzhouリージョンにある OSS バケットにmc-unload/data_location/フォルダを作成し、OSS パスを構築します。OSS バケットの作成方法の詳細については、「コンソールでのバケットの作成」をご参照ください。バケット、リージョン、エンドポイントの情報に基づいて OSS パスを構築します。例:oss://oss-cn-hangzhou-internal.aliyuncs.com/mc-unload/data_locationMaxCompute 側: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;結果の検証:OSS コンソールにログインし、宛先の OSS パスでエクスポートされたデータを表示します。エクスポートされたファイルの名前は
mc_<system-generated file name>_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 テーブルの Java Database Connectivity (JDBC) 接続文字列。形式は |
StorageHandler | 組み込みのハンドラを指定します。値は |
SERDEPROPERTIES | このパラメーターには、次の 3 つのプロパティを含める必要があります:
|
例
MaxCompute テーブル data_test から Hologres テーブル mc_2_holo にデータをエクスポートします。次のコードは、data_test テーブルのデータを示しています:
+------------+------+
| id | name |
+------------+------+
| 3 | rgege |
| 4 | Gegegegr |
+------------+------+操作手順:
Hologres 側:Hologres に宛先テーブル
mc_2_holoを作成します。CREATE TABLE mc_2_holo (id INT, name TEXT);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¤tSchema=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' );結果の検証:Hologres でエクスポートされたデータを表示します。
SELECT * FROM mc_2_holo;次の結果が返されます:
id name 4 Gegegegr 3 rgege
課金
コマンドの課金
UNLOAD コマンド自体は課金されません。
クエリ句の課金:UNLOAD コマンドのクエリ句は、データをスキャンし、コンピューティングリソースを使用してエクスポートデータを生成します。そのため、クエリ句は標準の SQL ジョブとして課金されます。
コストの見積もり
構造化データを OSS に保存することと、MaxCompute にデータを保存することには、それぞれ利点があります。MaxCompute からデータをエクスポートする際のコストを削減するには、直接ストレージコスト、データ量の変動、および後続のクエリコストを含む包括的なコスト見積もりを実行してください。
直接ストレージコスト
MaxCompute は、標準、低頻度アクセス (IA)、アーカイブのストレージクラスを提供します。すべてのストレージクラスはゾーン冗長ストレージをサポートしています。ストレージ課金の詳細については、「ストレージ料金」をご参照ください。
OSS も標準、IA、アーカイブのストレージクラスを提供しており、すべてゾーン冗長ストレージをサポートしています。各ストレージクラスの価格は MaxCompute と同じです。OSS はまた、より安価ですがゾーン冗長ストレージをサポートしない、コールドアーカイブおよびディープコールドアーカイブのストレージクラスも提供しています。詳細については、「OSS ストレージ料金」をご参照ください。
データ量の変動
MaxCompute にインポートされたデータは、約 5:1 の圧縮率を持ちます。課金は圧縮後のデータ量に基づきます。
OSS に保存されたデータについては、データ形式と圧縮方法を指定し、維持する必要があります。MaxCompute からのデータエクスポートでサポートされているデータ形式と圧縮方法の詳細については、「OSS 外部テーブル」をご参照ください。データが圧縮されていない場合、OSS にエクスポートされた後にデータ量は増加します。
後続のクエリコスト
MaxCompute に保存されたデータはいつでもクエリできます。ただし、低頻度アクセスやアーカイブなどのストレージクラスを使用する場合、データの読み取りに追加のデータアクセス料金を支払う必要があります。データが低頻度アクセス、アーカイブ、コールドアーカイブなどの非標準の OSS ストレージクラスに保存されている場合、データ取得料金も発生します。ストレージクラスで要求される最小保管期間が満たされる前にデータが削除または取得された場合、早期削除料金を支払う必要がある場合があります。
関連ドキュメント
外部ストレージから CSV または他のオープンソース形式のデータを MaxCompute にインポートする方法については、「LOAD」をご参照ください。