訪問Azure數據湖存儲Gen2和Blob存儲

使用Azure Blob文件係統驅動程序(ABFS)從Databricks連接到Azure Blob存儲和Azure Data Lake存儲Gen2。Databricks建議使用在集群配置中設置的Azure服務主體來保護對Azure存儲容器的訪問。

本文詳細介紹了如何使用以下方法訪問Azure存儲容器:

  • Unity Catalog管理外部位置

  • Azure服務主體

  • SAS令牌

  • 賬戶的鑰匙

您將設置Spark屬性來為計算環境配置這些憑據,或者:

  • 作用域為Databricks集群

  • 範圍是數據庫筆記本

Azure服務主體也可以用於從Databricks SQL訪問Azure存儲;看到數據訪問配置

Databricks推薦使用秘密的範圍用於存儲所有憑據。

用於從Databricks存儲和訪問數據的已棄用模式

以下是已棄用的存儲模式:

直接訪問使用ABFS URI Blob存儲或Azure數據湖存儲Gen2

如果已正確配置憑據以訪問Azure存儲容器,則可以使用uri與存儲帳戶中的資源交互。Databricks建議使用abfss驅動器更安全。

火花負載“abfss: / / <容器名稱> @ < storage-account-name > .dfs.core.windows.net/ < path-to-data >”dbutilsfsls“abfss: / / <容器名稱> @ < storage-account-name > .dfs.core.windows.net/ < path-to-data >”
創建表格<數據庫-的名字><表格-的名字>複製<數據庫-的名字><表格-的名字>“abfss: / / container@storageAccount.dfs.core.windows.net/path/to/folder”FILEFORMATCSVCOPY_OPTIONS“mergeSchema”“真正的”);

通過Azure服務主體使用OAuth 2.0訪問Azure數據湖存儲Gen2或Blob存儲

您可以使用OAuth 2.0和Azure Active Directory (Azure AD)應用程序服務主體進行身份驗證,安全地訪問Azure存儲帳戶中的數據;看到使用Azure Active Directory訪問存儲

service_credentialdbutils秘密得到範圍“< >範圍”關鍵“< service-credential-key >”火花相依“fs.azure.account.auth.type。< storage-account > .dfs.core.windows.net”“OAuth”火花相依“fs.azure.account.oauth.provider.type。< storage-account > .dfs.core.windows.net”“org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider”火花相依“fs.azure.account.oauth2.client.id。< storage-account > .dfs.core.windows.net”“<應用程序id >”火花相依“fs.azure.account.oauth2.client.secret。< storage-account > .dfs.core.windows.net”service_credential火花相依“fs.azure.account.oauth2.client.endpoint。< storage-account > .dfs.core.windows.net”“https://login.microsoftonline.com/ < directory-id > / oauth2 /令牌”

取代

  • < >範圍使用Databricks秘密作用域名。

  • < service-credential-key >使用包含客戶端秘密的密鑰的名稱。

  • < storage-account >使用Azure存儲帳戶的名稱。

  • <應用程序id >應用程序(客戶端)ID用於Azure Active Directory應用程序。

  • < directory-id >目錄(租戶)ID用於Azure Active Directory應用程序。

使用SAS令牌訪問Azure數據湖存儲Gen2或Blob存儲

你可以使用存儲共享訪問簽名(SAS)直接訪問Azure數據湖存儲Gen2存儲帳戶。使用SAS,可以使用帶有細粒度訪問控製的臨時令牌限製對存儲帳戶的訪問。

在同一個Spark會話中,可以為多個存儲帳戶配置SAS令牌。

請注意

在Databricks Runtime 7.5及以上版本中提供了SAS支持。

火花相依“fs.azure.account.auth.type。< storage-account > .dfs.core.windows.net”“sa”火花相依“fs.azure.sas.token.provider.type。< storage-account > .dfs.core.windows.net”“org.apache.hadoop.fs.azurebfs.sas.FixedSASTokenProvider”火花相依“fs.azure.sas.fixed.token。< storage-account > .dfs.core.windows.net”“<標記>”

使用帳戶密鑰訪問Azure數據湖存儲Gen2或Blob存儲

你可以使用存儲帳戶訪問密鑰來管理對Azure存儲的訪問。

火花相依“fs.azure.account.key。< storage-account > .dfs.core.windows.net”dbutils秘密得到範圍“< >範圍”關鍵“< storage-account-access-key >”))

取代

  • < storage-account >使用Azure存儲帳戶名。

  • < >範圍使用Databricks秘密作用域名。

  • < storage-account-access-key >包含Azure存儲帳戶訪問密鑰的密鑰名稱。

例如筆記本電腦

ADLS Gen2 OAuth 2.0與Azure服務主體筆記本

在新標簽頁打開筆記本

Azure數據湖存儲Gen2常見問題和已知問題

看到Azure數據湖存儲Gen2常見問題解答