Csatlakozás Azure Data Lake Storage Gen2-höz és a Blob Storage-hoz
Feljegyzés
Ez a cikk az Azure Data Lake Storage Gen2-hez való hozzáférés konfigurálásának örökölt mintáit ismerteti. A Databricks azt javasolja, hogy a Unity Catalog használatával konfigurálja az Azure Data Lake Storage Gen2-hez és kötetekhez való hozzáférést a fájlok közvetlen interakciója érdekében. Lásd: Csatlakozás a felhőobjektum-tárolóhoz a Unity Catalog használatával.
Ez a cikk azt ismerteti, hogyan csatlakozhat az Azure Data Lake Storage Gen2-hez és a Blob Storage-hoz az Azure Databricksből.
Feljegyzés
- Az örökölt Windows Azure Storage-blobillesztő (WASB) elavult. Az ABFS számos előnnyel rendelkezik a WASB-vel szemben. Tekintse meg az Azure ABFS-ről szóló dokumentációját. Az örökölt WASB-illesztővel végzett munkával kapcsolatos dokumentációt lásd: Csatlakozás az Azure Blob Storage-hoz WASB-val (örökölt).
- Az Azure bejelentette az Azure Data Lake Storage Gen1 függőben lévő kivonását. Az Azure Databricks azt javasolja, hogy migrálja az összes adatot az Azure Data Lake Storage Gen1-ből az Azure Data Lake Storage Gen2-be. Ha még nem migrált, olvassa el az Azure Data Lake Storage Gen1 elérése az Azure Databricksből című témakört.
Csatlakozás az Azure Data Lake Storage Gen2-hez vagy a Blob Storage-hoz Az Azure hitelesítő adataival
A következő hitelesítő adatok használhatók az Azure Data Lake Storage Gen2 vagy a Blob Storage eléréséhez:
OAuth 2.0 Microsoft Entra ID szolgáltatásnévvel: A Databricks a Microsoft Entra ID szolgáltatásnevek használatát javasolja az Azure Storage-hoz való csatlakozáshoz. A Microsoft Entra ID szolgáltatásnév létrehozásához és az Azure Storage-fiókokhoz való hozzáférés biztosításához tekintse meg az Access Storage szolgáltatásnévvel és a Microsoft Entra ID(Azure Active Directory) szolgáltatásnévvel történő elérését.
A Microsoft Entra ID szolgáltatásnév létrehozásához rendelkeznie kell a
Application Administrator
Microsoft Entra ID szerepkörével vagyApplication.ReadWrite.All
engedélyével. Ha szerepköröket szeretne hozzárendelni egy tárfiókhoz, tulajdonosnak vagy a tárfiókhoz felhasználói hozzáférés adminisztrátor Azure RBAC-szerepkörrel rendelkező felhasználónak kell lennie.Közös hozzáférésű jogosultságkódok (SAS): A storage SAS-jogkivonatokkal hozzáférhet az Azure Storage-hoz. Az SAS használatával a tárfiókhoz való hozzáférést ideiglenes jogkivonatokkal, részletes hozzáférés-vezérléssel korlátozhatja.
Csak a tárfiókon, tárolón vagy fájlon lévő SAS-jogkivonat engedélyeit adhat meg.
Fiókkulcsok: A tárfiók hozzáférési kulcsait használhatja az Azure Storage-hozzáférés kezeléséhez. A tárfiók hozzáférési kulcsai teljes hozzáférést biztosítanak a tárfiók konfigurációihoz, valamint az adatokhoz. A Databricks azt javasolja, hogy fiókkulcsok helyett Microsoft Entra ID szolgáltatásnevet vagy SAS-jogkivonatot használjon az Azure Storage-hoz való csatlakozáshoz.
A fiók hozzáférési kulcsainak megtekintéséhez a tárfiók tulajdonosi, közreműködői vagy tárfiókkulcs-kezelői szolgáltatás szerepkörével kell rendelkeznie.
A Databricks titkos hatókörök használatát javasolja az összes hitelesítő adat tárolására. Hozzáférést adhat a munkaterület felhasználóinak, alkalmazáspéldányainak és csoportjainak a titkos hatókör elolvasásához. Ez védi az Azure-beli hitelesítő adatokat, miközben lehetővé teszi a felhasználók számára az Azure Storage elérését. Titkos kulcs hatókörének létrehozásához lásd : Titkos kulcsok hatókörei.
A Spark-tulajdonságok beállítása Azure-hitelesítő adatok konfigurálásához az Azure Storage eléréséhez
Beállíthatja a Spark-tulajdonságokat úgy, hogy konfiguráljon egy Azure-hitelesítő adatokat az Azure Storage eléréséhez. A hitelesítő adatok fürtre vagy jegyzetfüzetre is kiterjedhetnek. A fürthozzáférés-vezérlés és a jegyzetfüzet-hozzáférés-vezérlés együttes használata az Azure Storage-hozzáférés védelméhez. Lásd: Számítási engedélyek és együttműködés a Databricks-jegyzetfüzetekkel.
Feljegyzés
A Microsoft Entra ID szolgáltatásnevek az Azure Storage SQL Warehouse-ból való elérésére is használhatók, lásd: Adatelérési konfiguráció engedélyezése.
A Spark-tulajdonságok beállításához használja a következő kódrészletet egy fürt Spark-konfigurációjában vagy jegyzetfüzetében:
Azure-szolgáltatásnév
A fürt Spark-konfigurációjának beállításához használja a következő formátumot:
spark.hadoop.fs.azure.account.auth.type.<storage-account>.dfs.core.windows.net OAuth
spark.hadoop.fs.azure.account.oauth.provider.type.<storage-account>.dfs.core.windows.net org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider
spark.hadoop.fs.azure.account.oauth2.client.id.<storage-account>.dfs.core.windows.net <application-id>
spark.hadoop.fs.azure.account.oauth2.client.secret.<storage-account>.dfs.core.windows.net {{secrets/<secret-scope>/<service-credential-key>}}
spark.hadoop.fs.azure.account.oauth2.client.endpoint.<storage-account>.dfs.core.windows.net https://login.microsoftonline.com/<directory-id>/oauth2/token
A jegyzetfüzetekben az alábbi példában látható módon használhatja spark.conf.set
:
service_credential = dbutils.secrets.get(scope="<secret-scope>",key="<service-credential-key>")
spark.conf.set("fs.azure.account.auth.type.<storage-account>.dfs.core.windows.net", "OAuth")
spark.conf.set("fs.azure.account.oauth.provider.type.<storage-account>.dfs.core.windows.net", "org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider")
spark.conf.set("fs.azure.account.oauth2.client.id.<storage-account>.dfs.core.windows.net", "<application-id>")
spark.conf.set("fs.azure.account.oauth2.client.secret.<storage-account>.dfs.core.windows.net", service_credential)
spark.conf.set("fs.azure.account.oauth2.client.endpoint.<storage-account>.dfs.core.windows.net", "https://login.microsoftonline.com/<directory-id>/oauth2/token")
Replace
<secret-scope>
a Databricks titkos hatókörének nevével.<service-credential-key>
az ügyfélkulcsot tartalmazó kulcs nevével.<storage-account>
az Azure Storage-fiók nevével.<application-id>
a Microsoft Entra ID alkalmazás (ügyfél) azonosítójával .<directory-id>
a Microsoft Entra ID-alkalmazás címtár-(bérlői) azonosítójával .
SAS-tokenek
Ugyanabban a Spark-munkamenetben több tárfiókhoz is konfigurálhat SAS-jogkivonatokat.
spark.conf.set("fs.azure.account.auth.type.<storage-account>.dfs.core.windows.net", "SAS")
spark.conf.set("fs.azure.sas.token.provider.type.<storage-account>.dfs.core.windows.net", "org.apache.hadoop.fs.azurebfs.sas.FixedSASTokenProvider")
spark.conf.set("fs.azure.sas.fixed.token.<storage-account>.dfs.core.windows.net", dbutils.secrets.get(scope="<scope>", key="<sas-token-key>"))
Replace
<storage-account>
az Azure Storage-fiók nevével.<scope>
az Azure Databricks titkos hatókörének nevével.<sas-token-key>
az Azure Storage SAS-jogkivonatot tartalmazó kulcs nevével.
Fiókkulcs
spark.conf.set(
"fs.azure.account.key.<storage-account>.dfs.core.windows.net",
dbutils.secrets.get(scope="<scope>", key="<storage-account-access-key>"))
Replace
<storage-account>
az Azure Storage-fiók nevével.<scope>
az Azure Databricks titkos hatókörének nevével.<storage-account-access-key>
az Azure Storage-fiók hozzáférési kulcsát tartalmazó kulcs nevével.
Hozzáférés az Azure Storage-hez
Miután megfelelően konfigurálta a hitelesítő adatokat az Azure Storage-tároló eléréséhez, URI-k használatával kezelheti a tárfiók erőforrásait. A Databricks az illesztőprogram használatát javasolja a abfss
nagyobb biztonság érdekében.
spark.read.load("abfss://<container-name>@<storage-account-name>.dfs.core.windows.net/<path-to-data>")
dbutils.fs.ls("abfss://<container-name>@<storage-account-name>.dfs.core.windows.net/<path-to-data>")
CREATE TABLE <database-name>.<table-name>;
COPY INTO <database-name>.<table-name>
FROM 'abfss://container@storageAccount.dfs.core.windows.net/path/to/folder'
FILEFORMAT = CSV
COPY_OPTIONS ('mergeSchema' = 'true');
Példajegyzetfüzet
ADLS Gen2 OAuth 2.0 Microsoft Entra ID (korábbi nevén Azure Active Directory) szolgáltatásnév-jegyzetfüzettel
Az Azure Data Lake Storage Gen2 ismert problémái
Ha megpróbál hozzáférni az Azure Portalon létrehozott tárolóhoz, a következő hibaüzenet jelenhet meg:
StatusCode=404
StatusDescription=The specified filesystem does not exist.
ErrorCode=FilesystemNotFound
ErrorMessage=The specified filesystem does not exist.
Ha engedélyezve van a hierarchikus névtér, nem kell tárolókat létrehoznia az Azure Portalon keresztül. Ha ezt a problémát tapasztalja, törölje a Blob-tárolót az Azure Portalon keresztül. Néhány perc múlva elérheti a tárolót. Másik lehetőségként módosíthatja az abfss
URI-t egy másik tároló használatára, feltéve, hogy ez a tároló nem az Azure Portalon jön létre.
Az Azure Data Lake Storage Gen2 ismert problémáit a Microsoft dokumentációjában találja.
Az adatok tárolásának vagy Azure Databricksből való elérésének elavult mintái
Az elavult tárolási minták a következők:
A Databricks már nem javasolja külső adathelyek csatlakoztatását a Databricks Fájlrendszerhez. Lásd: Felhőobjektum-tároló csatlakoztatása az Azure Databrickshez.
A Databricks már nem javasolja a hitelesítő adatok átengedésének használatát az Azure Data Lake Storage Gen2-vel. Lásd: Access Azure Data Lake Storage a Microsoft Entra ID hitelesítő adatok átengedés (örökölt) használatával.