Praktik terbaik untuk DBFS dan Katalog Unity

Penting

Root DBFS dan pemasangan DBFS sudah dihentikan dan tidak direkomendasikan oleh Databricks. Akun baru disediakan tanpa akses ke fitur-fitur ini. Databricks merekomendasikan penggunaan volume dari Unity Catalog, lokasi eksternal, atau file ruang kerja sebagai gantinya.

Unity Catalog memperkenalkan sejumlah konfigurasi dan konsep baru yang mendekati tata kelola data sepenuhnya berbeda dari DBFS. Artikel ini menguraikan beberapa praktik terbaik dalam hal bekerja dengan lokasi eksternal Unity Catalog dan DBFS.

Databricks merekomendasikan untuk tidak menggunakan DBFS dan penyimpanan objek cloud yang dipasang untuk sebagian besar kasus penggunaan di ruang kerja Azure Databricks dengan dukungan Katalog Unity. Artikel ini menjelaskan beberapa skenario di mana Anda harus menggunakan penyimpanan objek cloud yang dipasang. Perhatikan bahwa Databricks tidak merekomendasikan penggunaan akar DBFS bersama dengan Katalog Unity, kecuali Anda harus memigrasikan file atau data yang disimpan di sana ke Dalam Katalog Unity.

Bagaimana DBFS digunakan di ruang kerja yang mendukung Katalog Unity?

Tindakan yang dilakukan terhadap tabel di hive_metastore menggunakan pola akses data warisan, yang mungkin menyertakan data dan kredensial penyimpanan yang dikelola oleh DBFS. Tabel yang dikelola dalam cakupan ruang kerja hive_metastore disimpan di root DBFS.

Bagaimana cara kerja DBFS dalam mode akses khusus (sebelumnya mode akses pengguna tunggal)?

Sumber daya komputasi yang dikonfigurasi dengan mode akses khusus memiliki akses penuh ke DBFS, termasuk semua file di akar DBFS dan data yang dipasang.

Bagaimana cara kerja DBFS dalam mode akses standar (sebelumnya mode akses bersama)?

Mode akses standar menggabungkan tata kelola data Unity Catalog dengan ACL tabel warisan Azure Databricks. Akses ke data di hive_metastore hanya tersedia untuk pengguna yang memiliki izin yang diberikan secara eksplisit.

Untuk berinteraksi dengan file secara langsung menggunakan DBFS, Anda harus memiliki izin ANY FILE yang diberikan. Karena ANY FILE memungkinkan pengguna untuk melewati ACL tabel warisan di hive_metastore dan mengakses semua data yang dikelola oleh DBFS, Databricks merekomendasikan perhatian saat memberikan hak istimewa ini.

Jangan gunakan DBFS dengan lokasi eksternal dari Unity Catalog

Katalog Unity mengamankan akses ke data di lokasi eksternal dengan menggunakan jalur URI cloud penuh untuk mengidentifikasi hibah pada direktori penyimpanan objek terkelola. Pemasangan DBFS menggunakan model akses data yang sama sekali berbeda yang melewati Unity Catalog sepenuhnya. Databricks menyarankan agar Anda tidak menggunakan kembali volume penyimpanan objek cloud antara pemasangan DBFS dan volume eksternal UC, termasuk saat berbagi data di seluruh ruang kerja atau akun.

Amankan penyimpanan yang dikelola Katalog Unity Anda

Katalog Unity menggunakan lokasi penyimpanan terkelola untuk menyimpan file data untuk tabel dan volume terkelola.

Databricks merekomendasikan hal berikut untuk lokasi penyimpanan terkelola:

  • Gunakan akun penyimpanan atau wadah baru.
  • Tentukan kebijakan identitas kustom untuk Katalog Unity.
  • Batasi semua akses ke Azure Databricks yang dikelola oleh Unity Catalog.
  • Batasi akses ke semua kebijakan akses identitas yang telah dibuat untuk Katalog Unity.

Menambahkan data yang sudah ada ke lokasi eksternal

Dimungkinkan untuk memuat akun penyimpanan yang ada ke Unity Catalog menggunakan lokasi eksternal. Untuk keamanan terbesar, Databricks hanya merekomendasikan pemuatan akun penyimpanan ke lokasi eksternal setelah mencabut semua kredensial penyimpanan dan pola akses lainnya.

Anda tidak boleh memuat akun penyimpanan yang digunakan sebagai akar DBFS sebagai lokasi eksternal di Unity Catalog.

Konfigurasi kluster diabaikan dalam akses sistem file oleh Katalog Unity

Katalog Unity tidak menghormati konfigurasi kluster untuk pengaturan sistem file. Ini berarti bahwa pengaturan sistem file Hadoop untuk mengonfigurasi perilaku kustom dengan penyimpanan objek cloud tidak berfungsi saat mengakses data menggunakan Katalog Unity.

Batasan terkait dengan akses jalur ganda

Meskipun Anda umumnya dapat menggunakan Unity Catalog dan DBFS secara bersamaan, jalur yang identik atau memiliki hubungan induk/anak tidak dapat dirujuk dalam perintah atau sel buku catatan yang sama menggunakan metode akses yang berbeda.

Misalnya, jika tabel eksternal foo ditentukan dalam hive_metastore di lokasi a/b/c dan lokasi eksternal ditentukan dalam Katalog Unity pada a/b/, kode berikut akan melemparkan kesalahan:

spark.read.table("foo").filter("id IS NOT NULL").write.mode("overwrite").save("a/b/c")

Kesalahan ini tidak akan muncul jika logika ini dipecah menjadi dua sel:

df = spark.read.table("foo").filter("id IS NOT NULL")
df.write.mode("overwrite").save("a/b/c")