Bagaimana cara kerja jalur untuk data yang dikelola oleh Unity Catalog?
Artikel ini menjelaskan pembatasan sekeliling jalur yang tumpang tindih di Unity Catalog, merinci pola akses berbasis jalur untuk file data di objek Katalog Unity, dan menjelaskan cara Katalog Unity mengelola jalur untuk tabel dan volume.
Catatan
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.
Jalur untuk objek Katalog Unity tidak dapat tumpang tindih
Unity Catalog memberlakukan tata kelola data dengan mencegah direktori data terkelola tumpang tindih. Katalog Unity memberlakukan aturan berikut:
- Lokasi eksternal tidak dapat tumpang tindih dengan lokasi eksternal lainnya.
- Tabel dan volume menyimpan file data di lokasi eksternal atau lokasi akar metastore.
- Volume tidak dapat tumpang tindih dengan volume lain.
- Tabel tidak dapat tumpang tindih dengan tabel lain.
- Tabel dan volume tidak dapat saling tumpang tindih.
- Lokasi penyimpanan terkelola tidak dapat saling tumpang tindih. Lihat Menentukan lokasi penyimpanan terkelola di Katalog Unity.
- Volume eksternal tidak dapat tumpang tindih dengan lokasi penyimpanan terkelola.
- Tabel eksternal tidak dapat tumpang tindih dengan lokasi penyimpanan terkelola.
Aturan ini berarti bahwa pembatasan berikut ada di Katalog Unity:
- Anda tidak dapat menentukan lokasi eksternal dalam lokasi eksternal lain.
- Anda tidak dapat menentukan volume dalam volume lain.
- Anda tidak dapat menentukan tabel dalam tabel lain.
- Anda tidak dapat menentukan tabel pada file data atau direktori apa pun dalam volume.
- Anda tidak dapat menentukan volume pada direktori dalam tabel.
Catatan
Anda selalu dapat menggunakan akses berbasis jalur untuk menulis atau membaca file data dari volume, termasuk Delta Lake. Anda tidak dapat mendaftarkan file data ini sebagai tabel di metastore Katalog Unity.
Jalur untuk tabel terkelola dan volume terkelola dikelola sepenuhnya oleh Katalog Unity
Saat Anda membuat tabel terkelola atau volume terkelola, Unity Catalog membuat direktori baru di lokasi penyimpanan yang dikonfigurasi Katalog Unity yang terkait dengan skema yang berisi. Nama direktori ini dihasilkan secara acak untuk menghindari potensi tabrakan dengan direktori lain yang sudah ada.
Perilaku ini berbeda dari bagaimana metastore Apache Hive membuat tabel terkelola. Databricks merekomendasikan untuk selalu berinteraksi dengan tabel terkelola Unity Catalog menggunakan nama tabel dan volume terkelola Unity Catalog menggunakan jalur volume.
Jalur untuk tabel eksternal dan volume eksternal diatur oleh Katalog Unity
Saat Anda membuat tabel eksternal atau volume eksternal, Anda menentukan jalur dalam lokasi eksternal yang diatur oleh Katalog Unity.
Penting
Databricks merekomendasikan untuk tidak pernah membuat volume eksternal atau tabel eksternal di akar lokasi eksternal. Sebagai gantinya, buat volume eksternal dan tabel eksternal di sub-direktori dalam lokasi eksternal. Rekomendasi ini akan membantu menghindari jalur yang tumpang tindih secara tidak sengaja. Lihat Jalur untuk objek Katalog Unity tidak dapat tumpang tindih.
Untuk kemudahan penggunaan, Databricks merekomendasikan untuk berinteraksi dengan tabel eksternal Unity Catalog menggunakan nama tabel dan volume eksternal Unity Catalog menggunakan jalur volume.
Secara bergantian, pengguna dengan hak istimewa yang memadai pada objek Katalog Unity yang sesuai dapat mengakses data dari tabel eksternal atau volume eksternal menggunakan jalur penyimpanan objek cloud yang sepenuhnya memenuhi syarat.
Penting
Katalog Unity mengelola semua hak istimewa untuk akses menggunakan URI cloud ke data yang terkait dengan tabel eksternal atau volume eksternal. Hak istimewa ini mengambil alih hak istimewa apa pun yang terkait dengan lokasi eksternal. Lihat Hak istimewa Katalog Unity dan objek yang dapat diamankan
Bagaimana Anda dapat mengakses data di Unity Catalog?
Objek Katalog Unity menyediakan akses ke data melalui pengidentifikasi objek, jalur volume, atau URI cloud. Anda dapat menggunakan nilai-nilai ini untuk mengakses data yang terkait dengan volume dan tabel.
Tabel Unity Catalog diakses menggunakan pengidentifikasi tiga tingkat dengan pola berikut:
<catalog_name>.<schema_name>.<table_name>
Apa itu jalur file volume di Unity Catalog?
Volume menyediakan jalur file untuk mengakses file data dengan pola berikut:
/Volumes/<catalog_name>/<schema_name>/<volume_name>/<path_to_file>
URI cloud mengharuskan pengguna untuk menyediakan driver, pengidentifikasi kontainer penyimpanan, dan jalur lengkap ke file target, seperti dalam contoh berikut:
abfss://<container_name>@<storage_account>.dfs.core.windows.net/<path>
Tabel berikut ini memperlihatkan metode akses yang diizinkan untuk objek Katalog Unity:
Objek | Pengidentifikasi objek | Jalur file | Cloud URI |
---|---|---|---|
Lokasi eksternal | no | no | yes |
Tabel terkelola | yes | no | no |
Tabel eksternal | yes | no | yes |
Volume terkelola | no | yes | no |
Volume eksternal | no | yes | yes |
Catatan
Volume Katalog Unity menggunakan pengidentifikasi objek tiga tingkat dengan pola berikut untuk perintah manajemen (seperti CREATE VOLUME
dan DROP VOLUME
):
<catalog_name>.<schema_name>.<volume_name>
Untuk benar-benar bekerja dengan file dalam volume, Anda harus menggunakan akses berbasis jalur.