All Products
Search
Document Center

MaxCompute:UNLOAD

Last Updated:Jul 30, 2026

Perintah UNLOAD mengekspor data dari proyek MaxCompute ke penyimpanan eksternal, seperti Object Storage Service (OSS) atau Hologres, untuk digunakan oleh mesin komputasi lainnya.

Izin

  • Izin MaxCompute: Akun yang digunakan untuk operasi ini harus memiliki izin baca (Select) pada tabel yang akan diekspor. Untuk informasi lebih lanjut tentang cara memberikan izin, lihat Izin MaxCompute.

  • Izin penyimpanan eksternal: Sebelum mengekspor data dari MaxCompute ke penyimpanan eksternal, Anda harus memberikan izin kepada MaxCompute untuk mengakses penyimpanan tersebut, yaitu OSS atau Hologres.

    • Otorisasi OSS: Otorisasi satu klik didukung untuk keamanan yang lebih tinggi. Untuk informasi lebih lanjut, lihat Solusi otorisasi untuk mengakses sumber data eksternal. Contoh berikut menggunakan otorisasi satu klik dengan nama role AliyunODPSDefaultRole.

    • Otorisasi Hologres: Untuk menyelesaikan otorisasi, buat RAM role, berikan izin akses ke MaxCompute, lalu tambahkan role tersebut ke instans Hologres. Untuk informasi lebih lanjut, lihat Buat tabel eksternal Hologres (mode STS).

Mengekspor data ke penyimpanan eksternal

Perintah UNLOAD menggunakan mode append. Jika Anda mengekspor data ke jalur tujuan yang sama beberapa kali, sistem tidak menimpa file yang sudah ada, melainkan membuat file baru di jalur tersebut. Untuk menimpa data, Anda harus membersihkan secara manual jalur tujuan sebelum menjalankan perintah UNLOAD.

Mengekspor data ke OSS

Mengekspor data dalam format teks (CSV atau TSV)

Metode ini menggunakan StorageHandler bawaan untuk mengekspor data. Ekstensi nama file .csv atau .tsv ditambahkan ke file output secara default.

Sintaks

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

Konfigurasi inti

Item konfigurasi

Deskripsi

oss_location

Jalur tujuan di OSS. Formatnya adalah oss://<oss_endpoint>/<bucket>/<object_path>.

StorageHandler

Prosesor bawaan:

  • 'com.aliyun.odps.CsvStorageHandler': mengekspor data dalam format CSV.

  • 'com.aliyun.odps.TsvStorageHandler': mengekspor data dalam format TSV.

SERDEPROPERTIES

Digunakan untuk mengonfigurasi properti ekspor. Properti yang paling umum adalah:

  • 'odps.properties.rolearn': Wajib diisi. Nama Sumber Daya Alibaba Cloud (ARN) dari RAM role yang digunakan untuk mengakses OSS.

  • 'odps.text.option.gzip.output.enabled'='true': Mengompres file yang diekspor dalam format GZIP.

Contoh

Contoh 1: Mengekspor data dalam format CSV dan mengompres data menjadi file GZIP

Mengekspor data dari tabel sale_detail dalam proyek MaxCompute ke OSS. Kode berikut menunjukkan data dalam tabel sale_detail:

-- Bidang partisi: 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   |
+------------+-------------+-------------+------------+------------+

Prosedur:

  1. Di sisi OSS: Masuk ke Konsol OSS, buat folder mc-unload/data_location/ di bucket OSS yang berada di wilayah oss-cn-hangzhou, lalu susun jalur OSS. Untuk informasi lebih lanjut tentang cara membuat bucket OSS, lihat Buat bucket di konsol. Susun jalur OSS berdasarkan informasi bucket, wilayah, dan endpoint. Contohnya:

    oss://oss-cn-hangzhou-internal.aliyuncs.com/mc-unload/data_location
  2. Di sisi MaxCompute: Masuk ke Klien MaxCompute dan jalankan perintah UNLOAD.

    Metode 1: Gunakan kueri SELECT

    -- Atur jumlah data yang dibaca dari tabel MaxCompute oleh satu worker menjadi 256 MB. Ini secara tidak langsung mengontrol jumlah file yang diekspor.
    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'
    );

    Metode 2: Langsung tentukan nama tabel (tidak dikenai biaya kueri)

    -- Atur jumlah data yang dibaca dari tabel MaxCompute oleh satu worker menjadi 256 MB. Ini secara tidak langsung mengontrol jumlah file yang diekspor.
    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. Verifikasi hasil: Masuk ke Konsol OSS dan lihat data yang diekspor di jalur OSS tujuan. File yang diekspor berformat CSV dan dikompres menggunakan GZIP.

