Felhőobjektum-tároló csatlakoztatása az Azure Databricksben

Az Azure Databricks lehetővé teszi a felhasználók számára, hogy felhőobjektum-tárolót csatlakoztatjanak a Databricks fájlrendszerhez (DBFS), hogy leegyszerűsíthessék az adathozzáférési mintákat a felhőfogalmakkal nem ismert felhasználók számára. A csatlakoztatott adatok nem működnek a Unity Catalog szolgáltatással, és a Databricks azt javasolja, hogy migráljon a csatlakoztatásoktól, és ehelyett kezelje az adatszabályozást a Unity Catalog használatával.

Hogyan csatlakoztatja az Azure Databricks a felhőalapú objektumtárolót?

Az Azure Databricks-csatlakoztatások kapcsolatot hoznak létre a munkaterület és a felhőobjektum-tároló között, így a Databricks fájlrendszerhez viszonyított ismerős fájlelérési utak használatával kezelheti a felhőbeli objektumtárolókat. A csatlakoztatások úgy működnek, hogy létrehoznak egy helyi aliast a /mnt könyvtár alatt, amely a következő információkat tárolja:

  • A felhőobjektum-tároló helye.
  • A tárfiókhoz vagy tárolóhoz való csatlakozás illesztőprogram-specifikációi.
  • Az adatok eléréséhez szükséges biztonsági hitelesítő adatok.

Mi a tároló csatlakoztatásának szintaxisa?

Ez source adja meg az objektumtároló URI-ját (és opcionálisan kódolhatja a biztonsági hitelesítő adatokat). A mount_point könyvtár helyi elérési útját /mnt adja meg. Egyes objektumtároló-források támogatnak egy választható encryption_type argumentumot. Egyes hozzáférési mintákhoz további konfigurációs specifikációkat adhat át szótárként extra_configs.

Feljegyzés

A Databricks a csatlakoztatásra vonatkozó Spark- és Hadoop-konfiguráció beállítását javasolja beállításokként extra_configs. Ez biztosítja, hogy a konfigurációk a fürt vagy munkamenet helyett a csatlakoztatáshoz legyenek kötve.

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

Mielőtt konfigurálná vagy módosítaná az adatcsatlakozásokat, kérdezze meg a munkaterületet és a felhőgazdákat, mert a helytelen konfiguráció nem biztonságos hozzáférést biztosíthat a munkaterület összes felhasználójához.

Feljegyzés

A cikkben ismertetett megközelítéseken kívül automatizálhatja a gyűjtők csatlakoztatását a Databricks Terraform szolgáltatójával és databricks_mount.

Csatlakoztatási pont leválasztása

Csatlakoztatási pont leválasztásához használja a következő parancsot:

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

Figyelmeztetés

A hibák elkerülése érdekében soha ne módosítsa a csatlakoztatási pontot, amíg más feladatok olvasnak vagy írnak hozzá. A csatlakoztatás módosítása után mindig futtassa dbutils.fs.refreshMounts() az összes többi futó fürtön a csatlakoztatási frissítések propagálásához. Lásd: refreshMounts parancs (dbutils.fs.refreshMounts).

Az ADLS Gen2 vagy Blob Storage csatlakoztatása az ABFS-sel

Az adatokat egy Azure-tárfiókba csatlakoztathatja egy Microsoft Entra-azonosító (korábbi nevén Azure Active Directory) alkalmazásszolgáltatás-egyszerű használatával a hitelesítéshez. További információ: Access storage with Microsoft Entra ID (korábbi nevén Azure Active Directory) egy szolgáltatásnév használatával.

Fontos

  • Az Azure Databricks-munkaterület összes felhasználója hozzáfér a csatlakoztatott ADLS Gen2-fiókhoz. Az ADLS Gen2-fiók eléréséhez használt szolgáltatásnévnek csak az adott ADLS Gen2-fiókhoz kell hozzáférést biztosítani; nem szabad hozzáférést biztosítani más Azure-erőforrásokhoz.
  • Amikor egy fürtön keresztül hoz létre csatlakoztatási pontot, a fürt felhasználói azonnal hozzáférhetnek a csatlakoztatási ponthoz. Ha a csatlakoztatási pontot egy másik futó fürtben szeretné használni, futtatnia kell a dbutils.fs.refreshMounts() parancsot azon a futó fürtön, hogy az újonnan létrehozott csatlakoztatási pont használhatóvá váljon.
  • A csatlakoztatási pont leválasztása a feladatok futtatása közben hibákhoz vezethet. Győződjön meg arról, hogy az éles feladatok nem oldják fel a tárolást a feldolgozás részeként.
  • A titkos kódokat használó csatlakoztatási pontok frissítése nem történik meg automatikusan. Ha a csatlakoztatott tároló egy elforgatott, lejárt vagy törölt titkos kódra támaszkodik, hibák léphetnek fel, például 401 Unauthorized. Egy ilyen hiba megoldásához le kell választania és újra kell csatlakoztatnia a tárterületet.
  • A hierarchikus névteret (HNS) engedélyezni kell egy Azure Data Lake Storage Gen2-tárfiók ABFS-végpont használatával történő sikeres csatlakoztatásához.

Futtassa a következőt a jegyzetfüzetben a hitelesítéshez és a csatlakoztatási pont létrehozásához.

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)

Replace

  • <application-id> az Azure Active Directory-alkalmazás alkalmazás-(ügyfél-) azonosítójával .
  • <scope-name> a Databricks titkos hatókörének nevével.
  • <service-credential-key-name> az ügyfélkulcsot tartalmazó kulcs nevével.
  • <directory-id> az Azure Active Directory-alkalmazás címtár-(bérlői) azonosítójával .
  • <container-name> egy tároló nevével az ADLS Gen2 tárfiókban.
  • <storage-account-name> az ADLS Gen2 tárfiók nevével.
  • <mount-name> a DBFS-ben a tervezett csatlakoztatási pont nevével.