Praktik terbaik Katalog Unity
Dokumen ini memberikan rekomendasi untuk menggunakan Unity Catalog dan Delta Sharing untuk memenuhi kebutuhan tata kelola data Anda.
Unity Catalog adalah solusi tata kelola terperintah untuk data dan AI pada platform Databricks. Unity Catalog membantu menyederhanakan keamanan dan tata kelola data Anda dengan menyediakan tempat terpusat untuk mengelola dan mengaudit akses data. Berbagi Delta adalah platform berbagi data aman yang memungkinkan Anda berbagi data di Azure Databricks dengan pengguna di luar organisasi Anda. Ini menggunakan Katalog Unity untuk mengelola dan mengaudit perilaku berbagi.
Tata kelola data dan blok penyusun isolasi data
Untuk mengembangkan model tata kelola data dan rencana isolasi data yang berfungsi untuk organisasi Anda, ini membantu memahami blok penyusun utama yang tersedia untuk Anda saat Anda membuat solusi tata kelola data di Azure Databricks.
Diagram berikut mengilustrasikan hierarki data utama di Unity Catalog (beberapa objek yang dapat diamankan berwarna abu-abu untuk menekankan hierarki objek yang dikelola di bawah katalog).
Objek dalam hierarki tersebut mencakup yang berikut ini:
Metastore: Metastore adalah kontainer objek tingkat atas di Unity Catalog. Metastores hidup di tingkat akun dan berfungsi sebagai bagian atas piramida dalam model tata kelola data Azure Databricks.
Metodori mengelola aset data (tabel, tampilan, dan volume) dan izin yang mengatur akses ke aset data tersebut. Admin akun Azure Databricks dapat membuat satu metastore untuk setiap wilayah tempat mereka beroperasi, dan menetapkannya ke beberapa ruang kerja Azure Databricks di wilayah yang sama. Admin metastore dapat mengelola semua objek di metastore. Mereka tidak memiliki akses langsung untuk membaca dan menulis ke tabel yang terdaftar di metastore, tetapi mereka memiliki akses tidak langsung melalui kemampuan mereka untuk mentransfer kepemilikan objek data.
Penyimpanan fisik untuk metastore tertentu adalah, secara default, diisolasi dari penyimpanan untuk metastore lain di akun Anda.
Metastores menyediakan isolasi regional tetapi tidak dimaksudkan sebagai unit isolasi data. Isolasi data harus dimulai pada tingkat katalog.
Katalog: Katalog adalah tingkat tertinggi dalam hierarki data (tabel/tampilan/volume skema > katalog>) yang dikelola oleh metastore Katalog Unity. Mereka dimaksudkan sebagai unit utama isolasi data dalam model tata kelola data Azure Databricks yang khas.
Katalog mewakili pengelompokan skema logis, biasanya dibatasi oleh persyaratan akses data. Katalog sering mencerminkan unit organisasi atau cakupan siklus hidup pengembangan perangkat lunak. Anda dapat memilih, misalnya, untuk memiliki katalog untuk data produksi dan katalog untuk data pengembangan, atau katalog untuk data non-pelanggan dan satu untuk data pelanggan sensitif.
Katalog dapat disimpan di tingkat metastore, atau Anda dapat mengonfigurasi katalog untuk disimpan secara terpisah dari metastore induk lainnya. Jika ruang kerja Anda diaktifkan untuk Katalog Unity secara otomatis, tidak ada penyimpanan tingkat metastore, dan Anda harus menentukan lokasi penyimpanan saat membuat katalog.
Jika katalog adalah unit utama isolasi data dalam model tata kelola data Azure Databricks, ruang kerja adalah lingkungan utama untuk bekerja dengan aset data. Admin metastore dan pemilik katalog dapat mengelola akses ke katalog secara independen dari ruang kerja, atau mereka dapat mengikat katalog ke ruang kerja tertentu untuk memastikan bahwa jenis data tertentu hanya diproses di ruang kerja tersebut. Anda mungkin ingin ruang kerja produksi dan pengembangan terpisah, misalnya, atau ruang kerja terpisah untuk memproses data pribadi.
Secara default, izin akses untuk objek yang dapat diamankan diwariskan oleh turunan objek tersebut, dengan katalog di bagian atas hierarki. Ini memudahkan untuk menyiapkan aturan akses default untuk data Anda dan menentukan aturan yang berbeda di setiap tingkat hierarki hanya di mana Anda membutuhkannya.
Skema (Database): Skema, juga dikenal sebagai database, adalah pengelompokan logis data tabular (tabel dan tampilan), data non-tabular (volume), fungsi, dan model pembelajaran mesin. Mereka memberi Anda cara untuk mengatur dan mengontrol akses ke data yang lebih terperinci daripada katalog. Biasanya mereka mewakili satu kasus penggunaan, proyek, atau kotak pasir tim.
Skema dapat disimpan dalam penyimpanan fisik yang sama dengan katalog induk, atau Anda dapat mengonfigurasi skema untuk disimpan secara terpisah dari katalog induk lainnya.
Admin metastore, pemilik katalog induk, dan pemilik skema dapat mengelola akses ke skema.
Tabel: Tabel berada di lapisan ketiga namespace layanan tiga tingkat Unity Catalog. Mereka berisi baris data.
Katalog Unity memungkinkan Anda membuat tabel terkelola dan tabel eksternal.
Untuk tabel terkelola, Unity Catalog sepenuhnya mengelola siklus hidup dan tata letak file. Secara default, tabel terkelola disimpan di lokasi penyimpanan akar yang Anda konfigurasi saat membuat metastore. Anda dapat memilih untuk mengisolasi penyimpanan untuk tabel terkelola di tingkat katalog atau skema.
Tabel eksternal adalah tabel yang siklus hidup data dan tata letak filenya dikelola menggunakan penyedia cloud Anda dan platform data lainnya, bukan Katalog Unity. Biasanya Anda menggunakan tabel eksternal untuk mendaftarkan sejumlah besar data yang ada, atau jika Anda juga memerlukan akses tulis ke data menggunakan alat di luar kluster Azure Databricks dan gudang Databricks SQL. Setelah tabel eksternal terdaftar di metastore Unity Catalog, Anda dapat mengelola dan mengaudit akses Azure Databricks seperti yang Anda bisa dengan tabel terkelola.
Pemilik katalog induk dan pemilik skema dapat mengelola akses ke tabel, seperti halnya admin metastore (secara tidak langsung).
Tampilan: Tampilan adalah objek baca-saja yang berasal dari satu atau beberapa tabel dan tampilan dalam metastore.
Baris dan kolom: Akses baris dan tingkat kolom, bersama dengan masking data, diberikan menggunakan tampilan dinamis atau filter baris dan masker kolom. Tampilan dinamis bersifat baca-saja.
Volume: Volume berada di lapisan ketiga namespace layanan tiga tingkat Unity Catalog. Mereka mengelola data non-tabular. Anda dapat menggunakan volume untuk menyimpan, mengatur, dan mengakses file dalam format apa pun, termasuk data terstruktur, semi terstruktur, dan tidak terstruktur. File dalam volume tidak dapat didaftarkan sebagai tabel.
Model dan fungsi: Meskipun tidak, secara ketat, aset data, model terdaftar, dan fungsi yang ditentukan pengguna juga dapat dikelola di Katalog Unity dan berada di tingkat terendah dalam hierarki objek. Lihat Mengelola siklus hidup model di Unity Catalog dan Fungsi yang ditentukan pengguna (UDF) di Unity Catalog.
Merencanakan model isolasi data Anda
Ketika organisasi menggunakan platform data seperti Azure Databricks, sering kali ada kebutuhan untuk memiliki batas isolasi data antara lingkungan (seperti pengembangan dan produksi) atau antara unit operasi organisasi.
Standar isolasi mungkin bervariasi untuk organisasi Anda, tetapi biasanya termasuk harapan berikut:
- Pengguna hanya dapat memperoleh akses ke data berdasarkan aturan akses tertentu.
- Data hanya dapat dikelola oleh orang atau tim yang ditunjuk.
- Data dipisahkan secara fisik dalam penyimpanan.
- Data hanya dapat diakses di lingkungan yang ditunjuk.
Kebutuhan akan isolasi data dapat menyebabkan lingkungan tersedak yang dapat membuat tata kelola data dan kolaborasi tidak perlu sulit. Azure Databricks memecahkan masalah ini menggunakan Unity Catalog, yang menyediakan sejumlah opsi isolasi data sambil mempertahankan platform tata kelola data terpadu. Bagian ini membahas opsi isolasi data yang tersedia di Azure Databricks dan cara menggunakannya, baik Anda lebih suka model tata kelola data terpusat atau yang terdistribusi.
Pengguna hanya dapat memperoleh akses ke data berdasarkan aturan akses tertentu
Sebagian besar organisasi memiliki persyaratan ketat sekeliling akses data berdasarkan persyaratan internal atau peraturan. Contoh umum data yang harus dijaga keamanannya termasuk informasi gaji karyawan atau informasi pembayaran kartu kredit. Akses ke jenis informasi ini biasanya dikontrol dan diaudit secara berkala. Unity Catalog memberi Anda kontrol terperinci atas aset data dalam katalog untuk memenuhi standar industri ini. Dengan kontrol yang disediakan Unity Catalog, pengguna hanya dapat melihat dan mengkueri data yang berhak mereka lihat dan kueri.
Data hanya dapat dikelola oleh orang atau tim yang ditunjuk
Unity Catalog memberi Anda kemampuan untuk memilih antara model tata kelola terpusat dan terdistribusi.
Dalam model tata kelola terpusat, administrator tata kelola Anda adalah pemilik metastore dan dapat mengambil kepemilikan objek apa pun dan memberikan dan mencabut izin.
Dalam model tata kelola terdistribusi, katalog atau sekumpulan katalog adalah domain data. Pemilik katalog tersebut dapat membuat dan memiliki semua aset dan mengelola tata kelola dalam domain tersebut. Pemilik domain tertentu dapat beroperasi secara independen dari pemilik domain lain.
Terlepas dari apakah Anda memilih metastore atau katalog sebagai domain data Anda, Databricks sangat menyarankan agar Anda menetapkan grup sebagai admin metastore atau pemilik katalog.
Data dipisahkan secara fisik dalam penyimpanan
Organisasi dapat mengharuskan data jenis tertentu disimpan dalam akun atau wadah tertentu di penyewa cloud mereka.
Unity Catalog memberikan kemampuan untuk mengonfigurasi lokasi penyimpanan di tingkat metastore, katalog, atau skema untuk memenuhi persyaratan tersebut.
Misalnya, organisasi Anda memiliki kebijakan kepatuhan perusahaan yang memerlukan data produksi yang berkaitan dengan sumber daya manusia untuk berada di kontainer abfss://mycompany-hr-prod@storage-account.dfs.core.windows.net. Di Unity Catalog, Anda dapat mencapai persyaratan ini dengan mengatur lokasi pada tingkat katalog, membuat katalog yang disebut, misalnya hr_prod
, dan menetapkan lokasi abfss://mycompany-hr-prod@storage-account.dfs.core.windows.net/unity-catalog ke dalamnya. Ini berarti bahwa tabel atau volume terkelola yang dibuat dalam hr_prod
katalog (misalnya, menggunakan CREATE TABLE hr_prod.default.table …
) menyimpan data mereka di abfss://mycompany-hr-prod@storage-account.dfs.core.windows.net/unity-catalog. Secara opsional, Anda dapat memilih untuk menyediakan lokasi tingkat skema untuk mengatur data dalam hr_prod catalog
pada tingkat yang lebih terperinci.
Jika isolasi penyimpanan seperti itu tidak diperlukan, Anda dapat mengatur lokasi penyimpanan di tingkat metastore. Hasilnya adalah bahwa lokasi ini berfungsi sebagai lokasi default untuk menyimpan tabel dan volume terkelola di seluruh katalog dan skema di metastore.
Sistem mengevaluasi hierarki lokasi penyimpanan dari skema ke katalog ke metastore.
Misalnya, jika tabel myCatalog.mySchema.myTable
dibuat di my-region-metastore
, lokasi penyimpanan tabel ditentukan sesuai dengan aturan berikut:
- Jika lokasi telah disediakan untuk
mySchema
, lokasi akan disimpan di sana. - Jika tidak, dan lokasi telah disediakan pada
myCatalog
, lokasi akan disimpan di sana. - Akhirnya, jika tidak ada lokasi yang disediakan pada
myCatalog
, itu akan disimpan di lokasi yang terkait denganmy-region-metastore
.
Data hanya dapat diakses di lingkungan yang ditunjuk
Persyaratan organisasi dan kepatuhan sering menentukan bahwa Anda menyimpan data tertentu, seperti data pribadi, hanya dapat diakses di lingkungan tertentu. Anda mungkin juga ingin menjaga data produksi tetap terisolasi dari lingkungan pengembangan atau memastikan bahwa himpunan data dan domain tertentu tidak pernah digabungkan.
Di Databricks, ruang kerja adalah lingkungan pemrosesan data utama, dan katalog adalah domain data utama. Katalog Unity memungkinkan admin metastore dan pemilik katalog menetapkan, atau "mengikat," katalog ke ruang kerja tertentu. Pengikatan sadar lingkungan ini memberi Anda kemampuan untuk memastikan bahwa hanya katalog tertentu yang tersedia dalam ruang kerja, terlepas dari hak istimewa tertentu pada objek data yang diberikan kepada pengguna.
Sekarang mari kita lihat lebih dalam proses penyiapan Unity Catalog untuk memenuhi kebutuhan Anda.
Mengonfigurasi metastore Unity Catalog
Metastore adalah wadah objek tingkat-atas di Katalog Unity. Metastores mengelola aset data (tabel, tampilan, dan volume) serta objek yang dapat diamankan lainnya yang dikelola oleh Unity Catalog. Untuk daftar lengkap objek yang dapat diamankan, lihat Objek yang dapat diamankan di Katalog Unity.
Bagian ini menyediakan tips untuk membuat dan mengonfigurasi metastores. Jika ruang kerja Anda diaktifkan secara otomatis untuk Katalog Unity, Anda tidak perlu membuat metastore, tetapi informasi yang disajikan di bagian ini mungkin masih berguna. Lihat Pengaktifan Otomatis Katalog Unity.
Tips untuk mengonfigurasi metastores:
Anda harus menyiapkan satu metastore untuk setiap wilayah tempat Anda memiliki ruang kerja Azure Databricks.
Setiap ruang kerja yang dilampirkan ke satu metastore regional memiliki akses ke data yang dikelola oleh metastore. Jika Anda ingin berbagi data di antara metastores, gunakan Berbagi Delta.
Setiap metastore dapat dikonfigurasi dengan lokasi penyimpanan terkelola (juga disebut penyimpanan akar) di penyewa cloud Anda yang dapat digunakan untuk menyimpan tabel terkelola dan volume terkelola.
Jika Anda memilih untuk membuat lokasi terkelola tingkat metastore, Anda harus memastikan bahwa tidak ada pengguna yang memiliki akses langsung ke lokasi tersebut (yaitu, melalui akun cloud yang berisinya). Memberikan akses ke lokasi penyimpanan ini dapat memungkinkan pengguna untuk melewati kontrol akses di metastore Katalog Unity dan mengganggu auditabilitas. Untuk alasan ini, penyimpanan terkelola metastore Anda harus menjadi kontainer khusus. Anda tidak boleh menggunakan kembali kontainer yang juga merupakan sistem file akar DBFS Anda atau sebelumnya telah menjadi sistem file akar DBFS.
Anda juga memiliki opsi untuk menentukan penyimpanan terkelola di tingkat katalog dan skema, mengganti lokasi penyimpanan akar metastore. Dalam sebagian besar skenario, Databricks merekomendasikan untuk menyimpan data terkelola di tingkat katalog.
Anda harus memahami hak istimewa admin ruang kerja di ruang kerja yang diaktifkan untuk Katalog Unity, dan meninjau penetapan admin ruang kerja yang ada.
Admin ruang kerja dapat mengelola operasi untuk ruang kerja mereka termasuk menambahkan pengguna dan perwakilan layanan, membuat kluster, dan mendelegasikan pengguna lain untuk menjadi admin ruang kerja. Jika ruang kerja Anda diaktifkan untuk Katalog Unity secara otomatis, admin ruang kerja memiliki kemampuan untuk membuat katalog dan banyak objek Katalog Unity lainnya secara default. Lihat Hak istimewa admin ruang kerja saat ruang kerja diaktifkan untuk Katalog Unity secara otomatis
Admin ruang kerja juga memiliki kemampuan untuk melakukan tugas manajemen ruang kerja seperti mengelola kepemilikan pekerjaan dan menampilkan buku catatan, yang dapat memberikan akses tidak langsung ke data yang terdaftar di Katalog Unity. Admin ruang kerja adalah peran istimewa yang harus Anda distribusikan dengan hati-hati.
Jika Anda menggunakan ruang kerja untuk mengisolasi akses data pengguna, Anda mungkin ingin menggunakan pengikatan katalog ruang kerja. Pengikatan katalog ruang kerja memungkinkan Anda membatasi akses katalog berdasarkan batas ruang kerja. Misalnya, Anda dapat memastikan bahwa admin dan pengguna ruang kerja hanya dapat mengakses data
prod_catalog
produksi dari lingkungan ruang kerja produksi,prod_workspace
. Defaultnya adalah berbagi katalog dengan semua ruang kerja yang dilampirkan ke metastore saat ini. Lihat Membatasi akses katalog ke ruang kerja tertentu.Jika ruang kerja Anda diaktifkan untuk Katalog Unity secara otomatis, katalog ruang kerja yang telah disediakan sebelumnya terikat ke ruang kerja Anda secara default.
Lihat Membuat metastore Katalog Unity.
Mengonfigurasi lokasi eksternal dan kredensial penyimpanan
Lokasi eksternal memungkinkan Katalog Unity untuk membaca dan menulis data di penyewa cloud Anda atas nama pengguna. Lokasi eksternal didefinisikan sebagai jalur ke penyimpanan cloud, dikombinasikan dengan kredensial penyimpanan yang dapat digunakan untuk mengakses lokasi tersebut.
Anda dapat menggunakan lokasi eksternal untuk mendaftarkan tabel eksternal dan volume eksternal di Unity Catalog. Konten entitas ini secara fisik terletak di sub-jalur di lokasi eksternal yang dirujuk saat pengguna membuat volume atau tabel.
Kredensial penyimpanan merangkum kredensial cloud jangka panjang yang menyediakan akses ke penyimpanan cloud. Ini bisa berupa identitas terkelola Azure (sangat disarankan) atau perwakilan layanan. Menggunakan identitas terkelola Azure memiliki keuntungan berikut dibandingkan menggunakan perwakilan layanan:
- Identitas terkelola tidak mengharuskan Anda untuk mempertahankan mandat atau memutar rahasia.
- Jika ruang kerja Azure Databricks Anda disebarkan ke VNet Anda sendiri (juga dikenal sebagai injeksi VNet), Anda dapat terhubung ke akun Azure Data Lake Storage Gen2 yang dilindungi oleh firewall penyimpanan.
Untuk peningkatan isolasi data, Anda dapat mengikat kredensial penyimpanan dan lokasi eksternal ke ruang kerja tertentu. Lihat (Opsional) Menetapkan lokasi eksternal ke ruang kerja tertentu dan (Opsional) Menetapkan kredensial penyimpanan ke ruang kerja tertentu.
Tip
Lokasi eksternal, dengan menggabungkan kredensial penyimpanan dan jalur penyimpanan, memberikan kontrol dan auditabilitas akses penyimpanan yang kuat. Untuk mencegah pengguna melewati kontrol akses yang disediakan oleh Unity Catalog, Anda harus memastikan bahwa Anda membatasi jumlah pengguna dengan akses langsung ke kontainer apa pun yang digunakan sebagai lokasi eksternal. Untuk alasan yang sama, Anda tidak boleh memasang akun penyimpanan ke DBFS jika akun tersebut juga digunakan sebagai lokasi eksternal. Databricks merekomendasikan agar Anda memigrasikan pemasangan di lokasi penyimpanan cloud ke lokasi eksternal di Unity Catalog menggunakan Catalog Explorer.
Untuk daftar praktik terbaik untuk mengelola lokasi eksternal, lihat Mengelola lokasi eksternal, tabel eksternal, dan volume eksternal. Lihat juga Membuat lokasi eksternal untuk menyambungkan penyimpanan cloud ke Azure Databricks.
Menata data Anda
Databricks merekomendasikan penggunaan katalog untuk memberikan pemisahan di seluruh arsitektur informasi organisasi Anda. Sering kali ini berarti bahwa katalog sesuai dengan cakupan lingkungan pengembangan perangkat lunak, tim, atau unit bisnis. Jika Anda menggunakan ruang kerja sebagai alat isolasi data—misalnya, menggunakan ruang kerja yang berbeda untuk lingkungan produksi dan pengembangan, atau ruang kerja tertentu untuk bekerja dengan data yang sangat sensitif, Anda juga dapat mengikat katalog ke ruang kerja tertentu. Ini memastikan bahwa semua pemrosesan data tertentu ditangani di ruang kerja yang sesuai. Lihat Membatasi akses katalog ke ruang kerja tertentu.
Skema (juga disebut database) adalah lapisan kedua namespace layanan tiga tingkat Unity Catalog dan mengatur tabel, tampilan, dan volume. Anda dapat menggunakan skema untuk mengatur dan menentukan izin untuk aset Anda.
Objek yang diatur oleh Katalog Unity dapat dikelola atau eksternal:
Objek terkelola adalah cara default untuk membuat objek data di Unity Catalog.
Unity Catalog mengelola siklus hidup dan tata letak file untuk keamanan ini. Anda tidak boleh menggunakan alat di luar Azure Databricks untuk memanipulasi file dalam tabel atau volume terkelola secara langsung.
Tabel dan volume terkelola disimpan dalam penyimpanan terkelola, yang dapat ada di tingkat metastore, katalog, atau skema untuk tabel atau volume tertentu. Lihat Data dipisahkan secara fisik dalam penyimpanan.
Tabel dan volume terkelola adalah solusi yang mudah ketika Anda ingin menyediakan lokasi yang diatur untuk konten Anda tanpa overhead untuk membuat dan mengelola lokasi eksternal dan kredensial penyimpanan.
Tabel terkelola selalu menggunakan format tabel Delta .
Objek eksternal adalah dapat diamankan yang siklus hidup data dan tata letak filenya tidak dikelola oleh Unity Catalog.
Volume dan tabel eksternal terdaftar di lokasi eksternal untuk menyediakan akses ke sejumlah besar file yang sudah ada di penyimpanan cloud tanpa memerlukan aktivitas penyalinan data. Gunakan objek eksternal saat Anda memiliki file yang diproduksi oleh sistem lain dan ingin mereka dipentaskan untuk akses dari dalam Azure Databricks, atau ketika alat di luar Azure Databricks memerlukan akses langsung ke file-file ini.
Tabel eksternal mendukung Delta Lake dan banyak format data lainnya, termasuk Parquet, JSON, dan CSV. Volume terkelola dan eksternal dapat digunakan untuk mengakses dan menyimpan file format arbitrer: data dapat disusun, semi terstruktur, atau tidak terstruktur.
Untuk informasi selengkapnya tentang membuat tabel dan volume, lihat Apa itu tabel dan tampilan? dan Apa itu volume Katalog Unity?.
Mengelola lokasi eksternal, tabel eksternal, dan volume eksternal
Diagram di bawah ini mewakili hierarki sistem file dari satu kontainer penyimpanan cloud, dengan empat lokasi eksternal yang berbagi satu kredensial penyimpanan.
Setelah Anda memiliki lokasi eksternal yang dikonfigurasi di Unity Catalog, Anda dapat membuat tabel dan volume eksternal pada direktori di dalam lokasi eksternal. Anda kemudian dapat menggunakan Unity Catalog untuk mengelola akses pengguna dan grup ke tabel dan volume ini. Ini memungkinkan Anda untuk menyediakan akses pengguna atau grup tertentu ke direktori dan file tertentu di kontainer penyimpanan cloud.
Catatan
Saat Anda menentukan volume, akses URI cloud ke data di bawah jalur volume diatur oleh izin volume.
Rekomendasi untuk menggunakan lokasi eksternal
Rekomendasi untuk memberikan izin pada lokasi eksternal:
Berikan kemampuan untuk membuat lokasi eksternal hanya kepada administrator yang ditugaskan untuk menyiapkan koneksi antara Katalog Unity dan penyimpanan cloud, atau ke teknisi data tepercaya.
Lokasi eksternal menyediakan akses dari dalam Katalog Unity ke lokasi yang mencakup secara luas di penyimpanan cloud—misalnya, seluruh wadah atau kontainer (abfss://my-container@storage-account.dfs.core.windows.net) atau subpath yang luas (abfss://my-container@storage-account.dfs.core.windows.net/jalur/ke/subdirektori). Niatnya adalah bahwa administrator cloud dapat terlibat dalam menyiapkan beberapa lokasi eksternal dan kemudian mendelegasikan tanggung jawab mengelola lokasi tersebut kepada administrator Azure Databricks di organisasi Anda. Administrator Azure Databricks kemudian dapat lebih mengatur lokasi eksternal ke area dengan izin yang lebih terperinci dengan mendaftarkan volume eksternal atau tabel eksternal pada awalan tertentu di bawah lokasi eksternal.
Karena lokasi eksternal sangat mencakup, Databricks merekomendasikan untuk memberikan
CREATE EXTERNAL LOCATION
izin hanya kepada administrator yang ditugaskan untuk menyiapkan koneksi antara Unity Catalog dan penyimpanan cloud, atau kepada teknisi data tepercaya. Untuk memberi pengguna lain akses yang lebih terperinci, Databricks merekomendasikan untuk mendaftarkan tabel atau volume eksternal di atas lokasi eksternal dan memberi pengguna akses ke data menggunakan volume atau tabel. Karena tabel dan volume adalah turunan dari katalog dan skema, administrator katalog atau skema memiliki kontrol utama atas izin akses.Anda juga dapat mengontrol akses ke lokasi eksternal dengan mengikatnya ke ruang kerja tertentu. Lihat (Opsional) Menetapkan lokasi eksternal ke ruang kerja tertentu.
Jangan berikan izin umum
READ FILES
atauWRITE FILES
di lokasi eksternal kepada pengguna akhir.Dengan ketersediaan volume, pengguna tidak boleh menggunakan lokasi eksternal untuk apa pun kecuali membuat tabel, volume, atau lokasi terkelola. Mereka tidak boleh menggunakan lokasi eksternal untuk akses berbasis jalur untuk ilmu data atau kasus penggunaan data non-tabular lainnya.
Volume menyediakan dukungan untuk bekerja dengan file menggunakan perintah SQL, dbutil, API Spark, REST API, Terraform, dan antarmuka pengguna untuk menelusuri, mengunggah, dan mengunduh file. Selain itu, volume menawarkan pemasangan FUSE yang dapat diakses pada sistem file lokal di bawah
/Volumes/<catalog_name>/<schema_name>/<volume_name>/
. Pemasangan FUSE memungkinkan ilmuwan data dan insinyur ML untuk mengakses file seolah-olah mereka berada di sistem file lokal, seperti yang diperlukan oleh banyak pustaka pembelajaran mesin atau sistem operasi.Jika Anda harus memberikan akses langsung ke file di lokasi eksternal (untuk menjelajahi file di penyimpanan cloud sebelum pengguna membuat tabel atau volume eksternal, misalnya), Anda dapat memberikan
READ FILES
. Kasus penggunaan untuk pemberianWRITE FILES
jarang terjadi.
Anda harus menggunakan lokasi eksternal untuk melakukan hal berikut:
- Daftarkan tabel dan volume eksternal menggunakan
CREATE EXTERNAL VOLUME
perintah atauCREATE TABLE
. - Jelajahi file yang ada di penyimpanan cloud sebelum Anda membuat tabel atau volume eksternal pada awalan tertentu. Hak
READ FILES
istimewa adalah prasyarat. - Daftarkan lokasi sebagai penyimpanan terkelola untuk katalog dan skema alih-alih wadah akar metastore. Hak
CREATE MANAGED STORAGE
istimewa adalah prasyarat.
Rekomendasi lainnya untuk menggunakan lokasi eksternal:
Hindari konflik tumpang tindih jalur: jangan pernah membuat volume atau tabel eksternal di akar lokasi eksternal.
Jika Anda membuat volume atau tabel eksternal di akar lokasi eksternal, Anda tidak dapat membuat volume atau tabel eksternal tambahan di lokasi eksternal. Sebagai gantinya, buat volume atau tabel eksternal pada sub-direktori di dalam lokasi eksternal.
Rekomendasi untuk menggunakan volume eksternal
Anda harus menggunakan volume eksternal untuk melakukan hal berikut:
- Daftarkan area pendaratan untuk data mentah yang diproduksi oleh sistem eksternal untuk mendukung pemrosesannya pada tahap awal alur ETL dan aktivitas rekayasa data lainnya.
- Daftarkan lokasi penahapan untuk penyerapan, misalnya, menggunakan pernyataan Auto Loader,
COPY INTO
, atau CTAS (CREATE TABLE AS
). - Sediakan lokasi penyimpanan file bagi ilmuwan data, analis data, dan insinyur pembelajaran mesin untuk digunakan sebagai bagian dari analisis data eksploratif mereka dan tugas ilmu data lainnya, ketika volume terkelola bukanlah pilihan.
- Beri pengguna Azure Databricks akses ke file arbitrer yang diproduksi dan disimpan di penyimpanan cloud oleh sistem lain, misalnya, kumpulan besar data yang tidak terstruktur (seperti file gambar, audio, video, dan PDF) yang diambil oleh sistem pengawasan atau perangkat IoT, atau file pustaka (JAR dan file roda Python) yang diekspor dari sistem manajemen dependensi lokal atau alur CI/CD.
- Menyimpan data operasional, seperti pengelogan atau titik pemeriksaan file, ketika volume terkelola bukanlah opsi.
Rekomendasi lainnya untuk menggunakan volume eksternal:
- Databricks merekomendasikan agar Anda membuat volume eksternal dari satu lokasi eksternal dalam satu skema.
Tip
Untuk kasus penggunaan penyerapan di mana data disalin ke lokasi lain—misalnya menggunakan Auto Loader atau COPY INTO
—gunakan volume eksternal. Gunakan tabel eksternal saat Anda ingin mengkueri data sebagai tabel, tanpa melibatkan salinan.
Rekomendasi untuk menggunakan tabel eksternal
Anda harus menggunakan tabel eksternal untuk mendukung pola kueri normal di atas data yang disimpan di penyimpanan cloud, saat membuat tabel terkelola bukanlah opsi.
Rekomendasi lainnya untuk menggunakan tabel eksternal:
- Databricks merekomendasikan agar Anda membuat tabel eksternal menggunakan satu lokasi eksternal per skema.
- Databricks sangat merekomendasikan untuk tidak mendaftarkan tabel sebagai tabel eksternal di lebih dari satu metastore karena risiko masalah konsistensi. Misalnya, perubahan pada skema dalam satu metastore tidak akan mendaftar di metastore kedua. Gunakan Berbagi Delta untuk berbagi data di antara metastores. Lihat Berbagi data dengan aman menggunakan Berbagi Delta.
Mengonfigurasi kontrol akses
Setiap objek yang dapat diamankan di Katalog Unity mempunyai pemilik. Prinsipal yang membuat objek menjadi pemilik pertama. Pemilik objek memiliki semua hak istimewa pada objek, seperti SELECT dan MODIFY pada tabel, serta izin untuk memberikan hak istimewa pada objek yang dapat diamankan kepada prinsipal lain. Hanya pemilik objek yang dapat diamankan yang memiliki izin untuk memberikan hak istimewa pada objek tersebut kepada prinsipal lain. Oleh karena itu, praktik terbaik adalah mengonfigurasi kepemilikan pada semua objek ke grup yang bertanggung jawab atas administrasi hibah pada objek. Pemilik dan admin metastore dapat mentransfer kepemilikan objek yang dapat diamankan ke grup. Selain itu, jika objek terkandung dalam katalog (seperti tabel atau tampilan), katalog dan pemilik skema dapat mengubah kepemilikan objek.
Objek yang dapat diamankan dalam Katalog Unity bersifat hierarkis dan hak istimewa diwariskan ke bawah. Ini berarti bahwa memberikan hak istimewa pada katalog atau skema secara otomatis memberikan hak istimewa untuk semua objek saat ini dan yang akan datang dalam katalog atau skema tersebut. Untuk informasi selengkapnya, lihat Model pewarisan.
Untuk membaca data dari tabel atau melihat pengguna harus memiliki hak istimewa berikut:
SELECT
pada tabel atau tampilanUSE SCHEMA
pada skema yang memiliki tabelUSE CATALOG
pada katalog yang memiliki skema
USE CATALOG
memungkinkan penerima izin untuk melintasi katalog untuk mengakses objek turunannya dan USE SCHEMA
memungkinkan penerima untuk melintasi skema untuk mengakses objek turunannya. Misalnya, untuk memilih data dari tabel, pengguna harus memiliki hak istimewa pada tabel tersebut SELECT
USE CATALOG
dan hak istimewa pada katalog induknya, bersama dengan USE SCHEMA
hak istimewa pada skema induknya. Oleh karena itu, Anda dapat menggunakan hak istimewa ini untuk membatasi akses ke bagian namespace data Anda ke grup tertentu. Skenario umum adalah menyiapkan skema per tim yang mana hanya tim yang memiliki USE SCHEMA
dan CREATE
pada skema. Ini berarti bahwa tabel apa pun yang dihasilkan oleh anggota tim hanya dapat dibagikan dalam tim.
Anda dapat mengamankan akses ke tabel menggunakan sintaksis SQL berikut:
GRANT USE CATALOG ON CATALOG < catalog_name > TO < group_name >;
GRANT USE SCHEMA ON SCHEMA < catalog_name >.< schema_name >
TO < group_name >;
GRANT
SELECT
ON < catalog_name >.< schema_name >.< table_name >;
TO < group_name >;
Anda dapat mengamankan akses ke kolom menggunakan tampilan dinamis dalam skema sekunder seperti yang ditunjukkan dalam sintaksis SQL berikut:
CREATE VIEW < catalog_name >.< schema_name >.< view_name > as
SELECT
id,
CASE WHEN is_account_group_member(< group_name >) THEN email ELSE 'REDACTED' END AS email,
country,
product,
total
FROM
< catalog_name >.< schema_name >.< table_name >;
GRANT USE CATALOG ON CATALOG < catalog_name > TO < group_name >;
GRANT USE SCHEMA ON SCHEMA < catalog_name >.< schema_name >.< view_name >;
TO < group_name >;
GRANT
SELECT
ON < catalog_name >.< schema_name >.< view_name >;
TO < group_name >;
Anda dapat mengamankan akses ke baris menggunakan tampilan dinamis dalam skema sekunder seperti yang ditunjukkan dalam sintaksis SQL berikut:
CREATE VIEW < catalog_name >.< schema_name >.< view_name > as
SELECT
*
FROM
< catalog_name >.< schema_name >.< table_name >
WHERE
CASE WHEN is_account_group_member(managers) THEN TRUE ELSE total <= 1000000 END;
GRANT USE CATALOG ON CATALOG < catalog_name > TO < group_name >;
GRANT USE SCHEMA ON SCHEMA < catalog_name >.< schema_name >.< table_name >;
TO < group_name >;
GRANT
SELECT
ON < catalog_name >.< schema_name >.< table_name >;
TO < group_name >;
Anda juga dapat memberi pengguna akses aman ke tabel menggunakan filter baris dan masker kolom. Untuk informasi selengkapnya, lihat Memfilter data tabel sensitif menggunakan filter baris dan masker kolom.
Untuk informasi selengkapnya tentang semua hak istimewa di Katalog Unity, lihat Mengelola hak istimewa di Katalog Unity.
Kelola konfigurasi kluster
Databricks merekomendasikan penggunaan kebijakan kluster untuk membatasi kemampuan mengonfigurasi kluster berdasarkan seperangkat aturan. Kebijakan kluster memungkinkan Anda membatasi akses hanya untuk membuat kluster yang mengaktifkan Unity Catalog. Menggunakan kebijakan kluster mengurangi pilihan yang tersedia, yang akan sangat menyederhanakan proses pembuatan kluster untuk pengguna dan memastikan bahwa mereka dapat mengakses data dengan lancar. Kebijakan kluster juga memungkinkan Anda mengontrol biaya dengan membatasi biaya maksimum per kluster.
Untuk memastikan integritas kontrol akses dan menegakkan jaminan isolasi yang kuat, Unity Catalog memberlakukan beberapa persyaratan keamanan pada sumber daya komputasi. Untuk alasan ini, Unity Catalog memperkenalkan konsep mode akses kluster. Unity Catalog aman secara default; jika kluster tidak dikonfigurasi dengan mode keamanan yang sesuai, kluster tidak dapat mengakses data di Unity Catalog. Lihat Persyaratan komputasi.
Databricks merekomendasikan penggunaan mode akses bersama saat berbagi kluster dan mode akses Pengguna Tunggal untuk pekerjaan otomatis dan beban kerja pembelajaran mesin.
JSON di bawah ini menyediakan definisi kebijakan untuk kluster dengan mode akses bersama:
{
"spark_version": {
"type": "regex",
"pattern": "1[0-1]\\.[0-9]*\\.x-scala.*",
"defaultValue": "10.4.x-scala2.12"
},
"access_mode": {
"type": "fixed",
"value": "USER_ISOLATION",
"hidden": true
}
}
JSON di bawah ini menyediakan definisi kebijakan untuk kluster pekerjaan otomatis dengan mode akses Pengguna Tunggal:
{
"spark_version": {
"type": "regex",
"pattern": "1[0-1]\\.[0-9].*",
"defaultValue": "10.4.x-scala2.12"
},
"access_mode": {
"type": "fixed",
"value": "SINGLE_USER",
"hidden": true
},
"single_user_name": {
"type": "regex",
"pattern": ".*",
"hidden": true
}
}
Audit akses
Solusi tata kelola data yang lengkap memerlukan akses audit ke data dan menyediakan kemampuan peringatan dan pemantauan. Unity Catalog menangkap log audit tindakan yang dilakukan terhadap metastore dan log ini dikirimkan sebagai bagian dari log audit Azure Databricks.
Anda dapat mengakses log audit akun Anda menggunakan tabel sistem. Untuk informasi selengkapnya tentang tabel sistem log audit, lihat Referensi tabel sistem log audit.
Lihat Memantau Platform Kecerdasan Data Databricks Anda dengan Log Audit untuk detail tentang cara mendapatkan visibilitas lengkap ke peristiwa penting yang berkaitan dengan Platform Kecerdasan Databricks Anda.
Berbagi data dengan aman menggunakan Berbagi Delta
Delta Sharing adalah protokol terbuka yang dikembangkan oleh Databricks untuk berbagi data secara aman dengan organisasi lain atau departemen lain dalam organisasi Anda, apa pun platform komputasi yang mereka gunakan. Saat Berbagi Delta diaktifkan di metastore, Katalog Unity menjalankan server Delta Sharing.
Untuk berbagi data di antara metastores, Anda dapat memanfaatkan Berbagi Delta Databricks-ke-Databricks. Ini memungkinkan Anda mendaftarkan tabel dari metasotre di berbagai wilayah. Tabel ini akan muncul sebagai objek baca-saja dalam metastore yang mengonsumsi. Tabel ini dapat diberikan akses seperti objek lain dalam Unity Catalog.
Saat Anda menggunakan Databricks-to-Databricks Delta Sharing untuk berbagi antar metastore, perlu diingat bahwa kontrol akses terbatas pada satu metastore. Jika objek yang dapat diamankan, seperti tabel, memiliki pemberian di atasnya dan sumber daya tersebut dibagikan ke metastore intra-account, maka pemberian dari sumber tidak akan berlaku untuk berbagi tujuan. Berbagi tujuan harus menetapkan hibahnya sendiri.