Contoh 2: Mengekspor data partisi dalam format TSV dan mengompres data

Mengekspor data dari partisi dengan sale_date='2013' dan region='china' dari tabel sale_detail dalam format TSV dan mengompres data menggunakan GZIP.

-- Bidang partisi: 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   |
+------------+-------------+-------------+------------+------------+

Prosedur:

  1. Di sisi OSS: Masuk ke Konsol OSS, buat folder mc-unload/data_location/ di bucket OSS yang berada di wilayah oss-cn-hangzhou, lalu susun jalur OSS. Untuk informasi lebih lanjut tentang cara membuat bucket OSS, lihat Buat bucket di konsol. Susun jalur OSS berdasarkan informasi bucket, wilayah, dan endpoint. Contohnya:

    oss://oss-cn-hangzhou-internal.aliyuncs.com/mc-unload/data_location
  2. Di sisi MaxCompute: Masuk ke Klien MaxCompute dan jalankan perintah 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. Verifikasi hasil: Masuk ke Konsol Manajemen OSS dan lihat hasil impor di jalur OSS target. File yang diekspor adalah file terkompresi GZIP dalam format TSV.

Mengekspor data dalam format open source (seperti Parquet atau ORC)

Metode ini mendukung ekspor data ke berbagai format penyimpanan kolom atau format data terstruktur open-source.

Sintaks

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>')];

Konfigurasi inti

Item konfigurasi

Deskripsi

oss_location

Jalur tujuan di OSS. Formatnya adalah oss://<oss_endpoint>/<bucket>/<object_path>.

serde_class

Menentukan pustaka serialisasi dan deserialisasi. Misalnya, gunakan org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe untuk Parquet.

SERDEPROPERTIES

'odps.properties.rolearn': Wajib diisi. ARN dari RAM role yang digunakan untuk mengakses OSS.

file_format

Wajib diisi. Menentukan format file, seperti PARQUET, ORC, TEXTFILE, atau JSON.

PROPERTIES

- 'mcfed.parquet.compression'='SNAPPY': Menentukan format kompresi untuk file Parquet. SNAPPY dan LZO didukung.
- 'odps.text.option.gzip.output.enabled'='true': Menentukan kompresi GZIP untuk TextFile.

Format dan metode kompresi yang didukung

Format file

Format kompresi yang didukung

Deskripsi

PARQUET

SNAPPY, LZO

Format penyimpanan kolom yang cocok untuk kueri analitis.

ORC

SNAPPY, LZO

Format penyimpanan kolom yang cocok untuk ekosistem Hadoop.

TEXTFILE

GZIP

Format teks yang mendukung pemisah kustom.

RCFILE

-

Format penyimpanan hibrida baris-kolom.

SEQUENCEFILE

-

Format file urutan Hadoop.

AVRO

-

Format serialisasi data.

JSON

-

Format JSON.

Contoh

Contoh 1: Mengekspor data dalam format PARQUET dan mengompres data menggunakan SNAPPY

Ekspor data dari tabel sale_detail dalam proyek MaxCompute ke OSS. Kode berikut menunjukkan data dalam tabel sale_detail:

-- Bidang partisi: 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   |
+------------+-------------+-------------+------------+------------+

