ITPub博客

首页 > 数据库 > 数据库开发技术 > 如何从Azure Databricks访问Azure存储账户

如何从Azure Databricks访问Azure存储账户

原创 数据库开发技术 作者:招牌鸡蛋面 时间:2022-12-30 21:44:36 0 删除 编辑

今天分享的主题是:

如何从Azure Databricks中直接访问Azure存储账户?确切的说是Azure数据湖和块存储:Azure Data Lake Storage Gen2和Blob Storage

据最新官方文档说目前有以下4种访问方式:

- Unity Catalog managed external locations

- Azure service principals

- SAS tokens

- Account keys

第1种:Unity Catalog managed external locations。没用过,所以没什么经验可以分享。

第2种:Azure service principals

这个应该也是微软所推荐的,类似于一个服务账号,给这个service principal赋予什么样的权限,它就能做什么样的事情。

第3种:SAS tokens。其实这种方式与第4种:Account keys很类似,但是这两种推荐前者SAS tokens。因为SAS tokens是基于Blob container级别的,你指定哪个container就只有那个container的权限。而后者Account keys是基于存储账户级别的,权限更大,指定存储账户下面所有的container都有相应的权限。类比就是一个是控制文件夹级别访问权限,一个是控制磁盘级别访问权限。

今天我们只用第3种方式:SAS token

假如你有一个存储账户:mystorageaccount

在这个存储账户下面有一个container名叫:my-container

那如何从Azure Databricks上直接读取上面存储账户的blob中container下面的数据呢?请参考下面完整代码:

// 以下是Scala代码,请在你的Databricks Notebook中创建Scala notebook运行下面的代码// set variablesval storageAccountName = "mystorageaccount"val containerName = "my-container"val sasToken = "sp=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"val dataSourcePath = "abfss://%s@%s.dfs.core.windows.net/data".format(containerName, storageAccountName)
// configue spark with SAS token access wayspark.conf.set("fs.azure.account.auth.type.%s.dfs.core.windows.net".format(storageAccountName ), "SAS")spark.conf.set("fs.azure.sas.token.provider.type.%s.dfs.core.windows.net".format(storageAccountName ), "org.apache.hadoop.fs.azurebfs.sas.FixedSASTokenProvider")spark.conf.set("fs.azure.sas.fixed.token.%s.dfs.core.windows.net".format(storageAccountName ), sasToken)
// load avro format dataval myAVRODataFrame = spark .read .format("avro")  .load(dataSourcePath)    // load parquetformat data  val myParquetDataFrame = spark .read  .parquet(dataSourcePath)    // show dataframe  myAVRODataFrame.show()  myParquetDataFrame.show()


【参考链接】

https://learn.microsoft.com/en-us/azure/databricks/external-data/azure-storage#deprecated-patterns-for-storing-and-accessing-data-from-azure-databricks

关于其它几种访问方式

点击关注本公众号,且听下回分解!

👇


原文作者:BPShare;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论
干过测试,做过运维,还兼职过售前+投标+实施+售后+客户培训。前两年入坑大数据开发,熟悉Azure + Databricks大数据相关产品。 喜欢研究技术,所以搞了一个公众号:BPShare,分享一些经验和心得。欢迎骚扰~~~

注册时间:2020-02-17

  • 博文量
    90
  • 访问量
    44236