首页 > 其他分享 >【Azure Data Lake Storage】如何才能保留Blob中的文件目录结构(即使文件夹中文件数量为0的情况下)?

【Azure Data Lake Storage】如何才能保留Blob中的文件目录结构(即使文件夹中文件数量为0的情况下)?

时间:2024-01-16 21:34:37浏览次数:41  
标签:文件目录 storage Storage Lake 命名 文件夹 Blob Azure

问题描述

在使用Azure Storage Account Blob时候,发现当文件夹中的Blob(文件)被全部输出后,文件夹也会消失?

为什么它不能像Windows系统中的文件夹一样,即使是一个空文件夹。也会一直保留呢?

 

问题解答

这是因为 Azure Storage Account Blob 对 Container下的文件管理采用的是扁平化的命名方式( Flat Namespace ),它并没有Windows操作系统中的“文件夹”概念,而在页面中显示的一级一级的文件结构,只是一个虚拟结构。当其中的全部文件(Blob)被清空后,这些虚拟的文件夹结构也会被清空。

而ADLS(Azure Data Lake Storage Gen2)则提供了分层命名空间( Hierarchical Namespace ),允许使用目录和子目录组织和管理数据,就像在本地文件系统中一样。

 

扁平化的命名方式( Flat Namespace )  vs 分层命名空间( Hierarchical Namespace )

扁平命名空间(FNS):一种在 Azure 存储帐户中组织对象的模式,其中对象使用扁平结构(即对象的扁平列表)进行组织。这是存储帐户的默认配置。

Flat namespace (FNS): A mode of organization in a storage account on Azure where objects are organized using a flat structure - aka a flat list of objects. This is the default configuration for a storage account.

 

分层命名空间(HNS):使用分层命名空间,您可以将数据组织到结构化的文件夹和目录中。分层命名空间允许像文件夹重命名和删除这样的操作以单个原子操作执行,而扁平命名空间则需要与结构中对象数量成比例的操作数。分层命名空间存储您的目录和文件夹结构的附加元数据,并允许文件系统 ACL。然而,随着您的数据量增长,分层命名空间保持您的数据有组织,并且更重要的是,它为您的分析作业提供更好的存储性能,从而降低了运行分析作业的总体 TCO。

Hierarchical namespace (HNS): With hierarchical namespaces, you can organize data into structured folders and directories. A hierarchical namespace allows operations like folder renames and deletes to be performed in a single atomic operation, which with a flat namespace requires a number of operations proportionate to the number of objects in the structure. Hierarchical namespaces store additional meta-data for your directory and folder structure, and allows Filesystem ACLs. However, as your data volume grows, hierarchical namespaces keeps your data organized and more importantly yields better storage performance on your analytic jobs – thus lowering your overall TCO to run analytic jobs

 

所以,为了保留Blob的的文件夹结构(目录和子目录), 有如下两种方式:

方式一:把Stroage Account升级为ADLS Gen 2, Azure门户提供了非常方便的升级方式,只需要在页面中点击升级按钮

 

方式二:始终保留一个文件在所需要保留的文件夹(目录或子目录)中

 

参考资料

Flat namespace (FNS) vs Hierarchical namespace (HNS) : https://azure.github.io/Storage/docs/analytics/azure-storage-data-lake-gen2-billing-faq/

升级具有 Azure Data Lake Storage Gen2 功能的 Azure Blob 存储 : https://docs.azure.cn/zh-cn/storage/blobs/upgrade-to-data-lake-storage-gen2

Do we have an option for hierarchical folder options in blob storage? https://learn.microsoft.com/en-us/answers/questions/904103/do-we-have-an-option-for-hierarchical-folder-optio

 

标签:文件目录,storage,Storage,Lake,命名,文件夹,Blob,Azure
From: https://www.cnblogs.com/lulight/p/17968595

相关文章

  • 深入了解 ReadDirectoryChangesW 并应用其监控文件目录
    简介监视指定目录的更改,并将有关更改的信息打印到控制台,该功能的实现不仅可以在内核层,在应用层同样可以。程序中使用ReadDirectoryChangesW函数来监视目录中的更改,并使用FILE_NOTIFY_INFORMATION结构来获取有关更改的信息。ReadDirectoryChangesW是Windows提供一个函数......
  • localStorage、sessionStorage和cookie的使用
    vue-cookies的使用首先需要安装vue-cookiescnpminstallvue-cookies-S 具体使用方法如下:设置cookie://key,value形式、过期时间为7天cookie.set('name','zeng','7d') 获取cookie://打印key值为name的cookieconsole.log(cookie.get('name')) 删除......
  • Snowflake算法生成Id
    网上大部分C#写的都有点乱糟糟,我简化了一下:usingSystem;namespacexxx{///<summary>///Id生成类///</summary>classSnowflake{privateconststringLOCK_OBJ="76003AEB-E3F9-460A-BD31-D9AE9E7684C0";privatecon......
  • localstorage是什么
    Laravel是一个流行的PHP框架,它具有出色的可测试性,可以帮助开发人员在更短的时间内编写可靠的代码。但是,即使使用了这个框架,也可能会出现测试覆盖率较低的情况。测试覆盖率是指代码中已由测试案例覆盖的部分比例。测试覆盖率越高,代码质量越高。在本文中,我们将分享几种技巧,帮助您提......
  • 华为认证 | HCIP-Storage V5.5 认证正式发布!
    华为认证存储高级工程师HCIP-StorageV5.5(中文版)自2023年12月28日起正式在中国区发布。01发布概述基于“平台+生态”战略,围绕“云-管-端”协同的新ICT技术架构,华为公司打造了覆盖ICT领域的认证体系,包含ICT基础设施认证、基础软硬件认证、云平台及云服务认证三类认证。根据ICT从业......
  • The Lakes
    TheLakes本质上是个染色问题,太久没写搜索,出现了错误。最初做法intmain(){for(inti=1;i<=n;i++) { for(intj=1;j<=m;j++) { if(vis[i][j]==false&&a[i][j]!=0) {vis[i][j]=true;dfs(i,j,a[i][j]);}......
  • openKylin 1.0 成功适配 Inte l 最新 x86 平台 Raptor Lake 系列
    2024大语言模型技术报告.pdf 2024年1月2日,openKylin1.0成功适配Intel(英特尔)最新x86平台RaptorLake系列,与国际OSV同步。 Intel中国公司在2023年11月加入openKylin社区之后,成立了IntelSIG并与openKylin社区开展合作,经过IntelSIG团队成员的努力,目前op......
  • 拷贝网站sessionStorage或者localStorage的数据到另一个网站的sessionStorage或者loca
    复制网站sessionStorage或者localStorage到另一个网站:1.将以下代码在要复制的A页面console中回车执行。   1)sessionStorage全拷贝:copy(`constsess=${JSON.stringify(sessionStorage)};for(constkeyinsess){sessionStorage.setItem(key,sess[ke......
  • sessionStorage.clear() 的一些疑问
    问:window.close();//直接关闭会导致仅清空的当前标签页的sessionStorage,重新打开时标签页的仍然是之前的sessionStorage数据,尽管执行了sessionStorage.clear()???答:这可能是因为浏览器的行为。一些浏览器在关闭标签页或窗口时会保存其状态,包括sessionStorage的数据,以便在......
  • Abp中集成TableStorage
    添加Nuget包Azure.Data.Tables在appsettings.json中配置连接字符串在Module中获取连接字符串,并注册服务privatevoidConfigurationTableStorage(ServiceConfigurationContextcontext){varconnectionString=context.Services.GetConfigur......