Bagikan melalui


Memasang penyimpanan objek cloud di Azure Databricks

Penting

Pemasangan adalah pola akses warisan. Databricks merekomendasikan penggunaan Unity Catalog untuk mengelola semua akses data. Lihat Koneksi ke penyimpanan objek cloud menggunakan Unity Catalog.

Azure Databricks memungkinkan pengguna memasang penyimpanan objek cloud ke Databricks File System (DBFS) untuk menyederhanakan pola akses data bagi pengguna yang tidak terbiasa dengan konsep cloud. Data yang dipasang tidak berfungsi dengan Unity Catalog, dan Databricks merekomendasikan untuk bermigrasi dari menggunakan pemasangan dan sebaliknya mengelola tata kelola data dengan Unity Catalog.

Bagaimana Azure Databricks memasang penyimpanan objek cloud?

Pemasangan Azure Databricks membuat tautan antara ruang kerja dan penyimpanan objek cloud, yang memungkinkan Anda berinteraksi dengan penyimpanan objek cloud menggunakan jalur file yang sudah dikenal relatif terhadap sistem file Databricks. Pemasangan berfungsi dengan membuat alias lokal di /mnt bawah direktori yang menyimpan informasi berikut:

  • Lokasi penyimpanan objek cloud.
  • Spesifikasi driver untuk terhubung ke akun penyimpanan atau kontainer.
  • Kredensial keamanan diperlukan untuk mengakses data.

Apa sintaks untuk memasang penyimpanan?

source menentukan URI penyimpanan objek (dan dapat secara opsional mengodekan kredensial keamanan). mount_point menentukan jalur lokal dalam /mnt direktori. Beberapa sumber penyimpanan objek mendukung argumen opsional encryption_type . Untuk beberapa pola akses, Anda dapat meneruskan spesifikasi konfigurasi tambahan sebagai kamus ke extra_configs.

Catatan

Databricks merekomendasikan pengaturan konfigurasi Spark dan Hadoop khusus pemasangan sebagai opsi menggunakan extra_configs. Ini memastikan bahwa konfigurasi terikat pada pemasangan daripada kluster atau sesi.

dbutils.fs.mount(
  source: str,
  mount_point: str,
  encryption_type: Optional[str] = "",
  extra_configs: Optional[dict[str:str]] = None
)

Tanyakan kepada administrator ruang kerja dan cloud Anda sebelum mengonfigurasi atau mengubah pemasangan data, karena konfigurasi yang tidak tepat dapat memberikan akses tidak aman ke semua pengguna di ruang kerja Anda.

Catatan

Selain pendekatan yang dijelaskan dalam artikel ini, Anda dapat mengotomatiskan pemasangan wadah dengan penyedia Databricks Terraform dan databricks_mount.

Lepaskan titik pemasangan

Untuk melepaskan titik pemasangan, gunakan perintah berikut:

dbutils.fs.unmount("/mnt/<mount-name>")

Peringatan

Untuk menghindari kesalahan, jangan pernah memodifikasi titik pemasangan saat pekerjaan lain sedang membaca atau menulis ke dalamnya. Setelah memodifikasi pemasangan, selalu jalankan dbutils.fs.refreshMounts() pada semua kluster lain yang sedang berjalan untuk menyebarluaskan pembaruan pemasangan apa pun. Lihat perintah refreshMounts (dbutils.fs.refreshMounts).

Memasang ADLS Gen2 atau Blob Storage dengan ABFS

Anda dapat memasang data di akun penyimpanan Azure menggunakan perwakilan layanan aplikasi Microsoft Entra ID (sebelumnya Azure Active Directory) untuk autentikasi. Untuk informasi selengkapnya, lihat Mengakses penyimpanan menggunakan perwakilan layanan & ID Microsoft Entra(Azure Active Directory).

Penting

  • Semua pengguna di ruang kerja Azure Databricks memiliki akses ke akun ADLS Gen2 yang terpasang. Perwakilan layanan yang Anda gunakan untuk mengakses akun ADLS Gen2 harus diberikan akses hanya ke akun ADLS Gen2 tersebut; itu tidak boleh diberikan akses ke sumber daya Azure lainnya.
  • Setelah titik pemasangan dibuat melalui kluster, pengguna dapat langsung mengakses titik pemasangan. Untuk menggunakan titik pemasangan di kluster yang sedang berjalan lainnya, Anda harus menjalankan dbutils.fs.refreshMounts() pada kluster yang sedang berjalan tersebut untuk membuat titik pemasangan yang baru dibuat tersedia untuk digunakan.
  • Melepaskan titik pemasangan saat pekerjaan sedang berjalan dapat menyebabkan kesalahan. Pastikan bahwa pekerjaan produksi tidak melepaskan penyimpanan sebagai bagian dari pemrosesan.
  • Titik pemasangan yang menggunakan rahasia tidak disegarkan secara otomatis. Jika penyimpanan yang dipasang bergantung pada rahasia yang diputar, kedaluwarsa, atau dihapus, kesalahan dapat terjadi, seperti 401 Unauthorized. Untuk mengatasi kesalahan seperti itu, Anda harus melepaskan dan memasang kembali penyimpanan.
  • Namespace hierarkis (HNS) harus diaktifkan agar berhasil memasang akun penyimpanan Azure Data Lake Storage Gen2 menggunakan titik akhir ABFS.

Jalankan hal berikut di buku catatan Anda untuk mengautentikasi dan membuat titik pemasangan.

configs = {"fs.azure.account.auth.type": "OAuth",
          "fs.azure.account.oauth.provider.type": "org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider",
          "fs.azure.account.oauth2.client.id": "<application-id>",
          "fs.azure.account.oauth2.client.secret": dbutils.secrets.get(scope="<scope-name>",key="<service-credential-key-name>"),
          "fs.azure.account.oauth2.client.endpoint": "https://login.microsoftonline.com/<directory-id>/oauth2/token"}

# Optionally, you can add <directory-name> to the source URI of your mount point.
dbutils.fs.mount(
  source = "abfss://<container-name>@<storage-account-name>.dfs.core.windows.net/",
  mount_point = "/mnt/<mount-name>",
  extra_configs = configs)
val configs = Map(
  "fs.azure.account.auth.type" -> "OAuth",
  "fs.azure.account.oauth.provider.type" -> "org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider",
  "fs.azure.account.oauth2.client.id" -> "<application-id>",
  "fs.azure.account.oauth2.client.secret" -> dbutils.secrets.get(scope="<scope-name>",key="<service-credential-key-name>"),
  "fs.azure.account.oauth2.client.endpoint" -> "https://login.microsoftonline.com/<directory-id>/oauth2/token")
// Optionally, you can add <directory-name> to the source URI of your mount point.
dbutils.fs.mount(
  source = "abfss://<container-name>@<storage-account-name>.dfs.core.windows.net/",
  mountPoint = "/mnt/<mount-name>",
  extraConfigs = configs)

Menggantikan

  • <application-id> dengan ID Aplikasi (klien) untuk aplikasi Azure Active Directory.
  • <scope-name> dengan nama cakupan rahasia Databricks.
  • <service-credential-key-name> dengan nama kunci yang berisi rahasia klien.
  • <directory-id> dengan ID Direktori (penyewa) untuk aplikasi Azure Active Directory.
  • <container-name> dengan nama kontainer di akun penyimpanan ADLS Gen2.
  • <storage-account-name> dengan nama akun penyimpanan ADLS Gen2.
  • <mount-name> dengan nama titik pemasangan yang dimaksudkan di DBFS.