Membuat lokasi eksternal untuk menyambungkan penyimpanan cloud ke Azure Databricks
Artikel ini menjelaskan cara mengonfigurasi lokasi eksternal di Unity Catalog untuk menyambungkan penyimpanan cloud ke Azure Databricks.
Lokasi eksternal mengaitkan kredensial penyimpanan Katalog Unity dengan kontainer penyimpanan objek cloud. Lokasi eksternal digunakan untuk menentukan lokasi penyimpanan terkelola untuk katalog dan skema, dan untuk menentukan lokasi untuk tabel eksternal dan volume eksternal.
Anda dapat membuat lokasi eksternal yang mereferensikan penyimpanan dalam kontainer penyimpanan Azure Data Lake Storage Gen2 atau wadah Cloudflare R2.
Anda dapat membuat lokasi eksternal menggunakan Catalog Explorer, perintah Databricks CLI, SQL di notebook atau kueri Databricks SQL, atau Terraform.
Catatan
Saat Anda menentukan volume, akses URI cloud ke data di bawah jalur volume diatur oleh izin volume.
Sebelum Anda memulai
Prasyarat:
Anda harus membuat kontainer penyimpanan Azure Data Lake Storage Gen2 atau wadah Cloudflare R2 yang ingin Anda gunakan sebagai lokasi eksternal sebelum membuat objek lokasi eksternal di Azure Databricks.
Akun penyimpanan Azure Data Lake Storage Gen2 yang Anda gunakan sebagai lokasi eksternal harus memiliki namespace hierarkis.
Anda harus memiliki kredensial penyimpanan yang ditentukan di Azure Databricks yang memberikan akses ke jalur lokasi penyimpanan cloud. Lihat Membuat kredensial penyimpanan untuk menyambungkan ke Azure Data Lake Storage Gen2 dan Membuat kredensial penyimpanan untuk menyambungkan ke Cloudflare R2.
Persyaratan izin:
- Anda harus memiliki
CREATE EXTERNAL LOCATION
hak istimewa pada metastore dan kredensial penyimpanan yang direferensikan di lokasi eksternal. Admin metastore memilikiCREATE EXTERNAL LOCATION
metastore secara default.
Membuat lokasi eksternal secara manual menggunakan Catalog Explorer
Anda dapat membuat lokasi eksternal secara manual menggunakan Catalog Explorer.
Izin dan prasyarat: lihat Sebelum Memulai.
Untuk membuat lokasi eksternal:
Masuk ke ruang kerja yang dilampirkan ke metastore.
Di bar samping, klik Katalog.
Di bagian atas panel Katalog, klik ikon Tambahkan dan pilih Tambahkan lokasi eksternal dari menu.
Atau, dari halaman Akses cepat, klik tombol Data > eksternal, buka tab Lokasi Eksternal, dan klik Buat lokasi.
Masukkan Nama lokasi eksternal.
Secara opsional salin jalur kontainer dari titik pemasangan yang ada (hanya kontainer Azure Data Lake Storage Gen2).
Jika Anda tidak menyalin dari titik pemasangan yang ada, gunakan bidang URL untuk memasukkan kontainer penyimpanan atau jalur wadah R2 yang ingin Anda gunakan sebagai lokasi eksternal.
Misalnya,
abfss://my-container-name@my-storage-account.dfs.core.windows.net/<path>
ataur2://my-bucket@my-account-id.r2.cloudflarestorage.com/<path>
.Pilih kredensial penyimpanan yang memberikan akses ke lokasi eksternal.
(Opsional) Jika Anda ingin pengguna memiliki akses baca-saja ke lokasi eksternal, klik Opsi Tingkat Lanjut dan pilih Baca saja. Untuk informasi selengkapnya, lihat Menandai lokasi eksternal sebagai baca-saja.
Klik Buat.
(Opsional) Ikat lokasi eksternal ke ruang kerja tertentu.
Secara default, setiap pengguna istimewa dapat menggunakan lokasi eksternal di ruang kerja apa pun yang dilampirkan ke metastore. Jika Anda ingin mengizinkan akses hanya dari ruang kerja tertentu, buka tab Ruang Kerja dan tetapkan ruang kerja. Lihat (Opsional) Menetapkan lokasi eksternal ke ruang kerja tertentu.
Berikan izin untuk menggunakan lokasi eksternal.
Bagi siapa pun untuk menggunakan lokasi eksternal, Anda harus memberikan izin:
- Untuk menggunakan lokasi eksternal untuk menambahkan lokasi penyimpanan terkelola ke metastore, katalog, atau skema, berikan
CREATE MANAGED LOCATION
hak istimewa. - Untuk membuat tabel atau volume eksternal, berikan
CREATE EXTERNAL TABLE
atauCREATE EXTERNAL VOLUME
.
Untuk menggunakan Catalog Explorer untuk memberikan izin:
- Klik nama lokasi eksternal untuk membuka panel detail.
- Pada tab Izin , klik Berikan.
- Pada dialog Berikan pada
<external location>
, pilih pengguna, grup, atau perwakilan layanan di bidang Utama, dan pilih hak istimewa yang ingin Anda berikan. - Klik Berikan.
- Untuk menggunakan lokasi eksternal untuk menambahkan lokasi penyimpanan terkelola ke metastore, katalog, atau skema, berikan
Membuat lokasi eksternal menggunakan SQL
Untuk membuat lokasi eksternal menggunakan SQL, jalankan perintah berikut ini di buku catatan atau editor kueri SQL. Ganti nilai tempat penampung.
Izin dan prasyarat: lihat Sebelum Memulai.
<location-name>
: Nama untuk lokasi eksternal. Jikalocation_name
menyertakan karakter khusus, seperti tanda hubung (-
), karakter harus dikelilingi oleh backtick (` `
). Lihat Nama.<bucket-path>
: Jalur di penyewa cloud Anda yang aksesnya diberikan oleh lokasi eksternal ini. Misalnya,abfss://my-container-name@my-storage-account.dfs.core.windows.net/<path>
ataur2://my-bucket@my-account-id.r2.cloudflarestorage.com/<path>
.<storage-credential-name>
: Nama kredensial penyimpanan yang mengotorisasi pembacaan dari dan menulis ke kontainer penyimpanan atau jalur wadah. Jika nama kredensial penyimpanan menyertakan karakter khusus, seperti tanda hubung (-
), nama tersebut harus dikelilingi oleh backtick (` `
).
CREATE EXTERNAL LOCATION [IF NOT EXISTS] `<location-name>`
URL '<bucket-path>'
WITH ([STORAGE] CREDENTIAL `<storage-credential-name>`)
[COMMENT '<comment-string>'];
Jika Anda ingin membatasi akses lokasi eksternal ke ruang kerja tertentu di akun Anda, juga dikenal sebagai pengikatan ruang kerja atau isolasi lokasi eksternal, lihat (Opsional) Menetapkan lokasi eksternal ke ruang kerja tertentu.
(Opsional) Menetapkan lokasi eksternal ke ruang kerja tertentu
Penting
Fitur ini ada di Pratinjau Publik.
Secara default, lokasi eksternal dapat diakses dari semua ruang kerja di metastore. Ini berarti bahwa jika pengguna telah diberikan hak istimewa (seperti READ FILES
) di lokasi eksternal tersebut, mereka dapat menjalankan hak istimewa tersebut dari ruang kerja apa pun yang dilampirkan ke metastore. Jika Anda menggunakan ruang kerja untuk mengisolasi akses data pengguna, Anda mungkin ingin mengizinkan akses ke lokasi eksternal hanya dari ruang kerja tertentu. Fitur ini dikenal sebagai pengikatan ruang kerja atau isolasi lokasi eksternal.
Kasus penggunaan umum untuk mengikat lokasi eksternal ke ruang kerja tertentu meliputi:
- Memastikan bahwa teknisi data yang memiliki
CREATE EXTERNAL TABLE
hak istimewa pada lokasi eksternal yang berisi data produksi dapat membuat tabel eksternal di lokasi tersebut hanya di ruang kerja produksi. - Memastikan bahwa teknisi data yang memiliki hak istimewa pada lokasi eksternal yang berisi data sensitif hanya dapat menggunakan ruang kerja tertentu untuk mengakses data tersebut
READ FILES
.
Untuk informasi selengkapnya tentang cara membatasi jenis akses data lainnya menurut ruang kerja, lihat Membatasi akses katalog ke ruang kerja tertentu.
Penting
Pengikatan ruang kerja dirujuk pada titik ketika hak istimewa terhadap lokasi eksternal dijalankan. Misalnya, jika pengguna membuat tabel eksternal dengan mengeluarkan pernyataan CREATE TABLE myCat.mySch.myTable LOCATION 'abfss://my-container-name@storage-account-name.dfs.core.windows.net/finance'
dari myWorkspace
ruang kerja, pemeriksaan pengikatan ruang kerja berikut dilakukan selain pemeriksaan hak istimewa pengguna reguler:
- Apakah lokasi eksternal terikat
'abfss://my-container-name@storage-account-name.dfs.core.windows.net/finance'
kemyWorkspace
? - Apakah katalog
myCat
terikatmyWorkspace
dengan tingkatRead & Write
akses ?
Jika lokasi eksternal kemudian tidak terikat dari myWorkspace
, maka tabel eksternal terus berfungsi.
Fitur ini juga memungkinkan Anda mengisi katalog dari ruang kerja pusat dan membuatnya tersedia untuk ruang kerja lain menggunakan pengikatan katalog, tanpa juga harus membuat lokasi eksternal tersedia di ruang kerja lain tersebut.
Mengikat lokasi eksternal ke satu atau beberapa ruang kerja
Untuk menetapkan lokasi eksternal ke ruang kerja tertentu, Anda dapat menggunakan Catalog Explorer atau Databricks CLI.
Izin diperlukan: Admin Metastore atau pemilik lokasi eksternal.
Catatan
Admin metastore dapat melihat semua lokasi eksternal di metastore menggunakan Catalog Explorer—dan pemilik lokasi eksternal dapat melihat semua lokasi eksternal yang mereka miliki di metastore—terlepas dari apakah lokasi eksternal ditetapkan ke ruang kerja saat ini. Lokasi eksternal yang tidak ditetapkan ke ruang kerja tampak berwarna abu-abu.
Penjelajah Katalog
Masuk ke ruang kerja yang ditautkan ke metastore.
Di bar samping, klik Katalog.
Di bagian atas panel Katalog , klik ikon gerigi dan pilih Lokasi Eksternal.
Atau, dari halaman Akses cepat, klik tombol Data >eksternal untuk masuk ke tab Lokasi Eksternal.
Pilih lokasi eksternal dan buka tab Ruang Kerja.
Pada tab Ruang Kerja, kosongkan kotak centang Semua ruang kerja memiliki akses .
Jika lokasi eksternal Anda sudah terikat ke satu atau beberapa ruang kerja, kotak centang ini sudah dikosongkan.
Klik Tetapkan ke ruang kerja dan masukkan atau temukan ruang kerja yang ingin Anda tetapkan.
Untuk mencabut akses, buka tab Ruang Kerja, pilih ruang kerja, dan klik Cabut. Untuk mengizinkan akses dari semua ruang kerja, pilih kotak centang Semua ruang kerja memiliki akses .
CLI
Ada dua grup perintah Databricks CLI dan dua langkah yang diperlukan untuk menetapkan lokasi eksternal ke ruang kerja.
Dalam contoh berikut, ganti <profile-name>
dengan nama profil konfigurasi autentikasi Azure Databricks Anda. Ini harus mencakup nilai token akses pribadi, selain nama instans ruang kerja dan ID ruang kerja ruang kerja tempat Anda membuat token akses pribadi. Lihat Autentikasi token akses pribadi Azure Databricks.
external-locations
Gunakan perintah grupupdate
perintah untuk mengatur lokasiisolation mode
eksternal keISOLATED
:databricks external-locations update <my-location> \ --isolation-mode ISOLATED \ --profile <profile-name>
isolation-mode
Defaultnya adalahOPEN
untuk semua ruang kerja yang dilampirkan ke metastore.workspace-bindings
Gunakan perintah grupupdate-bindings
perintah untuk menetapkan ruang kerja ke lokasi eksternal:databricks workspace-bindings update-bindings external-location <my-location> \ --json '{ "add": [{"workspace_id": <workspace-id>}...], "remove": [{"workspace_id": <workspace-id>}...] }' --profile <profile-name>
"add"
Gunakan properti dan"remove"
untuk menambahkan atau menghapus pengikatan ruang kerja.Catatan
Pengikatan baca-saja (
BINDING_TYPE_READ_ONLY
) tidak tersedia untuk lokasi eksternal. Oleh karena itu tidak ada alasan untuk mengaturbinding_type
pengikatan lokasi eksternal.
Untuk mencantumkan semua penetapan ruang kerja untuk lokasi eksternal, gunakan workspace-bindings
perintah grup get-bindings
perintah:
databricks workspace-bindings get-bindings external-location <my-location> \
--profile <profile-name>
Lihat juga Pengikatan Ruang Kerja dalam referensi REST API.
Membatalkan ikatan lokasi eksternal dari ruang kerja
Instruksi untuk mencabut akses ruang kerja ke lokasi eksternal menggunakan Catalog Explorer atau workspace-bindings
grup perintah CLI disertakan dalam Mengikat lokasi eksternal ke satu atau beberapa ruang kerja.
Langkah berikutnya
- Berikan izin kepada pengguna lain untuk menggunakan lokasi eksternal. Lihat Mengelola lokasi eksternal.
- Tentukan lokasi penyimpanan terkelola menggunakan lokasi eksternal. Lihat Menentukan lokasi penyimpanan terkelola di Katalog Unity.
- Tentukan tabel eksternal menggunakan lokasi eksternal. Lihat Bekerja dengan tabel eksternal.
- Tentukan volume eksternal menggunakan lokasi eksternal. Lihat Apa itu volume Katalog Unity?.