MaxCompute memungkinkan Anda mengekspor data dari proyek MaxCompute ke penyimpanan data eksternal seperti Object Storage Service (OSS) atau Hologres. Dengan cara ini, mesin komputasi lain dapat menggunakan data yang diekspor dari MaxCompute ke penyimpanan data eksternal. Topik ini menjelaskan cara menggunakan pernyataan UNLOAD dan memberikan contoh terkait.
Anda dapat mengeksekusi pernyataan berikut pada platform berikut:
Deskripsi fitur
MaxCompute memungkinkan Anda mengeksekusi pernyataan UNLOAD untuk mengekspor data dari MaxCompute ke penyimpanan data eksternal OSS atau Hologres. OSS dapat menyimpan data dalam format CSV atau format sumber terbuka lainnya. Perhatikan poin-poin berikut:
Data MaxCompute harus diekspor ke OSS sebelum data tersebut dapat diekspor ke mesin komputasi lain, seperti Amazon Redshift dan BigQuery.
Jika Anda berulang kali mengekspor data, file yang sebelumnya diekspor tidak akan ditimpa. Sebagai gantinya, file baru akan dihasilkan.
Batasan
Penggunaan pernyataan UNLOAD memiliki batasan berikut:
MaxCompute secara otomatis membagi file yang diekspor ke OSS menjadi beberapa bagian dan menghasilkan nama untuk file tersebut. Anda tidak dapat menentukan nama kustom atau ekstensi nama file untuk file yang diekspor.
Saat Anda mengekspor data dari MaxCompute ke Hologres, autentikasi tanda tangan ganda tidak didukung.
Anda tidak dapat mengekspor data dari MaxCompute ke tabel Hologres yang dipartisi.
Ekstensi nama file tidak dapat ditambahkan ke file yang diekspor dalam format sumber terbuka.
Peringatan
Anda tidak dikenakan biaya untuk pernyataan UNLOAD. Klausul subquery dalam pernyataan UNLOAD perlu memindai data dan menggunakan sumber daya komputasi untuk menghitung hasilnya. Oleh karena itu, klausul subquery tersebut dikenakan biaya sebagai pekerjaan SQL biasa.
Dalam beberapa skenario, Anda dapat menyimpan data terstruktur di OSS untuk mengurangi biaya penyimpanan. Namun, Anda harus memperkirakan biayanya terlebih dahulu.
Biaya penyimpanan MaxCompute adalah USD 0,018 per GB-bulan. Untuk detail lebih lanjut tentang biaya penyimpanan, lihat Penetapan harga penyimpanan (bayar sesuai penggunaan). Rasio kompresi data untuk data yang diimpor ke MaxCompute sekitar 5:1, dan biaya yang dikenakan didasarkan pada ukuran data setelah kompresi.
Jika Anda menggunakan kelas penyimpanan Standar OSS untuk menyimpan data Anda, harga satuan adalah USD 0,018 per GB-bulan. Untuk informasi lebih lanjut tentang biaya untuk kelas penyimpanan Infrequent Access (IA), Arsip, dan Penyimpanan Arsip Dingin, lihat Biaya penyimpanan.
Jika Anda ingin mengekspor data untuk mengurangi biaya penyimpanan, kami sarankan Anda memperkirakan rasio kompresi data berdasarkan tes fitur data, memperkirakan biaya penggunaan pernyataan UNLOAD berdasarkan pernyataan query yang digunakan saat mengekspor data, dan mengevaluasi metode akses data yang diekspor. Ini membantu Anda mencegah biaya tambahan yang disebabkan oleh migrasi data yang tidak perlu.
Prasyarat
Akun operasi diberi izin terkait pada MaxCompute.
Sebelum Anda mengeksekusi pernyataan
UNLOADmenggunakan akun, pastikan bahwa akun tersebut memiliki izin SELECT untuk membaca data dari tabel yang ingin Anda ekspor di proyek MaxCompute. Untuk informasi lebih lanjut tentang cara memberikan izin, lihat Izin MaxCompute.Akun operasi diberi izin yang diperlukan pada penyimpanan data eksternal terkait.
Sebelum Anda mengekspor data dari MaxCompute ke penyimpanan data eksternal OSS atau Hologres menggunakan akun, Anda harus memberikan akun tersebut izin untuk mengakses penyimpanan data eksternal dari MaxCompute. Mode otorisasi pernyataan
UNLOADsama dengan mode otorisasi tabel eksternal MaxCompute. Bagian berikut menjelaskan cara mengotorisasi MaxCompute untuk mengakses OSS dan Hologres.Otorisasi MaxCompute untuk mengakses OSS
Anda dapat melakukan otorisasi satu klik untuk mencapai keamanan yang lebih tinggi. Untuk informasi lebih lanjut, lihat Otorisasi STS.
CatatanDalam contoh berikut, otorisasi satu klik digunakan dan nama perannya adalah AliyunODPSDefaultRole.
Otorisasi MaxCompute untuk mengakses Hologres
Anda dapat membuat peran RAM, memberikan peran RAM izin untuk mengakses MaxCompute, dan kemudian menambahkan peran RAM ke instance Hologres untuk menyelesaikan otorisasi. Untuk informasi lebih lanjut, lihat Buat tabel asing Hologres dalam mode STS.
Setelah Anda menyelesaikan otorisasi sebelumnya, Anda harus memilih metode ekspor berdasarkan format data yang ingin Anda ekspor.
Gunakan ekstraktor bawaan untuk mengekspor data (StorageHandler)
Sintaksis
UNLOAD FROM {<select_statement>|<table_name> [PARTITION (<pt_spec>)]} INTO LOCATION <external_location> STORED BY <StorageHandler> [WITH SERDEPROPERTIES ('<property_name>'='<property_value>',...)];Parameter
Ekspor data dari MaxCompute ke OSS
Parameter
Diperlukan
Deskripsi
select_statement
Tidak
Klausa
SELECTyang digunakan untuk menanyakan data yang ingin Anda masukkan ke direktori tujuan OSS dari tabel sumber. Tabel sumber bisa berupa tabel partisi atau tabel non-partisi. Untuk informasi lebih lanjut tentang klausaSELECT, lihat Sintaksis SELECT.table_name, pt_spec
Tidak
Anda dapat menggunakan nama tabel atau kombinasi nama tabel dan nama partisi untuk menentukan data yang ingin Anda ekspor. Metode ekspor ini tidak menghasilkan pernyataan query secara otomatis. Oleh karena itu, tidak ada biaya yang dikeluarkan. Nilai pt_spec berada dalam format
(partition_col1 = partition_col_value1, partition_col2 = partition_col_value2, ...).external_location
Ya
Menentukan jalur OSS target tempat data yang diekspor disimpan. Formatnya adalah
'oss://<oss_endpoint>/<object>'. Untuk informasi lebih lanjut tentang jalur OSS, lihat Gunakan titik akhir yang mendukung IPv6 untuk mengakses OSS.StorageHandler
Ya
Nama handler penyimpanan bawaan yang digunakan. Nilai valid:
com.aliyun.odps.CsvStorageHandlerdancom.aliyun.odps.TsvStorageHandler. Parameter ini menentukan handler penyimpanan bawaan yang memproses file CSV dan TSV serta mendefinisikan cara membaca atau menulis file CSV dan TSV. Anda hanya perlu menentukan parameter ini berdasarkan kebutuhan bisnis Anda. Logika terkait diimplementasikan oleh sistem. Jika Anda menggunakan handler penyimpanan bawaan untuk mengekspor data, ekstensi nama file.csvatau.tsvsecara otomatis ditambahkan ke nama file yang diekspor. Konfigurasi parameter ini sama dengan konfigurasi untuk tabel eksternal MaxCompute. Untuk informasi lebih lanjut, lihat Buat tabel eksternal OSS.'<property_name>'='<property_value>'
Tidak
property_name menentukan nama properti dan property_value menentukan nilai properti. Anda dapat menggunakan klausa ini dengan cara yang sama seperti Anda menggunakannya untuk tabel eksternal MaxCompute. Untuk informasi lebih lanjut tentang properti, lihat Buat tabel eksternal OSS.
Ekspor data dari MaxCompute ke Hologres
Parameter
Diperlukan
Deskripsi
select_statement
Tidak
Klausa
SELECTyang digunakan untuk menanyakan data yang ingin Anda masukkan ke direktori tujuan Hologres dari tabel sumber. Tabel sumber hanya bisa berupa tabel non-partisi. Untuk informasi lebih lanjut tentang klausaSELECT, lihat Sintaksis SELECT.table_name
Tidak
Anda dapat menggunakan nama tabel untuk menentukan data yang ingin Anda ekspor. Metode ekspor ini tidak menghasilkan pernyataan query secara otomatis. Oleh karena itu, tidak ada biaya yang dikeluarkan.
external_location
Ya
Direktori Hologres ke mana Anda ingin mengekspor data. Nilai parameter ini berada dalam format
'jdbc:postgresql://<endpoint>:<port>/<database>?ApplicationName=MaxCompute&[currentSchema=<schema>&][useSSL={true|false}&]table=<holo_table_name>/'. Untuk informasi lebih lanjut tentang direktori Hologres, lihat Buat tabel eksternal Hologres.StorageHandler
Ya
Nama handler penyimpanan bawaan yang digunakan. Setel nilainya menjadi
com.aliyun.odps.jdbc.JdbcStorageHandler. Nilai tersebut menunjukkan bahwa tabel eksternal Hologres diakses menggunakan JdbcStorageHandler.'<property_name>'='<property_value>'
Tidak
property_name menentukan nama properti. property_value menentukan nilai properti. Saat Anda mengekspor data ke Hologres, Anda harus mengonfigurasi parameter berikut:
'odps.properties.rolearn'='<ram_arn>': menentukan Alibaba Cloud Resource Name (ARN) dari peran RAM tertentu. ARN digunakan untuk autentikasi Security Token Service (STS). Untuk mendapatkan ARN dari peran RAM tertentu, Anda dapat melakukan langkah-langkah berikut: Masuk ke Konsol Resource Access Management (RAM). Pada halaman Roles, temukan peran RAM yang ARN-nya ingin Anda tanyakan dan klik nama peran RAM di kolom Role Name. Di halaman yang muncul, lihat ARN di bagian Basic Information.
'mcfed.mapreduce.jdbc.driver.class'='org.postgresql.Driver': menentukan driver yang digunakan untuk terhubung ke database Hologres. Setel nilainya menjadi
org.postgresql.Driver.'odps.federation.jdbc.target.db.type'='holo': menentukan jenis database yang terhubung ke driver. Setel nilainya menjadi
holo.
Properti yang didukung oleh Hologres sama dengan properti tabel eksternal MaxCompute. Untuk informasi lebih lanjut tentang properti, lihat Buat tabel eksternal Hologres.
Contoh
Ekspor data dari MaxCompute ke OSS
Contoh ini menunjukkan cara mengekspor data dari tabel sale_detail di proyek MaxCompute ke OSS. Tabel sale_detail berisi data berikut:
+------------+-------------+-------------+------------+------------+ | 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 | +------------+-------------+-------------+------------+------------+Masuk ke Konsol OSS. Kemudian, buat direktori
mc-unload/data_location/di bucket OSS di wilayahoss-cn-hangzhoudan atur direktori OSS. Untuk informasi lebih lanjut tentang cara membuat bucket OSS, lihat Buat bucket.
Direktori OSS berikut diatur berdasarkan bucket, wilayah, dan titik akhir:
oss://oss-cn-hangzhou-internal.aliyuncs.com/mc-unload/data_locationMasuk ke Klien MaxCompute dan eksekusi pernyataan UNLOAD untuk mengekspor data dari tabel sale_detail ke OSS. Contoh berikut diberikan:
Contoh 1: Ekspor data dari tabel sale_detail sebagai file CSV dan kemas file tersebut ke dalam file GZIP. Contoh pernyataan:
-- Kendalikan jumlah file yang diekspor: Atur ukuran data yang dibaca oleh satu worker dari tabel MaxCompute. Unit: MB. Tabel MaxCompute dikompresi sebelum Anda mengekspornya. Ukuran data yang diekspor sekitar empat kali ukuran data sebelum ekspor. SET odps.stage.mapper.split.size=256; -- Ekspor data. 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'); -- Pernyataan sebelumnya setara dengan pernyataan berikut. 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');Contoh 2: Ekspor data dari partisi (sale_date='2013', region='china') di tabel sale_detail sebagai file TSV ke OSS dan kemas file tersebut ke dalam file GZIP.
-- Kendalikan jumlah file yang diekspor: Atur ukuran data yang dibaca oleh satu worker dari tabel MaxCompute. Unit: MB. Tabel MaxCompute dikompresi sebelum Anda mengekspornya. Ukuran data yang diekspor sekitar empat kali ukuran data sebelum ekspor. SET odps.stage.mapper.split.size=256; -- Ekspor data. 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::139699392458****:role/AliyunODPSDefaultRole', 'odps.text.option.gzip.output.enabled'='true');
'odps.text.option.gzip.output.enabled'='true'menentukan bahwa file yang diekspor dikompresi dalam file GZIP. Hanya format GZIP yang didukung.Masuk ke Konsol OSS untuk melihat hasil impor di direktori tujuan OSS.
Hasil untuk Contoh 1 adalah sebagai berikut.

Hasil untuk Contoh 2 adalah sebagai berikut.

Ekspor data dari MaxCompute ke Hologres
Contoh ini menunjukkan cara mengekspor data dari tabel
data_testproyek MaxCompute ke Hologres. Tabeldata_testberisi data berikut:+------------+------+ | id | name | +------------+------+ | 3 | rgege | | 4 | Gegegegr | +------------+------+Buat tabel Hologres bernama
mc_2_holoke mana Anda ingin menulis data. Database tempat tabel tersebut milik bernamatest. Anda dapat mengeksekusi pernyataan pembuatan tabel berikut di editor SQL Konsol HoloWeb. Untuk informasi lebih lanjut, lihat Hubungkan ke HoloWeb dan lakukan query. Contoh pernyataan:CatatanTipe data bidang di tabel tempat Anda ingin menulis data harus sama dengan tipe data bidang di tabel MaxCompute. Untuk informasi lebih lanjut, lihat Pemetaan tipe data antara MaxCompute dan Hologres.
CREATE TABLE mc_2_holo (id INT, name TEXT);Masuk ke Klien MaxCompute dan eksekusi pernyataan UNLOAD untuk mengekspor data dari tabel
data_testke Hologres. Contoh pernyataan: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' );Kueri data yang diekspor di Hologres.
SELECT * FROM mc_2_holo;Hasil berikut dikembalikan:
id name 4 Gegegegr 3 rgege
Ekspor data dalam format sumber terbuka lainnya
Sintaksis
UNLOAD FROM {<select_statement>|<table_name> [PARTITION (<pt_spec>)]} INTO LOCATION <external_location> [ROW FORMAT SERDE '<serde_class>' [WITH SERDEPROPERTIES ('<property_name>'='<property_value>',...)] ] STORED AS <file_format> [PROPERTIES ('<tbproperty_name>'='<tbproperty_value>')];Parameter
Parameter
Diperlukan
Deskripsi
select_statement
Tidak
Klausa
SELECTyang digunakan untuk menanyakan data yang ingin Anda masukkan ke direktori tujuan OSS dari tabel sumber. Tabel sumber bisa berupa tabel partisi atau tabel non-partisi. Untuk informasi lebih lanjut tentang klausaSELECT, lihat Sintaksis SELECT.table_name, pt_spec
Tidak
Anda dapat menggunakan nama tabel atau kombinasi nama tabel dan nama partisi untuk menentukan data yang ingin Anda ekspor. Metode ekspor ini tidak menghasilkan pernyataan query secara otomatis. Oleh karena itu, tidak ada biaya yang dikeluarkan. Nilai pt_spec berada dalam format
(partition_col1 = partition_col_value1, partition_col2 = partition_col_value2, ...).external_location
Ya
Menentukan jalur OSS target tempat data yang diekspor disimpan. Formatnya adalah
'oss://<oss_endpoint>/<object>'. Untuk informasi lebih lanjut tentang jalur OSS, lihat Gunakan titik akhir yang mendukung IPv6 untuk mengakses OSS.serde_class
Tidak
Konfigurasi parameter ini sama dengan konfigurasi untuk tabel eksternal MaxCompute. Untuk informasi lebih lanjut, lihat Buat tabel eksternal OSS.
'<property_name>'='<property_value>'
Tidak
property_name menentukan nama properti dan property_value menentukan nilai properti. Anda dapat menggunakan klausa ini dengan cara yang sama seperti Anda menggunakannya untuk tabel eksternal MaxCompute. Untuk informasi lebih lanjut tentang properti, lihat Buat tabel eksternal OSS.
file_format
Ya
Format file yang diekspor, seperti ORC, PARQUET, RCFILE, SEQUENCEFILE, atau TEXTFILE. Konfigurasi parameter ini sama dengan konfigurasi untuk tabel eksternal MaxCompute. Untuk informasi lebih lanjut, lihat Buat tabel eksternal OSS.
'<tbproperty_name>'='<tbproperty_value>'
Tidak
tbproperty_name menentukan nama properti dalam informasi tambahan tabel eksternal. tbproperty_value menentukan nilai properti dalam informasi tambahan tabel eksternal. Misalnya, Anda dapat mengekspor data sumber terbuka sebagai file dalam format kompresi SNAPPY atau LZO. Anda dapat mengonfigurasi
'mcfed.parquet.compression'='SNAPPY'atau'mcfed.parquet.compression'='LZO'.Contoh
Contoh ini menunjukkan cara mengekspor data dari tabel sale_detail di proyek MaxCompute ke OSS. Tabel sale_detail berisi data berikut:
+------------+-------------+-------------+------------+------------+ | 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 | +------------+-------------+-------------+------------+------------+Masuk ke Konsol OSS. Kemudian, buat direktori
mc-unload/data_location/di bucket OSS di wilayahoss-cn-hangzhoudan atur direktori OSS. Untuk informasi lebih lanjut tentang cara membuat bucket OSS, lihat Buat bucket.
Direktori OSS berikut diatur berdasarkan bucket, wilayah, dan titik akhir:
oss://oss-cn-hangzhou-internal.aliyuncs.com/mc-unload/data_locationMasuk ke Klien MaxCompute dan eksekusi pernyataan UNLOAD untuk mengekspor data dari tabel sale_detail ke OSS. Contoh berikut diberikan:
Contoh 1: Ekspor data dari tabel sale_detail sebagai file dalam format PARQUET dan kompres file menggunakan Snappy. Contoh pernyataan:
-- Kendalikan jumlah file yang diekspor: Atur ukuran data yang dibaca oleh satu worker dari tabel MaxCompute. Unit: MB. Tabel MaxCompute dikompresi sebelum Anda mengekspornya. Ukuran data yang diekspor sekitar empat kali ukuran data sebelum ekspor. SET odps.stage.mapper.split.size=256; -- Ekspor data. 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');Contoh 2: Ekspor data dari partisi (sale_date='2013', region='china') di tabel sale_detail sebagai file PARQUET ke OSS dan kompres file menggunakan Snappy. Contoh pernyataan:
-- Kendalikan jumlah file yang diekspor: Atur ukuran data yang dibaca oleh satu worker dari tabel MaxCompute. Unit: MB. Tabel MaxCompute dikompresi sebelum Anda mengekspornya. Ukuran data yang diekspor sekitar empat kali ukuran data sebelum ekspor. SET odps.stage.mapper.split.size=256; -- Ekspor data. UNLOAD FROM sale_detail PARTITION (sale_date='2013',region='china') INTO LOCATION 'oss://oss-cn-hangzhou-internal.aliyuncs.com/mc-unload/data_location' ROW FROMAT SERDE 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' WITH SERDEPROPERTIES ('odps.properties.rolearn'='acs:ram::139699392458****:role/AliyunODPSDefaultRole') STORED AS PARQUET PROPERTIES('mcfed.parquet.compression'='SNAPPY');
Masuk ke Konsol OSS untuk melihat hasil impor di direktori tujuan OSS.
Hasil untuk Contoh 1 adalah sebagai berikut.

Hasil untuk Contoh 2 adalah sebagai berikut.

CatatanJika data yang diekspor dikompresi menggunakan Snappy atau LZO, ekstensi nama file .snappy atau .lzo dari file yang diekspor tidak dapat ditampilkan.
Tentukan awalan untuk file yang diekspor dan tampilkan ekstensi nama file
Saat Anda mengeksekusi pernyataan UNLOAD untuk mengekspor data dari tabel MaxCompute sebagai file, Anda mungkin perlu menentukan awalan untuk file dan menampilkan ekstensi nama file dalam skenario bisnis tertentu. Anda dapat melakukan operasi berikut untuk menentukan awalan dan menampilkan ekstensi nama file.
Sintaksis
Gunakan ekstraktor bawaan untuk mengekspor file CSV atau TSV.
-- Ekstraktor bawaan, ekspor CSV, TSV, dan format lainnya UNLOAD FROM {<select_statement>|<table_name> [PARTITION (<pt_spec>)]} INTO LOCATION <external_location> [STORED BY <StorageHandler>] [WITH SERDEPROPERTIES ('<property_name>'='<property_value>',...)];Anda dapat mengonfigurasi properti odps.external.data.prefix untuk menentukan awalan kustom. Nilainya dapat mencapai panjang hingga 10 karakter.
Anda dapat mengatur properti odps.external.data.enable.extension menjadi
trueuntuk menampilkan ekstensi nama file.Untuk informasi lebih lanjut tentang parameter lainnya, lihat Gunakan ekstraktor bawaan untuk mengekspor data (StorageHandler).
Ekspor file dalam format sumber terbuka, seperti ORC atau Parquet.
UNLOAD FROM {<select_statement>|<table_name> [PARTITION (<pt_spec>)]} INTO LOCATION <external_location> [ROW FORMAT SERDE '<serde_class>' [WITH SERDEPROPERTIES ('<property_name>'='<property_value>',...)] ] STORED AS <file_format> [PROPERTIES('<tbproperty_name>'='<tbproperty_value>')];Anda dapat mengonfigurasi properti odps.external.data.prefix untuk menentukan awalan kustom. Nilainya dapat mencapai panjang hingga 10 karakter.
Anda dapat mengatur properti odps.external.data.enable.extension menjadi
trueuntuk menampilkan ekstensi nama file.Untuk informasi lebih lanjut tentang parameter lainnya, lihat Ekspor data dalam format sumber terbuka lainnya.
Deskripsi ekstensi nama file
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
Contoh
Ekspor file TXT. Tambahkan awalan
mf_dan tampilkan ekstensi .txt.SET odps.sql.hive.compatible=true; SET odps.sql.split.hive.bridge=true; UNLOAD FROM (SELECT col_tinyint,col_binary FROM mf_fun_datatype LIMIT 1) INTO LOCATION 'oss://oss-cn-beijing-internal.aliyuncs.com/mfosscostfee/demo6/' STORED AS textfile PROPERTIES ('odps.external.data.prefix'='mf_', 'odps.external.data.enable.extension'='true');Lihat hasil ekspor di direktori tujuan OSS dari penyimpanan data yang ditentukan.
Ekspor file CSV. Tambahkan awalan
mf_dan tampilkan ekstensi .csv.SET odps.sql.hive.compatible=true; SET odps.sql.split.hive.bridge=true; UNLOAD FROM (SELECT col_tinyint,col_binary FROM mf_fun_datatype LIMIT 2) INTO LOCATION 'oss://oss-cn-beijing-internal.aliyuncs.com/mfosscostfee/demo6/' STORED BY 'com.aliyun.odps.CsvStorageHandler' PROPERTIES ('odps.external.data.prefix'='mf_', 'odps.external.data.enable.extension'='true');Lihat hasil ekspor di direktori tujuan OSS dari penyimpanan data yang ditentukan.
Referensi
Jika Anda ingin mengimpor data dalam format CSV atau format sumber terbuka lainnya dari penyimpanan data eksternal ke MaxCompute, lihat LOAD.