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 felhőbeli objektumtárba 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

Csatlakozás Azure Data Lake Storage Gen2-be vagy Blob Storage-ba Azure-hitelesítő adatokkal

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 a Microsoft Entra-azonosítóval (korábbi nevén Azure Active Directory) rendelkező Access Storage szolgáltatást egy szolgáltatásnév használatával.

    A Microsoft Entra ID szolgáltatásnév létrehozásához rendelkeznie kell a Application Administrator Microsoft Entra ID (korábbi nevén Azure Active Directory) szerepkörével vagy Application.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

Jegyzetfüzet beszerzése

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: