All Products
Search
Document Center

MaxCompute:UNLOAD

Last Updated:Mar 25, 2026

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

Persyaratan izin

  • Izin MaxCompute: Akun Anda harus memiliki izin Select pada tabel MaxCompute yang akan diekspor. Untuk instruksi pemberian izin, lihat Izin MaxCompute.

  • Izin penyimpanan eksternal: Sebelum mengekspor data dari MaxCompute ke penyimpanan eksternal, Anda harus mengotorisasi MaxCompute untuk mengakses penyimpanan tersebut, seperti OSS atau Hologres.

    • Otorisasi OSS: OSS mendukung metode otorisasi satu klik yang menyediakan keamanan lebih tinggi. Untuk informasi selengkapnya, lihat Otorisasi peran RAM dalam mode STS. Contoh dalam topik ini menggunakan metode otorisasi satu klik dengan peran RAM bernama AliyunODPSDefaultRole.

    • Otorisasi Hologres: Untuk menyelesaikan otorisasi, Anda harus membuat peran RAM, memberikan izin akses ke Hologres, dan menambahkan peran tersebut ke instans Hologres Anda. Untuk informasi selengkapnya, lihat Buat tabel eksternal Hologres (mode STS).

Ekspor ke penyimpanan eksternal

Perintah UNLOAD menggunakan mode append. Jika Anda mengekspor data berulang kali ke jalur tujuan yang sama, sistem akan menghasilkan file baru di jalur tersebut alih-alih menimpa file yang sudah ada. Untuk menimpa data, kosongkan jalur tujuan sebelum menjalankan perintah UNLOAD.

Ekspor ke OSS

Format teks (CSV atau TSV)

Metode ini menggunakan StorageHandler bawaan untuk mengekspor data dan secara default menambahkan ekstensi .csv atau .tsv ke file.

Sintaks

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

Parameter utama

Parameter

Deskripsi

oss_location

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

StorageHandler

Menentukan penanganan bawaan:

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

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

SERDEPROPERTIES

Mengonfigurasi properti ekspor. Properti paling umum adalah:

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

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

Contoh

Contoh 1: Ekspor sebagai CSV terkompresi GZIP

Ekspor data dari tabel sale_detail dalam proyek MaxCompute ke OSS. Data sampel berikut berasal dari 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 OSS: Masuk ke Konsol OSS, buat direktori mc-unload/data_location/ di bucket di wilayah oss-cn-hangzhou, lalu susun jalur OSS. Untuk informasi lebih lanjut tentang cara membuat bucket, lihat Buat bucket di konsol. Susun jalur OSS berdasarkan informasi bucket, wilayah, dan titik akhir:

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

    Metode 1: Gunakan kueri SELECT

    -- Atur jumlah data yang dapat dibaca oleh satu worker dari tabel MaxCompute menjadi 256 MB. Pengaturan ini mengontrol jumlah file output.
    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: Tentukan nama tabel langsung (tidak dikenai biaya kueri)

    -- Atur jumlah data yang dapat dibaca oleh satu worker dari tabel MaxCompute menjadi 256 MB. Pengaturan ini mengontrol jumlah file output.
    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 periksa file yang diekspor di jalur tujuan OSS. Data diekspor dalam format CSV dan dikompresi dalam format GZIP.

Contoh 2: Ekspor data partisi sebagai TSV terkompresi

Ekspor data dari partisi sale_date='2013' dan region='china' dari tabel sale_detail dalam format TSV dan kompres dengan 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 OSS: Masuk ke Konsol OSS, buat direktori mc-unload/data_location/ di bucket di wilayah oss-cn-hangzhou, lalu susun jalur OSS. Untuk informasi lebih lanjut tentang cara membuat bucket, lihat Buat bucket di konsol. Susun jalur OSS berdasarkan informasi bucket, wilayah, dan titik akhir:

    oss://oss-cn-hangzhou-internal.aliyuncs.com/mc-unload/data_location
  2. Di 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 OSS dan periksa file yang diekspor di jalur tujuan OSS. Data diekspor dalam format TSV dan dikompresi dalam format GZIP.

Format open source (Parquet atau ORC)

Metode ini mendukung ekspor data ke berbagai format open source, seperti format penyimpanan kolom dan data terstruktur.

Sintaks

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

Parameter utama

Parameter

Deskripsi

oss_location

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

serde_class

Menentukan library serialisasi/deserialisasi (SerDe), seperti org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe untuk Parquet.

SERDEPROPERTIES

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

file_format

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

PROPERTIES

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

Format dan kompresi yang didukung

Format file

Kodek 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 pembatas kustom.

RCFILE

-

Format penyimpanan hibrida baris-kolom.

