繁体   English   中英

Microsoft Azure Data Lake 存储 (Gen2) 中的分层命名空间是什么?

[英]What is hierarchical namespace in Microsoft Azure Data Lake storage (Gen2)?

我阅读了微软关于它的文档。 链接 -> https://docs.microsoft.com/en-us/azure/storage/blobs/data-lake-storage-namespace 但无法清楚地理解它。

任何人都可以帮助我用外行术语/简单的语言理解它吗?

此功能如何将 ADLS 与 Azure Blob 存储区分开来?

目前的总结是,分层命名空间在实践中将 Azure 存储更改为更像 ADLS Gen1 样式的存储,但会损失一些基于 Azure Blob 存储的功能。

分层命名空间为您带来:

  • 在移动和重命名方面更像传统操作系统文件系统的文件夹结构
  • 基于细粒度 AAD 的目录/子目录级别的访问控制

同时,您将失去 Blob 存储功能,包括:

  • Blob 软删除(删除/恢复 Blob)
  • 自定义域、Azure CDN、Azure 门户 UI 中的 Azure 搜索集成
  • UI 中的 Blob 生命周期管理(按计划通过过滤器存档/删除/预热 Blob)
  • 对 Blob 存储 API 的有限支持

在实践中,您可能会遇到任何尝试与 Azure 存储交互的不一致的不兼容性。 它可能 100% 工作,也可能完全拒绝工作(或者不将存储帐户列为选项,如果使用 Azure 门户 UI 向导),或者可能部分工作。 在不知道底层实现的情况下,很难预测测试。

但是,事情仍然是流动的。 肯定有迹象表明这些妥协将在路线图中得到解决,尤其是基于已知问题列表https://docs.microsoft.com/en-us/azure/storage/blobs/data-lake-存储已知问题

数据存储和 Blob 存储之间的主要区别之一是分层命名空间。 如果您记得将我们的存储帐户转换为 Data Lake 时,分层命名空间是数据存储 Gen 2 中一个非常重要的附加功能,我们启用了分层命名空间设置,这就是您的存储帐户转换为数据存储 Gen 2 帐户的方式。

分层存储只是意味着对象和文件的集合被组织成一个文件夹树和嵌套文件夹,就像我们计算机和笔记本电脑上的文件系统的组织方式一样。 因此,基本上分层命名空间将对象或文件组织到目录层次结构中,以实现高效的数据访问。 现在,如果您对 blob 存储有一些经验,您可能想知道为什么不将其视为分层存储。 毕竟,blob 的组织结构通常似乎包括文件夹和子文件夹。 但是,这只是一种命名约定,您可以在 blob 名称中添加斜杠以模拟树状层次结构。 但它们实际上只是平面结构中的文件。 但是现在我实际上可以拥有这些文件夹的概念。 但这种看似简单的变化实际上对大数据分析产生了巨大的影响。 现在,如果您还记得,blob 存储不支持这种分层结构,但是 Hadoop 需要具有这种分层命名空间才能与存储集成。 这就是 Hadoop 不能与 blob 集成的原因。 但是数据湖支持分层命名空间。 这使得像 Gen 2 这样的数据与庞大的 Hadoop 软件生态系统无缝集成。

现在,正如我在 blob 存储中所说的,我们使用斜线来模拟树状目录结构。 在一定程度上是为了组织对象。 但是当涉及到移动、重命名或删除目录等操作时,这些像结构一样的斜线没有帮助,因为没有真正的目录应用程序必须执行潜在的数百万个单独的 blob 来实现目录级任务。 相比之下,分层命名空间通过更新单个条目来处理这些任务。 所以第 2 代真的很容易管理。 删除,重命名很容易。 搬家很容易。 您可以通过目录和子目录组织、操作文件。 用于对模拟文件夹进行操作的 blob 存储。 它必须对每个文件执行单独的操作。 但是,如果您看到数据湖 Gen2,它旨在对文件夹执行操作,因此可以非常快速地执行操作。 因此,让我围绕这一点提供一些背景信息。 假设您在传统对象存储中有一个包含 5000 个文件的文件夹,假设您需要重命名该文件夹。 如果你必须在其他对象故事上执行这样的操作,比如 Blob,那就意味着你必须做 5000 个文件复制,然后 5000 个文件删除,因为你必须从前端执行这些操作。

但是对于第 2 代数据湖,这些操作发生在后端。 因此,对您来说,这只是一个调用或一个操作。 分层命名空间功能还显着提高了许多分析作业的整体性能。 这种性能改进意味着您需要更少的计算能力来处理相同数量的数据。 这意味着端到端分析工作的总拥有成本更低。 现在文件系统文件系统已为开发人员和用户所熟知。

现在你可能会问为什么以前没有这样做。 实际上,对象存储历史上不支持分层命名空间的原因之一是分层命名空间限制了可扩展性。 但是,数据存储 Gen2 分层命名空间可线性扩展,并且不会降低数据容量或性能。 在某些情况下,您实际上不想使用分层命名空间,因为某些工作负载可能无法通过启用分层命名空间获得任何好处。 例如,如果您有一个备份,如果您有图像存储或其他一些应用程序,其中对象组织与对象本身分开存储,或者存储在某种单独的数据库中。 所以基本上这一切都取决于你的要求。

在您的帐户上启用分层命名空间后,您将无法恢复到平面命名空间。 所以请记住这一点。 我想现在我已经清除了分层命名空间是什么? 以及分层命名空间如何使您的数据存储 Gen 2 在所有存储服务中非常特别。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM