Bagikan melalui


Apa itu volume Katalog Unity?

Volume adalah objek Katalog Unity yang memungkinkan tata kelola atas himpunan data non-tabular. Volume 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.

Databricks merekomendasikan penggunaan volume untuk mengatur akses ke semua data non-tabular. Seperti tabel, volume dapat dikelola atau eksternal.

Penting

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

Artikel berikut ini menyediakan informasi selengkapnya tentang bekerja dengan volume:

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 terkelola?

Volume terkelola adalah volume penyimpanan yang diatur Oleh Katalog Unity yang dibuat dalam lokasi penyimpanan terkelola dari skema yang berisi. Lihat Menentukan lokasi penyimpanan terkelola di Katalog Unity.

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.

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.

Katalog Unity tidak mengelola siklus hidup dan tata letak file dalam volume eksternal. Saat Anda menghapus volume eksternal, Unity Catalog tidak menghapus data yang mendasar.

Jalur apa yang digunakan untuk mengakses file dalam volume?

Volume berada di tingkat ketiga namespace layanan tiga tingkat Unity Catalog (catalog.schema.volume):

Diagram model objek Katalog Unity, berfokus pada 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 Katalog Unity yang sesuai.

Catatan

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

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.