SEQUENCEFILE

-

Format file urutan Hadoop.

AVRO

-

Format serialisasi data.

JSON

-

Format JSON.

Contoh

Contoh 1: Ekspor sebagai Parquet terkompresi SNAPPY

Ekspor data dari tabel sale_detail dalam proyek MaxCompute ke OSS. Data sampel berikut berasal dari 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 OSS: Masuk ke Konsol OSS, buat direktori mc-unload/data_location/ di bucket di wilayah oss-cn-hangzhou, lalu susun jalur OSS. Untuk informasi lebih lanjut tentang cara membuat bucket, lihat Buat bucket di konsol. Susun jalur OSS berdasarkan informasi bucket, wilayah, dan titik akhir:

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

    -- Atur jumlah data yang dapat dibaca oleh satu worker dari tabel MaxCompute menjadi 256 MB. Pengaturan ini mengontrol jumlah file output.
    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. Verifikasi hasil: Masuk ke Konsol OSS dan periksa file yang diekspor di jalur tujuan OSS. Data diekspor dalam format PARQUET dan dikompresi menggunakan SNAPPY.

Contoh 2: Ekspor data partisi sebagai Parquet

Ekspor data dari tabel sale_detail di MaxCompute pada partisi sale_date='2013' dan region='china' ke format PARQUET dengan kompresi SNAPPY. Data dalam sale_detail adalah sebagai berikut:

-- 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 OSS: Masuk ke Konsol OSS, buat direktori mc-unload/data_location/ di bucket di wilayah oss-cn-hangzhou, lalu susun jalur OSS. Untuk informasi lebih lanjut tentang cara membuat bucket, lihat Buat bucket di konsol. Susun jalur OSS berdasarkan informasi bucket, wilayah, dan titik akhir:

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

    -- Atur jumlah data yang dapat dibaca oleh satu worker dari tabel MaxCompute menjadi 256 MB. Pengaturan ini mengontrol jumlah file output.
    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 periksa file yang diekspor di jalur tujuan OSS. Data diekspor dalam format PARQUET dan dikompresi menggunakan SNAPPY.

Contoh 3: Ekspor file teks dengan pembatas kustom

Ekspor data dari tabel sale_detail sebagai file TXT dan tentukan koma sebagai pembatas.

-- 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 OSS: Masuk ke Konsol OSS, buat direktori mc-unload/data_location/ di bucket di wilayah oss-cn-hangzhou, lalu susun jalur OSS. Untuk informasi lebih lanjut tentang cara membuat bucket, lihat Buat bucket di konsol. Susun jalur OSS berdasarkan informasi bucket, wilayah, dan titik akhir:

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

    -- Atur jumlah data yang dapat dibaca oleh satu worker dari tabel MaxCompute menjadi 256 MB. Pengaturan ini mengontrol jumlah file output.
    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 periksa file yang diekspor di jalur tujuan OSS. File yang diekspor berformat TXT, dan datanya dipisahkan oleh koma.

Menyesuaikan nama file

Saat melakukan UNLOAD ke OSS, Anda dapat menggunakan properti dalam PROPERTIES atau SERDEPROPERTIES untuk menyesuaikan awalan, akhiran, dan ekstensi file output.

Sintaks

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

Parameter utama

property_name/tbproperty_name

Deskripsi

Nilai contoh

odps.external.data.output.prefix

Awalan nama file terdiri dari 1 hingga 10 karakter, berisi huruf, angka, dan garis bawah (_).

'mc_'

odps.external.data.output.suffix

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

'_hangzhou'

odps.external.data.enable.extension

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

'true'

odps.external.data.output.explicit.extension

Ekstensi file kustom yang menggantikan ekstensi default.

'jsonl'

Ekstensi

Ekstensi file untuk berbagai tabel eksternal dihasilkan secara otomatis sebagai berikut ketika parameter odps.external.data.enable.extension=true diatur.

Format file

SerDe

Ekstensi

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 dengan kompresi SNAPPY atau LZO, ekstensi file .snappy atau .lzo tidak ditambahkan secara otomatis ke nama file.

Contoh

Contoh 1: Sesuaikan nama file teks

Ekspor data dari tabel sale_detail dalam proyek MaxCompute ke file TXT di OSS, dengan nama mc_<dihasilkan_sistem>_beijing.txt. Data dalam sale_detail adalah sebagai berikut:

