Felhőobjektum-tároló csatlakoztatása az Azure Databricksben
Fontos
A csatlakoztatások régi hozzáférési minták. A Databricks a Unity Catalog használatát javasolja az összes adathozzáférés kezeléséhez. Lásd: Csatlakozás felhőbeli objektumtárolókhoz és -szolgáltatásokhoz a Unity Cataloghasználatával.
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?
A source
megadja 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
A hitelesítéshez a Microsoft Entra ID alkalmazásnévvel csatlakoztathat adatokat egy Azure Storage-fiókba. További információ: Access Storage szolgáltatásnévvel > Microsoft Entra ID (Azure Active Directory).
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.