问题描述

在使用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

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

  1. 构建企业级数据湖?Azure Data Lake Storage Gen2不容错过(上)

    背景 相较传统的重量级OLAP数据仓库,“数据湖”以其数据体量大.综合成本低.支持非结构化数据.查询灵活多变等特点,受到越来越多企业的青睐,逐渐成为了现代数据平台的核心和架构范式. 数据湖的核心功能, ...

  2. 构建企业级数据湖?Azure Data Lake Storage Gen2实战体验(中)

    引言 相较传统的重量级OLAP数据仓库,“数据湖”以其数据体量大.综合成本低.支持非结构化数据.查询灵活多变等特点,受到越来越多企业的青睐,逐渐成为了现代数据平台的核心和架构范式. 因此数据湖相关服务 ...

  3. 构建企业级数据湖?Azure Data Lake Storage Gen2实战体验(下)

    相较传统的重量级OLAP数据仓库,“数据湖”以其数据体量大.综合成本低.支持非结构化数据.查询灵活多变等特点,受到越来越多企业的青睐,逐渐成为了现代数据平台的核心和架构范式. 作为微软Azure上最新 ...

  4. Databricks 第8篇:把Azure Data Lake Storage Gen2 (ADLS Gen 2)挂载到DBFS

    DBFS使用dbutils实现存储服务的装载(mount.挂载),用户可以把Azure Data Lake Storage Gen2和Azure Blob Storage 账户装载到DBFS中.mou ...

  5. Azure Data Lake Storage Gen2实战体验

    相较传统的重量级OLAP数据仓库,“数据湖”以其数据体量大.综合成本低.支持非结构化数据.查询灵活多变等特点,受到越来越多企业的青睐,逐渐成为了现代数据平台的核心和架构范式. 作为微软Azure上最新 ...

  6. 【Azure 存储服务】Hadoop集群中使用ADLS(Azure Data Lake Storage)过程中遇见执行PUT操作报错

    问题描述 在Hadoop集中中,使用ADLS 作为数据源,在执行PUT操作(上传文件到ADLS中),遇见 400错误[put: Operation failed: "An HTTP head ...

  7. Azure Data Lake(一) 在NET Core 控制台中操作 Data Lake Storage

    一,引言 Azure Data Lake Storage Gen2 是一组专用于大数据分析的功能,基于 Azure Blob Storage 构建的.Data Lake Storage Gen2 包含 ...

  8. 在Myeclipse中拷贝一个web项目,但是tomcat文件夹中没有更新,需要进行修改才能更新。

    1.在Myeclipse中拷贝一个web项目,但是tocat文件夹中没有更新,需要进行修改才能更新. 2.方法:右键这个工程,然后Properties->MyEclipse->Projec ...

  9. D盘Program Files 文件夹里文件不显示,没隐藏。怎么才能显示出来?

    D盘里有两个一模一样的Program Files 文件夹,文件夹里文件不显示,没隐藏.怎么才能显示出来?新买不久的电脑,win8.1系统 点击开始---运行---输入“cmd”(没有引号)---在弹出 ...

  10. 2. 假设当前文件夹中data.csv文件中存放了2020年某饭店营业额,第一列为日期(如2020-02-03),第二列为每天交易额(如3560),文件中第一行为表头,其余行为实 际数据。

    假设当前文件夹中data.csv文件中存放了2020年某饭店营业额,第一列为日期(如2020-02-03),第二列为每天交易额(如3560),文件中第一行为表头,其余行为实  际数据.编写程序,完成下 ...

随机推荐

  1. TypeScript中typeof的简单介绍

    简单介绍typeof 我们都知道js提供了typeof,用来获取基本数据的类型. 实际上,TS也提供了 typeof 操作符. 可以在 [类型上下文]中进行类型查询. 只能够进行变量或者属性查询. 定 ...

  2. React中Props的详细使用和props的校验

    props中的children属性 组件标签只用有子节点的时候,props就会有该属性; children的属性跟props一样的,值可以是任意值;(文本,React元素,组件,函数) 组件: < ...

  3. 【JS 逆向百例】医保局 SM2+SM4 国产加密算法实战

    关注微信公众号:K哥爬虫,QQ交流群:808574309,持续分享爬虫进阶.JS/安卓逆向等技术干货! 声明 本文章中所有内容仅供学习交流,抓包内容.敏感网址.数据接口均已做脱敏处理,严禁用于商业用途 ...

  4. 【JS 逆向百例】DOM事件断点调试,某商盟登录逆向

    声明 本文章中所有内容仅供学习交流,抓包内容.敏感网址.数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 逆向目标 目标:某商盟登录 ...

  5. mysql系列14---mysql数据库还原与备份

    一.Liunx服务器下数据库定时备份 1.编写mysql在docker容器中备份的shell脚本: #!/bin/bash#  2020-11-15#docker启动的mysql备份mysql_use ...

  6. word论文常用格式设定技巧【公式对齐、制表符公式编号等】

    1.公式对齐 改动前: 改动后结果: 2.段落行距要求 对于文字可以设定为1.5倍行距 对于公式 5号字体对应1.5倍行距大概在23.4磅,因此可以根据需求适当调整大小. 3.公式标号---使用制表符 ...

  7. 基于AQS实现自定义同步类

    Mutex(互斥锁) Mutex是一个不可重入的互斥锁实现.锁资源(AQS里的state)只有两种状态:0表示未锁定,1表示锁定.下边是Mutex的核心源码: class Mutex implemen ...

  8. element-ui表格筛选,根据表头属性显示隐藏列

    效果: 步骤: 1.标签上添加要过滤的源数组 <el-table-column label="标签" :filters="filterList" filt ...

  9. SVC服务的发现

    目录 服务的发现 发现的方式 1. ClusterIP 2. 通过变量 3. 通过DNS(推荐) 服务的发现 发现的方式 服务的发现说的就是svc的ip只有集群内的资源可以访问到,比如集群内的节点,p ...

  10. Linux(Centos7)升级MySQL 5.7到8.0.31

    一.下载MySQL安装包 下载地址:https://downloads.mysql.com/archives/community/ 二.备份 mkdir /home/mysqlback mysqldu ...