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 |
StorageHandler | Prosesor bawaan:
|
SERDEPROPERTIES | Digunakan untuk mengonfigurasi properti ekspor. Properti yang paling umum adalah:
|
Contoh
Contoh 1: Mengekspor data dalam format CSV dan mengompres data menjadi file GZIP
Contoh 2: Mengekspor data partisi dalam format TSV dan mengompres data
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:
Di sisi OSS: Masuk ke Konsol OSS, buat folder
mc-unload/data_location/di bucket OSS yang berada di wilayahoss-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_locationDi 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' );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:
Di sisi OSS: Masuk ke Konsol OSS, buat folder
mc-unload/data_location/di bucket OSS yang berada di wilayahoss-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_locationDi 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' );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 |
serde_class | Menentukan pustaka serialisasi dan deserialisasi. Misalnya, gunakan |
SERDEPROPERTIES |
|
file_format | Wajib diisi. Menentukan format file, seperti |
PROPERTIES | - |
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
Contoh 3: Mengekspor data dalam format TEXTFILE dan menentukan pemisah
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:
Di sisi OSS: Masuk ke Konsol OSS, buat folder
mc-unload/data_location/di bucket OSS yang berada di wilayahoss-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_locationDi 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');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:
Di sisi OSS: Masuk ke Konsol OSS, buat folder
mc-unload/data_location/di bucket OSS yang berada di wilayahoss-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_locationDi 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');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:
Di sisi OSS: Masuk ke Konsol OSS, buat folder
mc-unload/data_location/di bucket OSS yang berada di wilayahoss-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_locationDi 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');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 | '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 |
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
Contoh 2: Mengekspor file format JSON dan menyesuaikan ekstensi nama file
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:
Di sisi OSS: Masuk ke Konsol OSS, buat folder
mc-unload/data_location/di bucket OSS yang berada di wilayahoss-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_locationDi 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');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:
Di sisi OSS: Masuk ke Konsol OSS, buat folder
mc-unload/data_location/di bucket OSS yang berada di wilayahoss-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_locationDi 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;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 |
StorageHandler | Menentukan penanganan bawaan. Nilainya tetap |
SERDEPROPERTIES | Parameter ini harus berisi tiga properti berikut:
|
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:
Di sisi Hologres: Buat tabel tujuan
mc_2_holodi Hologres.CREATE TABLE mc_2_holo (id INT, name TEXT);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¤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' );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.