Bagikan melalui


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:

Persyaratan izin:

  • Anda harus memiliki CREATE EXTERNAL LOCATION hak istimewa pada metastore dan kredensial penyimpanan yang direferensikan di lokasi eksternal. Admin metastore memiliki CREATE EXTERNAL LOCATION metastore secara default.

Membuat lokasi eksternal menggunakan Catalog Explorer

Anda dapat membuat lokasi eksternal secara manual menggunakan Catalog Explorer.

Izin dan prasyarat: lihat Sebelum Memulai.

Untuk membuat lokasi eksternal:

  1. Masuk ke ruang kerja yang dilampirkan ke metastore.

  2. Di bar samping, klik Ikon katalogKatalog.

  3. Klik tombol + Tambahkan dan pilih Tambahkan lokasi eksternal.

  4. Masukkan Nama lokasi eksternal.

  5. Secara opsional salin jalur kontainer dari titik pemasangan yang ada (hanya kontainer Azure Data Lake Storage Gen2).

  6. 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> atau r2://my-bucket@my-account-id.r2.cloudflarestorage.com/<path>.

  7. Pilih kredensial penyimpanan yang memberikan akses ke lokasi eksternal.

  8. (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.

  9. Klik Buat.

  10. (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.

  11. 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 atau CREATE EXTERNAL VOLUME.

    Untuk menggunakan Catalog Explorer untuk memberikan izin:

    1. Klik nama lokasi eksternal untuk membuka panel detail.
    2. Pada tab Izin , klik Berikan.
    3. Pada dialog Berikan pada<external location>, pilih pengguna, grup, atau perwakilan layanan di bidang Utama, dan pilih hak istimewa yang ingin Anda berikan.
    4. Klik 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. Jika location_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> atau r2://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 Contoh pengikatan katalog ruang kerja.

Mengikat lokasi eksternal ke satu atau beberapa ruang kerja

Untuk menetapkan lokasi eksternal ke ruang kerja tertentu, Anda dapat menggunakan Catalog Explorer atau REST API Unity Catalog.

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

  1. Masuk ke ruang kerja yang ditautkan ke metastore.

  2. Di bar samping, klik Ikon katalogKatalog.

  3. Di bagian bawah layar, klik Lokasi Eksternal Data > Eksternal.

  4. Pilih lokasi eksternal dan buka tab Ruang Kerja.

  5. 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.

  6. 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 .

Api

Ada dua API dan dua langkah yang diperlukan untuk menetapkan lokasi eksternal ke ruang kerja. Dalam contoh berikut, ganti <workspace-url> dengan nama instans ruang kerja Anda. Untuk mempelajari cara mendapatkan nama instans ruang kerja dan ID ruang kerja, lihat Mendapatkan pengidentifikasi untuk objek ruang kerja. Untuk mempelajari tentang mendapatkan token akses, lihat Autentikasi untuk otomatisasi Azure Databricks - gambaran umum.

  1. catalogs Gunakan API untuk mengatur lokasi isolation mode eksternal ke ISOLATED:

    curl -L -X PATCH 'https://<workspace-url>/api/2.1/unity-catalog/external-locations/<my-location> \
    -H 'Authorization: Bearer <my-token> \
    -H 'Content-Type: application/json' \
    --data-raw '{
     "isolation_mode": "ISOLATED"
     }'
    

    isolation mode Defaultnya adalah OPEN untuk semua ruang kerja yang dilampirkan ke metastore. Lihat Katalog dalam referensi REST API.

  2. Gunakan API pembaruan bindings untuk menetapkan ruang kerja ke katalog:

    curl -L -X PATCH 'https://<workspace-url>/api/2.1/unity-catalog/bindings/external-locations/<my-location> \
    -H 'Authorization: Bearer <my-token> \
    -H 'Content-Type: application/json' \
    --data-raw '{
      "add": [{"workspace_id": <workspace-id>,...],
      "remove": [{"workspace_id": <workspace-id>,...]
    }'
    

    "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 mengatur binding_type pengikatan lokasi eksternal.

Untuk mencantumkan semua penetapan ruang kerja untuk lokasi eksternal, gunakan API daftar bindings :

   curl -L -X GET 'https://<workspace-url>/api/2.1/unity-catalog/bindings/external-locations/<my-location> \
   -H 'Authorization: Bearer <my-token> \

Lihat 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 bindings API disertakan dalam Ikat lokasi eksternal ke satu atau beberapa ruang kerja.

Langkah berikutnya