Bagikan melalui


Membuat dan bekerja dengan volume

Artikel ini memperkenalkan volume, yang merupakan objek Katalog Unity yang memungkinkan tata kelola atas himpunan data non-tabular. Ini juga menjelaskan cara membuat, mengelola, dan bekerja dengan volume.

Untuk detail tentang mengunggah dan mengelola file dalam volume, lihat Mengunggah file ke volume Katalog Unity dan Operasi manajemen file untuk volume Katalog Unity.

Catatan

Saat bekerja dengan volume, Anda harus menggunakan gudang SQL atau kluster yang menjalankan Databricks Runtime 13.3 LTS atau lebih tinggi, kecuali Anda menggunakan UI Azure Databricks seperti Catalog Explorer.

Apa itu volume Katalog Unity?

Volume adalah objek Katalog Unity yang mewakili volume penyimpanan logis di lokasi penyimpanan objek cloud. Volume menyediakan kemampuan untuk mengakses, menyimpan, mengatur, dan mengatur file. Meskipun tabel menyediakan tata kelola atas himpunan data tabular, volume menambahkan tata kelola atas himpunan data non-tabular. Anda dapat menggunakan volume untuk menyimpan dan mengakses file dalam format apa pun, termasuk data terstruktur, semi terstruktur, dan tidak terstruktur.

Penting

Anda tidak dapat menggunakan volume sebagai lokasi untuk tabel. Volume hanya ditujukan untuk akses data berbasis jalur. Gunakan tabel untuk menyimpan data tabular dengan Unity Catalog.

Apa itu volume terkelola?

Volume terkelola adalah volume penyimpanan yang diatur Oleh Katalog Unity yang dibuat dalam lokasi penyimpanan terkelola dari skema yang berisi. Volume terkelola memungkinkan pembuatan penyimpanan yang diatur untuk bekerja dengan file tanpa overhead lokasi eksternal dan kredensial penyimpanan. Anda tidak perlu menentukan lokasi saat membuat volume terkelola, dan semua akses file untuk data dalam volume terkelola adalah melalui jalur yang dikelola oleh Katalog Unity. Lihat Jalur apa yang digunakan untuk mengakses file dalam volume?.

Saat Anda menghapus volume terkelola, file yang disimpan dalam volume ini juga dihapus dari penyewa cloud Anda dalam waktu 30 hari.

Apa itu volume eksternal?

Volume eksternal adalah volume penyimpanan yang diatur Oleh Katalog Unity yang terdaftar terhadap direktori dalam lokasi eksternal menggunakan kredensial penyimpanan yang diatur Oleh Katalog Unity. Volume eksternal memungkinkan Anda menambahkan tata kelola data Katalog Unity ke direktori penyimpanan objek cloud yang ada. Beberapa kasus penggunaan untuk volume eksternal meliputi yang berikut ini:

  • Menambahkan tata kelola ke file data tanpa migrasi.
  • Mengatur file yang dihasilkan oleh sistem lain yang harus diserap atau diakses oleh Azure Databricks.
  • Mengatur data yang dihasilkan oleh Azure Databricks yang harus diakses langsung dari penyimpanan objek cloud oleh sistem lain.

Volume eksternal harus berupa direktori dalam lokasi eksternal yang diatur oleh kredensial penyimpanan Katalog Unity. Katalog Unity tidak mengelola siklus hidup atau tata letak file dalam volume eksternal. Saat Anda menghapus volume eksternal, Unity Catalog tidak menghapus data yang mendasar.

Catatan

Saat Anda menentukan volume, akses URI cloud ke data di bawah jalur volume diatur oleh izin volume.

Jalur apa yang digunakan untuk mengakses file dalam volume?

Jalur untuk mengakses volume sama apakah Anda menggunakan Apache Spark, SQL, Python, atau bahasa dan pustaka lainnya. Ini berbeda dari pola akses warisan untuk file dalam penyimpanan objek yang terikat ke ruang kerja Azure Databricks.

Jalur untuk mengakses file dalam volume menggunakan format berikut:

/Volumes/<catalog>/<schema>/<volume>/<path>/<file-name>

Azure Databricks juga mendukung skema opsional dbfs:/ saat bekerja dengan Apache Spark, sehingga jalur berikut juga berfungsi:

dbfs:/Volumes/<catalog>/<schema>/<volume>/<path>/<file-name>

Urutan /<catalog>/<schema>/<volume> dalam jalur sesuai dengan tiga nama objek Katalog Unity yang terkait dengan file. Elemen jalur ini bersifat baca-saja dan tidak dapat ditulis secara langsung oleh pengguna, yang berarti tidak mungkin untuk membuat atau menghapus direktori ini menggunakan operasi sistem file. Mereka dikelola secara otomatis dan tetap sinkron dengan entitas UC yang sesuai.

Catatan

Anda juga dapat mengakses data dalam volume eksternal menggunakan URI penyimpanan cloud.

Apa hak istimewa untuk volume?

Volume menggunakan model hak istimewa dasar yang sama dengan tabel, tetapi di mana hak istimewa untuk tabel berfokus pada pemberian akses ke kueri dan manipulasi baris dalam tabel, hak istimewa untuk volume berfokus pada bekerja dengan file. Dengan demikian, volume memperkenalkan hak istimewa berikut:

Lihat Hak istimewa Unity Catalog dan objek yang dapat diamankan.

Siapa dapat mengelola hak istimewa volume?

Anda harus memiliki hak istimewa pemilik pada volume untuk mengelola hak istimewa volume atau menjatuhkan volume. Setiap objek di Katalog Unity hanya dapat memiliki satu prinsipal yang ditetapkan sebagai pemilik, dan sementara kepemilikan tidak bersifat kaskade (artinya, pemilik katalog tidak secara otomatis menjadi pemilik semua objek dalam katalog tersebut), hak istimewa yang terkait dengan kepemilikan berlaku untuk semua objek yang terkandung dalam objek.

Ini berarti bahwa untuk volume Katalog Unity, prinsipal berikut dapat mengelola hak istimewa volume:

  • Pemilik katalog induk.
  • Pemilik skema induk.
  • Pemilik volume.

Meskipun setiap objek hanya dapat memiliki satu pemilik, Databricks merekomendasikan untuk menetapkan kepemilikan untuk sebagian besar objek ke grup daripada pengguna individual. Kepemilikan awal untuk objek apa pun ditetapkan ke pengguna yang membuat objek tersebut. Lihat Mengelola kepemilikan objek Katalog Unity.

Membuat volume terkelola

Anda harus memiliki izin berikut untuk membuat volume terkelola:

Sumber daya Izin yang diperlukan
Skema USE SCHEMA, CREATE VOLUME
Katalog USE CATALOG

Sql

Untuk membuat volume terkelola, gunakan sintaks berikut:

CREATE VOLUME <catalog>.<schema>.<volume-name>;

Penjelajah katalog

Untuk membuat volume terkelola di Catalog Explorer:

  1. Di ruang kerja Azure Databricks Anda, klik Ikon katalogKatalog.
  2. Cari atau telusuri skema yang ingin Anda tambahkan volumenya dan pilih.
  3. Klik tombol Buat Volume . (Anda harus memiliki hak istimewa yang memadai.)
  4. Masukkan nama untuk volume.
  5. Berikan komentar (opsional).
  6. Klik Buat.

Membuat volume eksternal

Anda harus memiliki izin berikut untuk membuat volume eksternal:

Sumber daya Izin yang diperlukan
Lokasi eksternal CREATE EXTERNAL VOLUME
Skema USE SCHEMA, CREATE VOLUME
Katalog USE CATALOG

Sql

Untuk membuat volume eksternal, tentukan jalur dalam lokasi eksternal menggunakan sintaks berikut:

CREATE EXTERNAL VOLUME <catalog>.<schema>.<external-volume-name>
LOCATION 'abfss://<container-name>@<storage-account>.dfs.core.windows.net/<path>/<directory>';

Penjelajah katalog

Untuk membuat volume eksternal di Catalog Explorer:

  1. Di ruang kerja Azure Databricks Anda, klik Ikon katalogKatalog.
  2. Cari atau telusuri skema yang ingin Anda tambahkan volumenya dan pilih.
  3. Klik tombol Buat Volume . (Anda harus memiliki hak istimewa yang memadai.)
  4. Masukkan nama untuk volume.
  5. Pilih lokasi eksternal untuk membuat volume.
  6. Edit jalur untuk mencerminkan sub-direktori tempat Anda ingin membuat volume.
  7. Berikan komentar (opsional).
  8. Klik Buat.

Menjatuhkan volume

Hanya pengguna dengan hak istimewa pemilik yang dapat menjatuhkan volume. Lihat Siapa dapat mengelola hak istimewa volume?.

Gunakan sintaks berikut untuk menghilangkan volume:

DROP VOLUME IF EXISTS <volume-name>;

Saat Anda menghilangkan volume terkelola, Azure Databricks menghapus data yang mendasar dalam waktu 30 hari. Saat Anda menghilangkan volume eksternal, Anda menghapus volume dari Katalog Unity tetapi data yang mendasar tetap tidak berubah di lokasi eksternal.

Membaca file dalam volume

Anda harus memiliki izin berikut untuk melihat konten volume atau mengakses file yang disimpan pada volume:

Sumber daya Izin yang diperlukan
Volume READ
Skema USE SCHEMA
Katalog USE CATALOG

Anda berinteraksi dengan konten volume menggunakan jalur. Lihat Jalur apa yang digunakan untuk mengakses file dalam volume?.

Membuat, menghapus, dan melakukan operasi manajemen file lainnya pada volume

Anda harus memiliki izin berikut untuk melakukan operasi manajemen file pada file yang disimpan pada volume:

Sumber daya Izin yang diperlukan
Volume READ, WRITE
Skema USE SCHEMA
Katalog USE CATALOG

Anda dapat melakukan operasi manajemen file pada volume dengan alat berikut:

  • Catalog Explorer menyediakan banyak opsi UI untuk tugas manajemen file. Lihat Apa itu Catalog Explorer?.
  • Perintah utilitas fs Databricks. Lihat Utilitas sistem file (dbutils.fs).
  • %fs Perintah ajaib menyediakan fungsionalitas yang sama dengan dbutils.fs.
  • Unggah file ke antarmuka pengguna volume. Lihat Mengunggah file ke volume Katalog Unity.
  • Perintah sumber terbuka seperti os.listdir().
  • Beberapa perintah bash didukung. %sh cp didukung, tetapi %sh mv tidak.

Untuk detail lengkap tentang berinteraksi secara terprogram dengan file pada volume, lihat Bekerja dengan file di volume Katalog Unity.

Contoh buku catatan: Membuat dan bekerja dengan volume

Buku catatan berikut menunjukkan sintaks SQL dasar untuk membuat dan berinteraksi dengan volume Katalog Unity.

Tutorial: Buku catatan volume Katalog Unity

Dapatkan buku catatan

Jalur yang dicadangkan untuk volume

Volume memperkenalkan jalur cadangan berikut yang digunakan untuk mengakses volume:

  • dbfs:/Volumes
  • /Volumes

Catatan

Jalur juga dicadangkan untuk potensi kesalahan ketik untuk jalur ini dari API Apache Spark dan , termasuk /volumes, , /Volume/volume, apakah mereka didahului oleh dbfs:/.dbutils Jalur /dbfs/Volumes ini juga dicadangkan, tetapi tidak dapat digunakan untuk mengakses volume.

Volume hanya didukung pada Databricks Runtime 13.3 LTS ke atas. Di Databricks Runtime 12.2 LTS dan di bawahnya, operasi terhadap /Volumes jalur mungkin berhasil, tetapi dapat menulis data ke disk penyimpanan sementara yang terpasang pada kluster komputasi daripada menyimpan data ke volume Unity Catalog seperti yang diharapkan.

Penting

Jika Anda memiliki data yang sudah ada sebelumnya yang disimpan di jalur yang dipesan di akar DBFS, Anda dapat mengajukan tiket dukungan untuk mendapatkan akses sementara ke data ini untuk memindahkannya ke lokasi lain.

Batasan

Anda harus menggunakan komputasi unity Catalog-enabled untuk berinteraksi dengan volume Unity Catalog. Volume tidak mendukung semua beban kerja.

Catatan

Volume tidak mendukung dbutils.fs perintah yang didistribusikan ke pelaksana.

Batasan berikut berlaku:

Di Databricks Runtime 14.3 LTS ke atas:

  • Pada kluster pengguna tunggal, Anda tidak dapat mengakses volume dari utas dan subproses di Scala.

Di Databricks Runtime 14.2 ke bawah:

  • Pada komputasi yang dikonfigurasi dengan mode akses bersama, Anda tidak dapat menggunakan UDF untuk mengakses volume.
    • Baik Python atau Scala memiliki akses ke FUSE dari driver tetapi tidak dari pelaksana.
    • Kode Scala yang melakukan operasi I/O dapat berjalan pada driver tetapi bukan pelaksana.
  • Pada komputasi yang dikonfigurasi dengan mode akses pengguna tunggal, tidak ada dukungan untuk FUSE di Scala, kode Scala IO yang mengakses data menggunakan jalur volume, atau UDF Scala. UDF Python didukung dalam mode akses pengguna tunggal.

Pada semua versi Databricks Runtime yang didukung:

  • Unity Catalog UDF tidak mendukung akses jalur file volume.

  • Anda tidak dapat mengakses volume dari RDD.

  • Anda tidak dapat menggunakan spark-submit dengan JAR yang disimpan dalam volume.

  • Anda tidak dapat menentukan dependensi ke pustaka lain yang diakses melalui jalur volume di dalam file Roda atau JAR.

  • Anda tidak dapat mencantumkan objek Katalog Unity menggunakan /Volumes/<catalog-name> pola atau /Volumes/<catalog-name>/<schema-name> . Anda harus menggunakan jalur yang sepenuhnya memenuhi syarat yang menyertakan nama volume.

  • Titik akhir DBFS untuk REST API tidak mendukung jalur volume.

  • Volume dikecualikan dari hasil pencarian global di ruang kerja Azure Databricks.

  • Anda tidak dapat menentukan volume sebagai tujuan untuk pengiriman log kluster.

  • %sh mv tidak didukung untuk memindahkan file antar volume. Gunakan dbutils.fs.mv atau %sh cp sebagai gantinya.

  • Anda tidak dapat membuat sistem file Hadoop kustom dengan volume, yang berarti berikut ini tidak didukung:

    import org.apache.hadoop.fs.Path
    val path =  new Path("dbfs:/Volumes/main/default/test-volume/file.txt")
    val fs = path.getFileSystem(sc.hadoopConfiguration)
    fs.listStatus(path)
    
  • Volume tidak tersedia di wilayah atau ruang kerja Azure Government dengan kepatuhan FedRAMP.

  • Anda harus menggunakan format jalur dengan dbfs:/ skema di panel konfigurasi pustaka Azure Data Factory. Contohnya,dbfs:/Volumes/<catalog-name>/<schema-name>/<volume-name>/file.