连接到数据存储Gen2湖和Blob存储Azure

这篇文章解释了如何连接到Azure数据存储Gen2湖和Blob存储从砖。Azure数据存储湖Gen2 faq和已知问题,明白了Azure湖数据存储Gen2 FAQ

请注意

数据连接到Azure湖代或Blob存储使用Azure存储凭证

下列凭证可以用来访问代或Blob存储Azure湖数据存储:

  • OAuth 2.0 Azure服务主体:砖建议使用Azure服务主体连接到Azure存储。创建一个Azure服务主体和提供访问Azure存储账户,明白了访问存储Azure的Active Directory

    要创建一个Azure服务主体,必须有应用程序管理员作用或Application.ReadWrite.All允许在Azure Active Directory。在存储帐户分配角色必须是一个所有者或用户与用户访问存储账户管理员Azure RBAC角色。

  • 共享访问签名(SAS):您可以使用存储SAS令牌访问Azure存储。通过情景应用程序,您可以限制访问存储账户使用临时令牌和细粒度的访问控制。

    你只能授予一个SAS令牌上权限存储账户,容器,或文件。

  • 账户的钥匙:您可以使用存储帐户访问键管理访问Azure存储。存储帐户访问键提供完全访问的配置存储账户,以及数据。砖建议使用Azure服务主体或SAS令牌连接到Azure存储,而不是帐户密钥。

    查看一个帐户的访问键,你必须有业主,贡献者,或存储账户存储帐户密钥运营商服务的作用。

砖建议使用秘密的范围来存储所有的凭证。能给予用户、服务主体和组织您的工作区中获得阅读的秘密范围。这个保护Azure的凭证,同时允许用户访问Azure存储。创建一个秘密范围,明白了秘密的范围

设置火花属性配置访问Azure存储Azure凭证

你可以设置属性来配置一个火花Azure凭据访问Azure存储。凭证可以局限于集群或笔记本。同时使用集群访问控制和笔记本一起访问控制保护进入Azure存储。看到集群访问控制工作区对象访问控制

设置火花属性,使用以下代码片段在集群的火花配置或笔记本:

使用以下格式设置集群火花的配置:

OAuth fs.azure.account.auth.type。< storage-account > .dfs.core.windows.netfs.azure.account.oauth.provider.type。< storage-account > .dfs.core.windows.net org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProviderfs.azure.account.oauth2.client.id。< storage-account > .dfs.core.windows.net <应用程序id >fs.azure.account.oauth2.client.secret。< storage-account > .dfs.core.windows.net{{秘密/ < secret-scope > / < service-credential-key >}}fs.azure.account.oauth2.client.endpoint。< storage-account > .dfs.core.windows.net https://login.microsoftonline.com/ < directory-id > / oauth2 /令牌

您可以使用spark.conf.set在笔记本电脑,如以下示例所示:

service_credential=dbutils秘密得到(范围=“< secret-scope >”,关键=“< 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 /令牌”)

取代

  • < secret-scope >砖秘密范围的名称。

  • < service-credential-key >的名称包含客户的关键秘密。

  • < storage-account >Azure存储账户的名称。

  • <应用程序id >应用程序(客户端)IDAzure的活动目录的应用程序。

  • < directory-id >目录(租户)IDAzure的活动目录的应用程序。

您可以配置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”。,dbutils秘密得到(范围=“< >范围”,关键=“< sas-token-key >”))

取代

  • < storage-account >Azure存储帐户名称。

  • <范围>砖秘密范围的名称。

  • < sas-token-key >的名称包含Azure存储的关键SAS令牌。

火花相依(“fs.azure.account.key < storage-account > .dfs.core.windows.net”。,dbutils秘密得到(范围=“< >范围”,关键=“< storage-account-access-key >”))

取代

  • < storage-account >Azure存储帐户名称。

  • <范围>砖秘密范围的名称。

  • < storage-account-access-key >的名字包含Azure存储帐户访问关键的关键。

访问Azure存储

一旦你已经正确配置了凭据访问Azure存储容器,您可以存储账户与资源使用uri。砖推荐使用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'FILEFORMAT=CSVCOPY_OPTIONS(“mergeSchema”=“真正的”);

例如笔记本电脑

ADLS Gen2 OAuth 2.0 Azure服务主体的笔记本

在新标签页打开笔记本

从砖弃用模式来存储和访问数据

以下是弃用存储模式: