当前位置: 首页 > 知识库问答 >
问题:

以存储帐户为数据层的Azure Databricks

戎高爽
2023-03-14

我刚刚开始进行数据分析,需要使用Azure Databricks分析大量数据。在计划使用Databricks notebook进行分析时,我遇到了不同的存储选项来加载数据a)DBFS-default文件系统从Databricks b)Azure data Lake(ADLS)和c)Azure Blob storage。

在以上理解的基础上,我可以澄清以下问题吗?

  1. 数据库上下文中使用这些存储选项时,它们之间有什么区别?DBFS和ADLS是否在暗地里包含了HDFS的文件管理原则,比如将文件分成块、名称节点、数据节点等?
  2. 如果我挂载Azure Blob存储容器来分析数据,我还会获得与其他存储选项相同的性能吗?鉴于blob存储是一个基于对象的存储,它是否仍然将文件分成块,并将这些块作为RDD分区加载到Spark executor节点中?

共有1个答案

利海阳
2023-03-14

DBFS只是在可伸缩对象存储之上的一个抽象,比如AWS上的S3、Azure上的ADLS、GCP上的Google存储。

默认情况下,在创建工作区时,您将获得一个DBFS实例,即所谓的DBFS根。此外,您还可以在/mnt文件夹下挂载其他存储帐户。写入挂载点路径(/mnt)的数据存储在DBFS根目录之外。尽管DBFS根目录是可写的,但建议您将数据存储在挂载的对象存储中,而不是存储在DBFS根目录中。DBFS根不用于生产客户数据,因为存在一些限制,如缺乏访问控制,您不能访问工作区之外作为DBFS根安装的存储帐户,等等。

存储服务的实际实现(如namenodes等)实际上是被放弃的--您使用与HDFS兼容的API,但在hood下,实现将根据云和存储的风格而有所不同。对于Azure,您可以在这篇博文中找到关于它们实现的一些细节。

关于第二个问题--是的,您仍然应该将文件分成块等。Blob存储和数据湖存储之间存在差异,尤其是对于具有更好的安全模型并可能更好地针对大数据工作负载进行优化的ADLS Gen2。这篇博文描述了它们之间的区别。

 类似资料:
  • 告诉我如何在Azure存储帐户中存储PostgreSQL数据库数据。PostgreSQL部署到Azure容器实例。当我重新启动Azure容器实例时,所有数据都会消失。Dockerfile 来自Timescale/Timescaledb:Latest-PG12 az容器创建--resource-group test-env--name test-env--image test-env.azureca

  • 我试图实现一个功能来删除当前用户的帐户上iOS。帐户删除工作正常,但问题是删除帐户时,我无法从数据库和存储中删除帐户的数据。 “currentUser.delete”删除该帐户,但我认为没有身份验证可以从数据库和存储中删除其数据。日志中将显示“权限被拒绝”消息。运行此功能后,我看到Firebase控制台验证页面中的帐户已消失,但来自数据库和存储的数据仍然存在。 这是删除帐户的正确方法吗? 在删除帐

  • 我测试了在新的Azure门户中创建经典存储帐户(manage.windowsazure.com)和“新”存储帐户。将它们设置为类似的,并运行相同的代码来创建和配置队列。但指标仅显示门户中的经典存储帐户(能够在新门户中看到这两个帐户) 我已经像这样设置了ServiceProperties,并且可以在获取服务属性或查看Azure门户时成功地看到保存的这些更改。 当我使用Microsoft Azure

  • 您好,我正在创建一个新的blob触发的azure函数,我想了解函数头中“Connection=”参数的作用: 我所做的是完全删除该参数,在我将其部署到我的azure订阅后,它就可以正常工作了。因此,我想知道如果我没有使用连接参数指定任何特定帐户,该函数如何确定要使用哪个存储帐户。 这就是我部署函数的方式:

  • 我有一个函数应用,定义如下 其中< code > let-test-this-in 和< code > let-test-this-out 是连接字符串为< code >“defaultendpointsprocol=”的存储帐户下现有存储队列的名称...;account name =…;AccountKey= ... "(直接从门户中的访问键-连接字符串复制而来)。我发布时生成的function