-- 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 OSS: Masuk ke Konsol OSS, buat direktori mc-unload/data_location/ di bucket di wilayah oss-cn-hangzhou, lalu susun jalur OSS. Untuk informasi lebih lanjut tentang cara membuat bucket, lihat Buat bucket di konsol. Susun jalur OSS berdasarkan informasi bucket, wilayah, dan titik akhir:

    oss://oss-cn-hangzhou-internal.aliyuncs.com/mc-unload/data_location
  2. Di 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 file yang diekspor di jalur tujuan OSS. Nama file yang diekspor adalah mc_<nama_dihasilkan_sistem>_beijing.txt.

Contoh 2: Sesuaikan ekstensi file JSON

Ekspor data dari tabel sale_detail dalam proyek MaxCompute ke OSS sebagai file JSON dengan nama dalam format mc_<nama_file_dihasilkan_sistem>_beijing.json. Data dalam sale_detail adalah sebagai berikut:

-- 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 OSS: Masuk ke Konsol OSS, buat direktori mc-unload/data_location/ di bucket di wilayah oss-cn-hangzhou, lalu susun jalur OSS. Untuk informasi lebih lanjut tentang cara membuat bucket, lihat Buat bucket di konsol. Susun jalur OSS berdasarkan informasi bucket, wilayah, dan titik akhir:

    oss://oss-cn-hangzhou-internal.aliyuncs.com/mc-unload/data_location
  2. Di 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 file yang diekspor di jalur tujuan OSS. Nama file yang diekspor adalah mc_<nama-dihasilkan-sistem>_beijing.json.

Ekspor ke Hologres

Batasan

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

  • Tabel partisi: Mengekspor data ke tabel partisi di Hologres tidak didukung.

  • Pemetaan tipe data: Tipe data kolom di tabel Hologres tujuan harus sesuai dengan tipe data di tabel MaxCompute sumber. Untuk informasi selengkapnya, 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>',...)];

Parameter utama

Parameter

Deskripsi

hologres_location

String koneksi JDBC untuk 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 untuk menggunakan metode koneksi JdbcStorageHandler.

SERDEPROPERTIES

Harus mencakup tiga properti berikut:

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

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

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

Contoh

Ekspor tabel MaxCompute data_test ke tabel Hologres mc_2_holo. Data dalam data_test adalah sebagai berikut:

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

Prosedur:

  1. Di Hologres: Buat tabel tujuan bernama mc_2_holo.

    CREATE TABLE mc_2_holo (id INT, name TEXT);
  2. Di 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

  • Biaya Perintah

    • Perintah UNLOAD itu sendiri tidak dikenai biaya.

    • Biaya klausa kueri: Klausa kueri dalam perintah UNLOAD memindai data dan mengonsumsi sumber daya komputasi untuk menghasilkan data yang diekspor. Oleh karena itu, klausa kueri ditagih sebagai pekerjaan SQL standar.

  • Estimasi biaya

    Menyimpan data di OSS versus MaxCompute melibatkan pertimbangan biaya yang berbeda. Untuk menentukan apakah mengekspor data dari MaxCompute hemat biaya, Anda harus memperkirakan total biaya, yang mencakup biaya penyimpanan langsung, perubahan volume data, dan biaya kueri berikutnya.

    • Biaya penyimpanan langsung

      • MaxCompute menawarkan kelas penyimpanan Standard, Akses Jarang, dan arsip, semuanya mendukung penyimpanan redundan zona. Untuk informasi lebih lanjut tentang penagihan penyimpanan, lihat Biaya penyimpanan.

      • OSS juga menyediakan kelas penyimpanan Standard, Akses Jarang, dan arsip yang mendukung penyimpanan redundan zona dan diberi harga serupa dengan penyimpanan MaxCompute. Selain itu, OSS menawarkan kelas penyimpanan arsip dingin dan arsip dingin ekstrem berbiaya lebih rendah yang tidak mendukung penyimpanan redundan zona. Untuk informasi selengkapnya, lihat Biaya penyimpanan OSS.

    • Perubahan volume data

      MaxCompute mengompresi data yang diimpor dengan rasio sekitar 5:1, dan Anda ditagih berdasarkan ukuran data terkompresi.

      Saat menyimpan data di OSS, Anda harus menentukan dan mengelola format data serta metode kompresi. Untuk informasi tentang format data dan metode kompresi yang didukung MaxCompute untuk ekspor data, lihat Tabel eksternal OSS. Jika Anda tidak menerapkan kompresi, volume data akan meningkat saat diekspor ke OSS.

    • Biaya kueri berikutnya

      Data yang disimpan di MaxCompute dapat dikueri kapan saja, tetapi biaya akses data tambahan berlaku untuk penyimpanan Akses Jarang dan arsip. Saat membaca data dari kelas penyimpanan non-standar di OSS, biaya pengambilan data atau biaya penghapusan dini mungkin berlaku.

Dokumen terkait

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