Azure Blob Storage和Azure Data Lake Storage的区别

4

对于像我这样的用户,Azure Blob 存储和 Azure Data Lake 存储之间的主要区别以及在什么情况下 Azure Blob 存储比 Azure Data Lake 存储更适合使用,反之亦然,似乎存在一些困惑。

谢谢。

3个回答

1

Data Lake Storage Gen1 目的:优化用于大数据分析工作负载的存储

Azure Blob Storage 目的:通用对象存储,适用于各种存储场景,包括大数据分析

Data Lake Storage Gen1 使用案例:批处理、交互式、流式分析和机器学习数据,例如日志文件、物联网数据、点击流、大型数据集

Azure Blob Storage 使用案例:任何类型的文本或二进制数据,例如应用程序后端、备份数据、用于流媒体的媒体存储和通用数据。此外,完全支持分析工作负载;批处理、交互式、流式分析和机器学习数据,例如日志文件、物联网数据、点击流、大型数据集

更多详细信息,请参见此文档:比较 Azure Data Lake Storage Gen1 和 Azure Blob Storage,其中列出了 Azure Data Lake Storage Gen1 和 Azure Blob Storage 在一些大数据处理关键方面的差异。


1

Blob存储是一种具有平面结构的对象存储。 一个对象捆绑了一个文件和一个名称/标识符以及一些元数据。 在Blob存储中没有文件夹或层次结构的概念。虽然在使用Azure门户或存储资源管理器查看Blob存储容器时,文件名中使用斜杠(/)会给人一种层次结构的错觉。这种使用斜杠或文件名前缀可以被视为Blob存储中的虚拟文件夹。

(忽略已弃用的ADLS gen1)

Azure数据湖存储Gen2(ADLS)则是一种分层存储。它有文件夹的概念。文件就像您工作站上的本地文件系统一样存储在文件夹中。除此之外,它还具有类似于Linux的文件和文件夹ACL。ADLS是Azure的HDFS产品。

现在ADLS的真正好处在于它非常高效地移动文件、重命名文件、移动文件夹、重命名文件夹等。ADLS的高效目录操作对于像Databricks/Spark这样最适合在文件系统上运行的分析工作负载非常有益。

Databricks也可以使用Blob存储,但这些操作不会很高效,并且会涉及大量不必要的数据复制。例如:

  • 移动/重命名 Blob 是复制和删除的组合。
  • 在 ADLS 上重命名文件夹非常简单,而在 Blob 存储上进行相同操作需要复制所有具有新名称的 Blob,然后删除旧 Blob。

使用像 Spark、Databricks 等工具的 ADLS,以及用于其他所有内容的 Blob 存储。还要注意,ADLS 的成本是 Blob 存储的 3 倍,并且可能缺少一些功能,例如 Blob 版本控制、时间点恢复等。


当您配置Blob存储时,您可以激活“分层存储”选项,这样您就可以使用文件夹。我认为最大的区别在于它们的数据模型(更多关于Cosmos DB)和查询能力(仅限于Cosmos DB)。 - Echo9k

0

除了以上所述内容,Azure Data Lake Storage Gen2 是一组专为大数据分析而创建的功能,建立在 Azure Blob 存储之上。


请将其作为评论添加到原始答案中。 - Amit

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接