External volume adalah solusi penyimpanan untuk data tidak terstruktur dan sistem file terdistribusi yang disediakan oleh MaxCompute. Solusi ini memetakan direktori OSS ke proyek MaxCompute, sehingga Anda dapat langsung melakukan kueri dan memproses file yang disimpan di Object Storage Service (OSS) tanpa perlu mengimpor data ke dalam tabel MaxCompute, mengurangi redundansi data dan overhead transmisi.
Operasi umum
| Operasi | Deskripsi | Yang dapat melaksanakan |
|---|---|---|
| Buat external volume | Membuat external volume dalam proyek | Pemilik external volume; pemilik proyek; pengguna dengan role Super_Administrator atau Admin |
| Daftar external volume dan tampilkan struktur direktori | Menampilkan daftar semua external volume atau menampilkan struktur direktori dari volume tertentu | — |
| Hapus external volume | Menghapus external volume | — |
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
-
Klien MaxCompute (odpscmd) versi V0.43.0 atau lebih baru. Untuk petunjuk instalasi, lihat MaxCompute client (odpscmd).
Untuk menjalankan perintah di halaman DataStudio atau halaman SQL Query pada Konsol DataWorks, klien MaxCompute terintegrasi harus berupa versi V0.43.2 atau lebih baru. Jalankan
Show version;untuk memeriksa versi. Untuk informasi lebih lanjut, lihat Gunakan MaxCompute di DataWorks. -
SDK for Java versi V0.43.0 atau lebih baru, jika Anda menggunakan Java SDK.
-
Akun Alibaba Cloud atau pengguna RAM dengan izin akses ke OSS. Untuk langkah-langkah otorisasi, lihat Otorisasi STS untuk OSS.
Buat external volume
Sintaks
vfs -create <volume_name>
-storage_provider oss
-url <oss://oss_endpoint/bucket_name/directory_name>
[-acd <true|false>]
-role_arn <arn:aliyun:xxx/aliyunodpsdefaultrole>Parameter yang diapit tanda [ ] bersifat opsional.
| Parameter | Wajib | Deskripsi |
|---|---|---|
volume_name |
Ya | Nama external volume yang akan dibuat. |
storage_provider |
Ya | Penyedia penyimpanan. Tetapkan ke oss. OSS adalah satu-satunya penyedia yang didukung. |
url |
Ya | Direktori OSS tempat file data disimpan. Format: oss://<oss_endpoint>/<bucket_name>/<directory_name>. Nama bucket dan nama direktori tingkat kedua wajib dicantumkan. Lihat catatan di bawah mengenai persyaratan endpoint. |
acd |
Tidak | Apakah direktori OSS akan dibuat otomatis jika belum ada. Nilai default: false. Lihat catatan di bawah untuk detail perilaku. |
role_arn |
Ya | Alibaba Cloud Resource Name (ARN) dari RAM role yang memiliki izin akses ke OSS. Untuk mendapatkan ARN, lihat Gunakan kredensial temporary yang disediakan oleh STS untuk mengakses OSS. |
Catatan mengenai parameter `url`:
-
Gunakan Titik akhir internal OSS untuk menghindari biaya tambahan akibat lalu lintas internet—misalnya,
oss://oss-cn-beijing-internal.aliyuncs.com/my-bucket/my-dir. Untuk daftar lengkap Titik akhir internal, lihat Wilayah dan Titik akhir. -
Deploy bucket OSS di wilayah yang sama dengan proyek MaxCompute Anda untuk menghindari masalah konektivitas lintas wilayah.
Catatan mengenai parameter `acd`:
-
false(default): Jika direktori yang ditentukan tidak ada, perintah akan gagal dengan error. -
true: Jika direktori tidak ada, MaxCompute secara otomatis membuatnya menggunakan izin yang diberikan melaluirole_arn. Jika direktori sudah ada, MaxCompute langsung menggunakannya.
Jika acd diatur ke true dan direktori dibuat secara otomatis, MaxCompute tidak akan menghapus direktori tersebut meskipun pembuatan external volume berikutnya gagal.
Setelah external volume dibuat, path-nya mengikuti format odps://<project_name>/<volume_name> dan dapat digunakan oleh engine Spark serta tugas MapReduce.
Contoh
Buat external volume bernama test_ext_l:
vfs -create test_ext_l -storage_provider oss -url oss://oss-cn-hangzhou-internal.aliyuncs.com/test/ex_volume/ -role_arn acs:ram::xxxxxxx:role/aliyunodpsdefaultrole;
Daftar external volume dan tampilkan struktur direktori
Sintaks
-- Daftar semua external volume dalam proyek
vfs -ls /;
-- Tampilkan struktur direktori dari external volume tertentu
vfs -ls [-R] /<volume_name>;
| Parameter | Wajib | Deskripsi |
|---|---|---|
volume_name |
Ya | Nama external volume. |
-R |
Tidak | Menampilkan subdirektori secara rekursif. |
Contoh
Daftar semua volume eksternal:
vfs -ls /;
Output yang diharapkan:
Found 2 items
drwxrwxrwx - 0 2023-03-11 12:06 /test_ext_l -> oss://oss-cn-shanghai-internal.aliyuncs.com/test/ex_volume
drwxrwxrwx - 0 2023-03-21 07:33 /myfirst_volume4 -> oss://oss-cn-shanghai-internal.aliyuncs.com/paristech/data
External volume yang tidak memiliki izin akses tidak akan ditampilkan dalam output. Untuk memberikan akses kepada pengguna, jalankan perintah berikut. Izin yang tersedia adalah Read, Write, dan CreateVolume.
grant Read on volume myfirst_volume4 to RAM$xxxxxx:dev01;
Tampilkan struktur direktori dari test_ext_l:
vfs -ls -R /test_ext_l;
Output yang diharapkan:
drwxrwxrwx - 0 2023-03-27 07:31 /test_ext_l/test -> oss://oss-cn-hangzhou-internal.aliyuncs.com/test/ex_volume/test
Hapus external volume
Sintaks
-- Sintaks 1
vfs -rm -r /<volume_name>;
-- Sintaks 2
vfs -rmv /<volume_name>;
| Parameter | Wajib | Deskripsi |
|---|---|---|
volume_name |
Ya | Nama external volume yang akan dihapus. |
Contoh
Hapus external volume bernama test_ext_l:
vfs -rm -r /test_ext_l;
Langkah berikutnya
-
Untuk mengelola external volume menggunakan SDK, lihat Kelola external volume menggunakan SDK.
-
Untuk contoh end-to-end tentang kueri dan pemrosesan data tidak terstruktur dengan external volume, lihat Gunakan external volume MaxCompute untuk memproses data tidak terstruktur.