Prosedur:

  1. Di sisi OSS: Masuk ke Konsol OSS, buat folder mc-unload/data_location/ di bucket OSS yang berada di wilayah oss-cn-hangzhou, lalu susun jalur OSS. Untuk informasi lebih lanjut tentang cara membuat bucket OSS, lihat Buat bucket di konsol. Susun jalur OSS berdasarkan informasi bucket, wilayah, dan endpoint. Contohnya:

    oss://oss-cn-hangzhou-internal.aliyuncs.com/mc-unload/data_location
  2. Di sisi MaxCompute: Masuk ke Klien MaxCompute dan jalankan perintah UNLOAD.

    -- Atur jumlah data yang dibaca dari tabel MaxCompute oleh satu worker menjadi 256 MB. Ini secara tidak langsung mengontrol jumlah file yang diekspor.
    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. Hasil Verifikasi: Masuk ke Konsol Manajemen OSS dan periksa hasil impor di path OSS tujuan. File diekspor dalam format PARQUET dan dikompresi menggunakan SNAPPY.

Contoh 2: Mengekspor data partisi dalam format PARQUET

Ekspor data dari partisi dengan sale_date='2013' dan region='china' dari tabel MaxCompute sale_detail dalam format PARQUET dan kompres data menggunakan SNAPPY. Kode berikut menunjukkan data dalam tabel sale_detail:

-- Bidang partisi: 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   |
+------------+-------------+-------------+------------+------------+

Prosedur:

  1. Di sisi OSS: Masuk ke Konsol OSS, buat folder mc-unload/data_location/ di bucket OSS yang berada di wilayah oss-cn-hangzhou, lalu susun jalur OSS. Untuk informasi lebih lanjut tentang cara membuat bucket OSS, lihat Buat bucket di konsol. Susun jalur OSS berdasarkan informasi bucket, wilayah, dan endpoint. Contohnya:

    oss://oss-cn-hangzhou-internal.aliyuncs.com/mc-unload/data_location
  2. Di sisi MaxCompute: Masuk ke Klien MaxCompute dan jalankan perintah UNLOAD.

    -- Atur jumlah data yang dibaca dari tabel MaxCompute oleh satu worker menjadi 256 MB. Ini secara tidak langsung mengontrol jumlah file yang diekspor.
    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. Verifikasi hasil: Masuk ke Konsol OSS dan lihat data yang diekspor di jalur OSS tujuan. File yang diekspor berformat PARQUET dan dikompres menggunakan SNAPPY.

Contoh 3: Mengekspor data dalam format TEXTFILE dan menentukan pemisah

Ekspor data dari tabel sale_detail ke file TXT dan gunakan koma (,) sebagai pemisah.

-- Bidang partisi: 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   |
+------------+-------------+-------------+------------+------------+

Prosedur:

  1. Di sisi OSS: Masuk ke Konsol OSS, buat folder mc-unload/data_location/ di bucket OSS yang berada di wilayah oss-cn-hangzhou, lalu susun jalur OSS. Untuk informasi lebih lanjut tentang cara membuat bucket OSS, lihat Buat bucket di konsol. Susun jalur OSS berdasarkan informasi bucket, wilayah, dan endpoint. Contohnya:

    oss://oss-cn-hangzhou-internal.aliyuncs.com/mc-unload/data_location
  2. Di sisi MaxCompute: Masuk ke Klien MaxCompute dan jalankan perintah UNLOAD.

    -- Atur jumlah data yang akan dibaca dari tabel MaxCompute oleh satu worker menjadi 256 MB. Ini secara tidak langsung mengontrol jumlah file yang diekspor.
    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. Verifikasi hasil: Masuk ke Konsol OSS dan lihat data yang diekspor di jalur OSS tujuan. File yang diekspor berformat TXT dan menggunakan koma sebagai pemisah.

Menyesuaikan awalan, akhiran, dan ekstensi nama file

Saat menggunakan perintah UNLOAD untuk mengekspor data ke OSS, Anda dapat memanfaatkan properti dalam PROPERTIES atau SERDEPROPERTIES guna menyesuaikan awalan, akhiran, dan ekstensi file output.

Sintaks

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>',...)];

Konfigurasi inti

property_name/tbproperty_name

Deskripsi

Nilai contoh

odps.external.data.output.prefix

Awalan nama file. Dapat berisi huruf, angka, dan garis bawah (_). Panjang awalan antara 1 hingga 10 karakter.

'mc_'

odps.external.data.output.suffix

Akhiran nama file. Dapat berisi huruf, angka, dan garis bawah (_).

'_hangzhou'

odps.external.data.enable.extension

Menentukan apakah akan menampilkan ekstensi default seperti .tx dan .parquet.

