【发布时间】:2019-09-18 10:40:06
【问题描述】:
我阅读了 Microsoft 的相关文档。链接->https://docs.microsoft.com/en-us/azure/storage/blobs/data-lake-storage-namespace。但是看不懂。
谁能帮我用外行术语/简单的语言理解它?
此功能如何将 ADLS 与 Azure Blob 存储区分开来?
【问题讨论】:
标签: azure azure-data-lake
我阅读了 Microsoft 的相关文档。链接->https://docs.microsoft.com/en-us/azure/storage/blobs/data-lake-storage-namespace。但是看不懂。
谁能帮我用外行术语/简单的语言理解它?
此功能如何将 ADLS 与 Azure Blob 存储区分开来?
【问题讨论】:
标签: azure azure-data-lake
目前的总结是,分层命名空间在实践中将 Azure 存储更改为更加 ADLS Gen1 样式的存储,但牺牲了一些基于 Azure Blob 存储的功能。
分层命名空间让你受益:
同时,您会失去 Blob 存储功能,包括:
在实践中,您可能会遇到与尝试与 Azure 存储交互的任何内容不一致的不兼容问题。它可能 100% 工作,它可能完全拒绝工作(或者如果使用 Azure 门户 UI 向导,则不将存储帐户列为选项),或者它可能部分工作。在不了解底层实现的情况下,很难预测测试。
但是,事情仍然是流动的。有迹象表明,这些妥协将在路线图中得到解决,尤其是基于已知问题列表https://docs.microsoft.com/en-us/azure/storage/blobs/data-lake-storage-known-issues。
【讨论】:
数据存储和 Blob 存储之间的主要区别之一是分层命名空间。如果您记得在将我们的存储帐户转换为 Data Lake 时,分层命名空间是数据存储第 2 代中非常重要的附加功能,我们启用了分层命名空间设置,这就是您的存储帐户转换为您的数据存储第 2 代帐户的方式。
分层存储仅仅意味着对象和文件的集合被组织成一个文件夹树和嵌套文件夹,就像我们计算机和笔记本电脑上的文件系统的组织方式一样。因此,基本上分层命名空间将对象或文件组织到目录层次结构中,以实现有效的数据访问。现在,如果您对 Blob 存储有一些经验,您可能想知道为什么不将其视为分层存储。毕竟,blob 通常以似乎包含文件夹和子文件夹的结构进行组织。但是,这只是一种命名约定,您可以在 blob 名称中添加斜杠以模拟树状层次结构。但它们实际上只是平面结构中的文件。但是现在我其实可以对这些文件夹有概念了。但这种看似简单的变化实际上对大数据分析产生了巨大的影响。现在,如果您还记得,blob 存储不支持这种分层结构,但 Hadoop 需要具有这种分层命名空间才能与存储集成。这就是为什么 Hadoop 不能与 blob 集成的原因。但是数据湖支持分层命名空间。这使得像 Gen 2 这样的数据可以与庞大的 Hadoop 软件生态系统无缝集成。
现在,正如我在 blob 存储中所说,我们正在使用 slashers 来模拟树状目录结构。它在一定程度上是为了组织对象。但是当涉及到移动、重命名或删除目录等操作时,这些斜杠结构没有任何帮助,因为如果没有真正的目录,应用程序必须执行潜在的数百万个单独的 blob 来实现目录级任务。相比之下,分层命名空间通过更新单个条目来处理这些任务。所以 Gen 2 真的很容易管理。删除,重命名很容易。搬家很容易。您可以通过目录和子目录组织、操作文件。 用于对模拟文件夹进行操作的 blob 存储。它必须对每个文件执行单独的操作。但是,如果您看到数据湖 Gen2,它旨在对文件夹执行操作,因此可以非常快速地执行此操作。因此,让我介绍一下这方面的背景。假设您在传统对象存储中有一个包含 5000 个文件的文件夹,假设您需要重命名此文件夹。如果您必须对 Blob 等其他对象故事执行此类操作,则意味着您必须执行 5000 个文件复制然后删除 5000 个文件,所有这些都是因为您必须从前端执行这些操作。
但是使用第 2 代数据湖,这些操作在后端进行。所以对你来说,这只是一个单一的呼叫,或者它只是一个单一的行动。分层命名空间功能还显着提高了许多分析作业的整体性能。这种性能改进意味着您需要更少的计算能力来处理相同数量的数据。这意味着端到端分析工作的总拥有成本更低。现在文件系统文件系统已经被开发人员和用户很好地理解了。
现在您可能会问为什么以前没有这样做。实际上,对象存储在历史上不支持分层命名空间的原因之一是分层命名空间限制了可扩展性。但是,数据存储 Gen2 分层命名空间可线性扩展,不会降低数据容量或性能。在某些情况下,您实际上不想使用分层命名空间,因为某些工作负载可能无法通过启用分层命名空间获得任何好处。例如,如果您有图像存储或其他一些应用程序,其中对象组织与对象本身分开存储,或者在某种单独的数据库中,则您有备份。 所以基本上这一切都取决于你的要求。
在您的帐户上启用分层命名空间后,您将无法恢复为平面命名空间。所以请记住这一点。我想现在我已经清除了分层命名空间是什么?以及分层命名空间如何使您的第 2 代数据存储在所有存储服务中变得非常特别。
【讨论】: