Bagikan melalui


Membuat penyimpanan terkelola Unity Catalog menggunakan perwakilan layanan (warisan)

Penting

Dokumentasi ini telah dihentikan dan mungkin tidak diperbarui. Produk, layanan, atau teknologi yang disebutkan dalam konten ini tidak lagi didukung. Untuk melihat dokumentasi admin saat ini, lihat Mengelola akun Azure Databricks Anda.

Artikel ini menjelaskan metode warisan untuk membuat lokasi eksternal dan penyimpanan terkelola menggunakan perwakilan layanan. Alih-alih perwakilan layanan, Databricks sangat menyarankan agar Anda menggunakan identitas terkelola Azure sebagai identitas yang memberikan akses ke kontainer penyimpanan. Lihat Menggunakan identitas terkelola Azure di Unity Catalog untuk mengakses penyimpanan.

Namun, jika Anda masih ingin menggunakan perwakilan layanan, atau jika Anda memiliki penyimpanan terkelola Katalog Unity atau lokasi eksternal yang menggunakan perwakilan layanan dan Anda ingin memahami prosesnya, instruksi disediakan dalam artikel arsip ini.

Membuat metastore yang diakses menggunakan perwakilan layanan (warisan)

Untuk membuat metastore Unity Catalog yang diakses oleh perwakilan layanan:

  1. Buat akun penyimpanan untuk Azure Data Lake Storage Gen2.

    Kontainer penyimpanan di akun ini menyimpan semua tabel terkelola metastore, kecuali yang ada dalam katalog atau skema dengan lokasi penyimpanan terkelola mereka sendiri.

    Lihat Membuat akun penyimpanan untuk digunakan dengan Azure Data Lake Storage Gen2. Ini harus menjadi akun Azure Data Lake Storage Gen2 performa Premium di wilayah yang sama dengan ruang kerja Azure Databricks Anda.

  2. Buat kontainer di akun penyimpanan baru.

    Buat catatan URI ADLSv2 untuk kontainer, yang dalam format berikut:

    abfss://<container-name>@<storage-account-name>.dfs.core.windows.net/<metastore-name>
    

    Pada langkah-langkah berikut, ganti <storage-container> dengan URI ini.

  3. Di ID Microsoft Entra, buat perwakilan layanan dan tetapkan izin ke akun penyimpanan, menggunakan instruksi di Penyimpanan akses menggunakan perwakilan layanan & ID Microsoft Entra(Azure Active Directory).

    Katalog Unity akan menggunakan perwakilan layanan ini untuk mengakses kontainer di akun penyimpanan atas nama pengguna Katalog Unity. Buat rahasia klien untuk perwakilan layanan. Lihat Autentikasi perwakilan layanan MS Entra. Buat catatan rahasia klien untuk perwakilan layanan, ID aplikasi klien, dan ID direktori tempat Anda membuat perwakilan layanan ini. Pada langkah-langkah berikut, ganti <client-secret>, <client-application-id>, dan <directory-id> dengan nilai-nilai ini.

  4. Catat properti ini, yang akan Anda gunakan saat membuat metastore:

    • <aad-application-id>
    • Wilayah akun penyimpanan
    • <storage-container>
    • Perwakilan layanan <client-secret>, <client-application-id>, dan <directory-id>
  5. Anda tidak dapat membuat metastore yang diakses menggunakan perwakilan layanan di UI konsol akun. Sebagai gantinya , gunakan API Metastores Akun. Contohnya:

    curl -n -X POST --header 'Content-Type: application/json' https://<account-domain>/api/2.0/accounts/<account-id>/metastores
    --data '{
       "metastore_info": {
          "name": "<metastore-name>",
          "storage_root": "<storage-container>",
          "region": "<region>"
          "storage_root_credential_id"
       }
    }'
    

    Untuk mempelajari cara mengautentikasi ke API tingkat akun, lihat Autentikasi perwakilan layanan MS Entra.

    Pengguna yang membuat metastore adalah pemiliknya. Databricks merekomendasikan agar Anda menetapkan kembali kepemilikan metastore ke grup. Lihat Menetapkan admin metastore.

  6. Buat catatan ID metastore. Saat Anda melihat properti metastore, ID metastore tersebut adalah bagian dari URL setelah /data dan sebelum /configuration.

  7. Metastore sudah dibuat, tetapi Unity Catalog belum dapat menulis data ke sana. Untuk menyelesaikan penyiapan metastore:

    1. Di browser terpisah, masuklah ke ruang kerja yang ditetapkan untuk metastore sebagai admin ruang kerja.

    2. Catat URL ruang kerja, yang merupakan bagian pertama dari URL, setelah https:// dan mencakup azuredatabricks.net.

    3. Buat token akses personal. Lihat API manajemen Token.

    4. Tambahkan token akses personal ke file di .netrc direktori beranda Anda. Ini meningkatkan keamanan dengan mencegah token akses personal muncul di riwayat perintah shell Anda. Lihat API manajemen Token.

    5. Jalankan perintah cURL berikut untuk membuat kredensial penyimpanan root untuk metastore. Ganti nilai tempat penampung:

      • <workspace-url>: URL ruang kerja tempat token akses personal dibuat.
      • <credential-name>: Nama untuk kredensial penyimpanan.
      • <directory-id>: ID direktori untuk perwakilan layanan yang Anda buat.
      • <application-id>: ID aplikasi untuk perwakilan layanan yang Anda buat.
      • <client-secret>: Nilai rahasia klien yang Anda buat untuk perwakilan layanan (bukan ID rahasia klien).
      curl -n -X POST --header 'Content-Type: application/json' https://<workspace-url>/api/2.0/unity-catalog/storage-credentials --data "{
         \"name\": \"<credential-name>\",
         \"azure_service_principal\": {
         \"directory_id\": \"<directory-id>\",
         \"application_id\": \"<application-id>\",
         \"client_secret\": \"<client-secret>\"
         }
      }"
      

      Catat ID kredensial penyimpanan, yang merupakan nilai id dari tanggapan perintah cURL.

  8. Jalankan perintah cURL berikut untuk memperbarui metastore dengan kredensial penyimpanan root baru. Ganti nilai tempat penampung:

    • <workspace-url>: URL ruang kerja tempat token akses personal dibuat.
    • <metastore-id>: ID metastore.
    • <storage-credential-id>: ID kredensial penyimpanan dari perintah sebelumnya.
    curl -n -X PATCH --header 'Content-Type: application/json' https://<workspace-url>/api/2.0/unity-catalog/metastores/<metastore-id> --data
    "{\"storage_root_credential_id\": \"<storage-credential-id>\"}"
    

Sekarang Anda dapat menambahkan ruang kerja ke metastore.

Membuat kredensial penyimpanan yang menggunakan perwakilan layanan (warisan)

Untuk membuat kredensial penyimpanan menggunakan perwakilan layanan, Anda harus menjadi admin akun Azure Databricks. Admin akun yang membuat kredensial penyimpanan perwakilan layanan dapat mendelegasikan kepemilikan ke pengguna atau grup lain untuk mengelola izin di dalamnya.

Pertama, buat perwakilan layanan dan berikan akses ke akun penyimpanan Anda setelah Penyimpanan akses menggunakan perwakilan layanan & ID Microsoft Entra(Azure Active Directory).

Anda tidak dapat menambahkan kredensial penyimpanan perwakilan layanan menggunakan Catalog Explorer. Sebagai gantinya , gunakan STORAGE Credentials API. Contohnya:

curl -X POST -n \
https://<databricks-instance>/api/2.1/unity-catalog/storage-credentials \
-d '{
   "name": "<storage-credential-name>",
   "read_only": true,
   "azure_service_principal": {
      "directory_id": "<directory-id>",
      "application_id": "<application-id>",
      "client_secret": "<client-secret>"
   },
   "skip_validation": "false"
   }'

Anda juga dapat membuat kredensial penyimpanan menggunakan penyedia Terraform Databricks dan databricks_storage_credential.