'true'

odps.external.data.output.explicit.extension

Ekstensi nama file kustom. Properti ini memiliki prioritas lebih tinggi daripada ekstensi default.

'jsonl'

Referensi akhiran

Tabel berikut menjelaskan ekstensi yang dihasilkan secara otomatis untuk berbagai tabel eksternal saat Anda mengatur parameter odps.external.data.enable.extension=true.

Format file

SerDe

Akhiran

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

Catatan

Saat mengekspor data yang dikompresi dalam format SNAPPY atau LZO, ekstensi .snappy atau .lzo tidak muncul dalam nama file yang diekspor.

Contoh

Contoh 1: Mengekspor file format TEXTFILE dan menambahkan awalan serta akhiran

Mengekspor data dari tabel sale_detail dalam proyek MaxCompute ke OSS sebagai file TXT dengan nama file dalam format mc_<dihasilkan-sistem>_beijing.txt. Kode berikut menunjukkan data dalam tabel sale_detail:

-- Bidang partisi: 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   |
+------------+-------------+-------------+------------+------------+

Prosedur:

  1. Di sisi OSS: Masuk ke Konsol OSS, buat folder mc-unload/data_location/ di bucket OSS yang berada di wilayah oss-cn-hangzhou, lalu susun jalur OSS. Untuk informasi lebih lanjut tentang cara membuat bucket OSS, lihat Buat bucket di konsol. Susun jalur OSS berdasarkan informasi bucket, wilayah, dan endpoint. Contohnya:

    oss://oss-cn-hangzhou-internal.aliyuncs.com/mc-unload/data_location
  2. Di sisi MaxCompute: Masuk ke Klien MaxCompute dan jalankan perintah 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. Verifikasi hasil: Masuk ke Konsol OSS dan periksa data yang diekspor di jalur OSS tujuan. Nama file yang diekspor adalah mc_<dihasilkan-sistem>_beijing.txt.

Contoh 2: Mengekspor file format JSON dan menyesuaikan ekstensi nama file

Mengekspor data dari tabel sale_detail dalam proyek MaxCompute ke OSS sebagai file JSON dengan nama file dalam format mc_<nama file yang dihasilkan sistem>_beijing.json. Kode berikut menunjukkan data dalam tabel sale_detail:

-- Bidang partisi: 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   |
+------------+-------------+-------------+------------+------------+

Prosedur:

  1. Di sisi OSS: Masuk ke Konsol OSS, buat folder mc-unload/data_location/ di bucket OSS yang berada di wilayah oss-cn-hangzhou, lalu susun jalur OSS. Untuk informasi lebih lanjut tentang cara membuat bucket OSS, lihat Buat bucket di konsol. Susun jalur OSS berdasarkan informasi bucket, wilayah, dan endpoint. Contohnya:

    oss://oss-cn-hangzhou-internal.aliyuncs.com/mc-unload/data_location
  2. Di sisi MaxCompute: Masuk ke Klien MaxCompute dan jalankan perintah 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. Verifikasi hasil: Masuk ke Konsol OSS dan periksa data yang diekspor di jalur OSS tujuan. Nama file yang diekspor adalah mc_<nama file yang dihasilkan sistem>_beijing.json.

Mengekspor data ke Hologres

Batasan

  • Otorisasi tanda tangan ganda: Otorisasi tanda tangan ganda tidak didukung untuk mengekspor data ke Hologres.

  • Tabel partisi: Anda tidak dapat mengekspor data ke tabel partisi Hologres.

  • Pemetaan tipe: Tipe data bidang dalam tabel Hologres tujuan harus sesuai dengan tipe data bidang dalam tabel MaxCompute. Untuk informasi lebih lanjut, lihat Pemetaan tipe data antara MaxCompute dan Hologres.

Sintaks

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

Konfigurasi inti

Item konfigurasi

Deskripsi

hologres_location

String koneksi Java Database Connectivity (JDBC) dari tabel Hologres tujuan. Formatnya adalah 'jdbc:postgresql://<endpoint>:<port>/<database>?ApplicationName=MaxCompute&[currentSchema=<schema>&][useSSL={true|false}&]table=<holo_table_name>/'.

StorageHandler

Menentukan penanganan bawaan. Nilainya tetap com.aliyun.odps.jdbc.JdbcStorageHandler, yang menggunakan metode koneksi JdbcStorageHandler.

SERDEPROPERTIES

Parameter ini harus berisi tiga properti berikut:

  • 'odps.properties.rolearn'='<ram_arn>': ARN dari RAM role yang digunakan untuk mengakses Hologres.

  • 'mcfed.mapreduce.jdbc.driver.class'='org.postgresql.Driver': Driver JDBC Hologres.

  • 'odps.federation.jdbc.target.db.type'='holo': Jenis database tujuan.

Contoh

Mengekspor data dari tabel MaxCompute data_test ke tabel Hologres mc_2_holo. Kode berikut menunjukkan data dalam tabel data_test:

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

Prosedur:

  1. Di sisi Hologres: Buat tabel tujuan mc_2_holo di Hologres.

    CREATE TABLE mc_2_holo (id INT, name TEXT);
  2. Di sisi MaxCompute: Masuk ke Klien MaxCompute dan jalankan perintah 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. Verifikasi hasil: Lihat data yang diekspor di Hologres.

    SELECT * FROM mc_2_holo;

    Hasil berikut dikembalikan:

    id	name
    4	Gegegegr
    3	rgege

Penagihan

  • Penagihan perintah

    • Perintah UNLOAD itu sendiri tidak dikenai biaya.

    • Penagihan untuk klausa kueri: Klausa kueri dalam perintah UNLOAD melakukan pemindaian data dan menggunakan sumber daya komputasi untuk menghasilkan data yang diekspor. Oleh karena itu, klausa kueri dikenai biaya seperti pekerjaan SQL standar.

  • Estimasi biaya

    Menyimpan data terstruktur di OSS dan menyimpan data di MaxCompute masing-masing memiliki kelebihannya. Untuk mengurangi biaya saat mengekspor data dari MaxCompute, lakukan estimasi biaya komprehensif yang mencakup biaya penyimpanan langsung, perubahan volume data, dan biaya kueri selanjutnya.

    • Biaya penyimpanan langsung

      • MaxCompute menyediakan kelas penyimpanan Standard, Infrequent Access (IA), dan Archive. Semua kelas penyimpanan mendukung penyimpanan redundan zona. Untuk informasi lebih lanjut tentang penagihan penyimpanan, lihat Biaya penyimpanan.

      • OSS juga menyediakan kelas penyimpanan Standard, IA, dan Archive Storage, yang semuanya mendukung penyimpanan redundan zona. Harga setiap kelas penyimpanan sama dengan yang ada di MaxCompute. OSS juga menyediakan kelas penyimpanan Cold Archive dan Deep Cold Archive yang lebih murah tetapi tidak mendukung penyimpanan redundan zona. Untuk informasi lebih lanjut, lihat Biaya penyimpanan OSS.

    • Perubahan volume data

      Data yang diimpor ke MaxCompute memiliki rasio kompresi sekitar 5:1. Penagihan didasarkan pada jumlah data setelah dikompresi.

      Untuk data yang disimpan di OSS, Anda harus menentukan dan mempertahankan format data serta metode kompresi. Untuk informasi lebih lanjut tentang format data dan metode kompresi yang didukung untuk mengekspor data dari MaxCompute, lihat Tabel eksternal OSS. Jika data tidak dikompresi, volume data akan meningkat setelah diekspor ke OSS.

    • Biaya kueri selanjutnya

      Data yang disimpan di MaxCompute dapat dikueri kapan saja. Namun, jika Anda menggunakan kelas penyimpanan seperti Infrequent Access atau Archive, Anda harus membayar biaya akses data tambahan untuk membaca data. Jika data disimpan di kelas penyimpanan OSS non-standar seperti Infrequent Access, Archive, atau Cold Archive, biaya pengambilan data juga dikenakan. Jika data dihapus atau diambil sebelum periode penyimpanan minimum yang dipersyaratkan oleh kelas penyimpanan terpenuhi, Anda mungkin perlu membayar biaya penghapusan dini.

Referensi

Untuk mengimpor data dalam format CSV atau format open-source lainnya dari penyimpanan eksternal ke MaxCompute, lihat LOAD.