通俗易懂理解对象存储_对象存储 文件存储-程序员宅基地

技术标签: 对象存储  大数据  

在这里插入图片描述

一句话描述对象存储

对象存储是一种以非结构化格式(称为对象)存储和管理数据的技术。

所以这里你可以简单把对象理解成非结构化数据就可以了,比如视频、图片、网页、音频、电子邮件、传感器数据等。

工作原理

使用对象存储,对象保存在单个存储桶中,而不是作为文件夹内的文件保存。相反,对象存储整合了构成文件的数据片段,将所有用户创建的元数据添加到该文件,并附加自定义标识符。这将创建一个称为存储桶的平面结构,而不是分层或分级存储。这使您可以根据存储桶的功能和特征来检索和分析其中的任何对象,而无论文件类型如何。
这里简单理解为我们要找对象,只需知道它在哪个桶中,然后要根据key就能直接找到对应的value。

对象存储、文件存储和块存储

多年来,随着互联网的发展以及数据源和数据类型的不断丰富,全世界的数据存储需求也在不断演变。传统的文件存储和块存储并不能很好地处理产生的海量数据,尤其是天生不适合结构化数据存储方法的非结构化数据。
那么,对象存储与文件存储和块存储有什么区别呢?

  • 文件存储
    文件存储将数据存储和整理到文件夹中,类似于保存在办公室的纸质文件系统中的物理文件。如果需要某个文件中的信息,则需要知道哪个房间、文件柜、抽屉和文件夹包含该特定文件。文件存储使用相同的分层存储结构,文件被命名,以元数据标记,然后放入文件夹中。
    要找到某个数据,需要知道查找该数据的正确路径。随着时间的推移,文件变得越来越多,搜索和检索数据文件可能会变得非常耗时。虽然可伸缩性较为有限,但通过这种方法可以很容易地存储几乎任何类型的少量数据,并且可供多个用户同时访问。
  • 块存储
    块存储在文件存储的基础上提升了性能,它将文件拆分为多个单独的块并单独存储。块存储系统会为每个原始数据块分配一个唯一标识符,当需要访问完整的文件时,系统将使用唯一标识符将数据块重组为完整的文件。块存储不需要单一的数据路径,因此可以将其存储在最方便的位置,并且在需要时仍然能够快速检索。
    块存储非常适合需要处理大量事务型数据或使用任务关键型应用的组织,可提供低延迟和一致的性能。但是,块存储费用高昂,不提供元数据功能,并且需要操作系统才能访问块。
  • 对象存储
    如前所述,对象存储将文件存储为扁平数据环境(即存储池)中的独立对象,对象包含全部数据、唯一标识符和详细元数据(元数据包含关于数据、权限、政策和其他应急情况的信息)。对象存储最适合非结构化数据的静态存储,只写入一次数据,但可能需要多次读取。
    虽然对象存储不需要目录、文件夹和其他复杂的分层结构,但却不适合用来存储不断变化的动态数据,因为修改对象需要重写整个对象。根据速度和性能要求,在某些情况下文件存储和块存储可能仍然适合需求。

对象存储的优势

  • 可伸缩性强
    可以轻松横向扩容对象存储的扁平架构,而不会受到文件存储或块存储那样的限制。对象存储基本没有大小限制,因此只需添加新设备,即可将数据扩大到 EB 级。
  • 复杂性低
    对象存储没有文件夹或目录,也就不具有层次结构系统的大多数复杂性。由于没有复杂的树或分区,检索文件变得十分轻松,因为不需要知道确切位置。
  • 易于搜索
    元数据是对象的一部分,无需借助单独的应用即可轻松搜索和导航。它也更加灵活,并且可以深度自定义。可以使用各种特性和信息来为对象添加标记,例如用量、费用以及自动删除、保留和分层的政策。
  • 具有弹性
    对象存储可以自动复制数据并存储在多个设备和多个地理位置。这有助于防范服务中断和数据丢失,并可为灾难恢复策略提供支持。
  • 成本效益高
    对象存储在设计时考虑了成本因素,与基于文件和块的系统相比,能够以更低的价格存储大量数据。使用对象存储时,只需要的容量付费,即使存储大量数据,也能很好地控制费用。

使用场景

  • 大数据分析
    存储大量任何类型的数据,然后查询这些数据以执行大数据分析,并获取有关客户、运营或市场的宝贵数据洞见。
  • 数据存档
    云对象存储非常适合长期数据留存。可以使用能够优化数据持久性、加快检索速度、加强安全性与合规性并且提升数据可访问性的解决方案来取代本地的磁带和磁盘存档基础设施,从而获得高级分析及业务情报能力。还可以以经济高效的方式归档大量富媒体内容,并长时间保留强制性监管数据。
  • 富媒体存储和传送
    降低存储和在全球范围内分发音乐、视频和图片等富媒体的成本。
  • ML
    在机器学习(ML)中,您“教”计算机进行预测或推理。使用算法来训练模型,然后将模型集成到您的应用程序中,以实时和大规模地生成推理。由于规模和成本效率的原因,机器学习需要对象存储,因为生产模型通常从数百万到数十亿个示例数据项中学习,并在短短 20 毫秒内生成推理结果。

成熟的对象存储框架

  • Amazon S3
    Amazon Simple Storage Service (S3) 是亚马逊AWS提供的一种高度可扩展的对象存储服务。它提供了安全、耐用、可靠的存储基础设施,可以轻松存储和检索任意类型的数据。
  • Google Cloud Storage
    Google Cloud Storage是谷歌云平台上的对象存储服务。它提供了高可用性、持久性和强大的一致性,可用于大规模数据存储和分析。
  • Microsoft Azure Blob Storage
    Microsoft Azure Blob Storage是微软Azure云平台上的对象存储服务。它提供了高度可扩展的数据存储解决方案,适用于各种应用场景,包括备份、归档、分发媒体文件等。
  • OpenStack Swift:
    OpenStack Swift是一个开源的对象存储系统,适用于构建私有云和公有云的存储服务。它具有高可用性、可扩展性和数据冗余性,并提供了丰富的API接口。
  • Ceph
    Ceph是一个分布式对象存储系统,具有高可伸缩性和容错性。它采用了智能数据分布和数据冗余技术,可以在大规模集群中存储和管理海量数据。
  • Alibaba Cloud Object Storage Service (OSS)
    阿里云对象存储服务是阿里云平台上的一种高可用、高扩展性的对象存储服务。它具有低成本、高可靠性和安全性,并提供了丰富的存储和数据处理功能。
  • Apache Ozone
    Apache Ozone 是一个开源的分布式对象存储系统,它是 Apache Hadoop 生态系统的一部分,并且专门用于存储大规模数据。Apache Ozone 提供高度可扩展的存储解决方案,并且支持灵活的数据复制和故障恢复机制。非常感谢您的指正,Apache Ozone 也是一个成熟的对象存储框架之一。

后记

随着数据量的不断增长和应用场景的多样化,传统的文件系统和块存储在大规模数据存储方面逐渐暴露出局限性。对象存储作为一种创新的存储技术,具备可伸缩性、容错性、高性能和灵活性的特点,在大规模数据存储领域有着广阔的应用前景。未来,对象存储将成为大规模数据存储的主流,为各行各业提供更好的数据存储和管理解决方案。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Android_xue/article/details/131005413

智能推荐

JWT(Json Web Token)实现无状态登录_无状态token登录-程序员宅基地

文章浏览阅读685次。1.1.什么是有状态?有状态服务,即服务端需要记录每次会话的客户端信息,从而识别客户端身份,根据用户身份进行请求的处理,典型的设计如tomcat中的session。例如登录:用户登录后,我们把登录者的信息保存在服务端session中,并且给用户一个cookie值,记录对应的session。然后下次请求,用户携带cookie值来,我们就能识别到对应session,从而找到用户的信息。缺点是什么?服务端保存大量数据,增加服务端压力 服务端保存用户状态,无法进行水平扩展 客户端请求依赖服务.._无状态token登录

SDUT OJ逆置正整数-程序员宅基地

文章浏览阅读293次。SDUT OnlineJudge#include<iostream>using namespace std;int main(){int a,b,c,d;cin>>a;b=a%10;c=a/10%10;d=a/100%10;int key[3];key[0]=b;key[1]=c;key[2]=d;for(int i = 0;i<3;i++){ if(key[i]!=0) { cout<<key[i.

年终奖盲区_年终奖盲区表-程序员宅基地

文章浏览阅读2.2k次。年终奖采用的平均每月的收入来评定缴税级数的,速算扣除数也按照月份计算出来,但是最终减去的也是一个月的速算扣除数。为什么这么做呢,这样的收的税更多啊,年终也是一个月的收入,凭什么减去12*速算扣除数了?这个霸道(不要脸)的说法,我们只能合理避免的这些跨级的区域了,那具体是那些区域呢?可以参考下面的表格:年终奖一列标红的一对便是盲区的上下线,发放年终奖的数额一定一定要避免这个区域,不然公司多花了钱..._年终奖盲区表

matlab 提取struct结构体中某个字段所有变量的值_matlab读取struct类型数据中的值-程序员宅基地

文章浏览阅读7.5k次,点赞5次,收藏19次。matlab结构体struct字段变量值提取_matlab读取struct类型数据中的值

Android fragment的用法_android reader fragment-程序员宅基地

文章浏览阅读4.8k次。1,什么情况下使用fragment通常用来作为一个activity的用户界面的一部分例如, 一个新闻应用可以在屏幕左侧使用一个fragment来展示一个文章的列表,然后在屏幕右侧使用另一个fragment来展示一篇文章 – 2个fragment并排显示在相同的一个activity中,并且每一个fragment拥有它自己的一套生命周期回调方法,并且处理它们自己的用户输_android reader fragment

FFT of waveIn audio signals-程序员宅基地

文章浏览阅读2.8k次。FFT of waveIn audio signalsBy Aqiruse An article on using the Fast Fourier Transform on audio signals. IntroductionThe Fast Fourier Transform (FFT) allows users to view the spectrum content of _fft of wavein audio signals

随便推点

Awesome Mac:收集的非常全面好用的Mac应用程序、软件以及工具_awesomemac-程序员宅基地

文章浏览阅读5.9k次。https://jaywcjlove.github.io/awesome-mac/ 这个仓库主要是收集非常好用的Mac应用程序、软件以及工具,主要面向开发者和设计师。有这个想法是因为我最近发了一篇较为火爆的涨粉儿微信公众号文章《工具武装的前端开发工程师》,于是建了这么一个仓库,持续更新作为补充,搜集更多好用的软件工具。请Star、Pull Request或者使劲搓它 issu_awesomemac

java前端技术---jquery基础详解_简介java中jquery技术-程序员宅基地

文章浏览阅读616次。一.jquery简介 jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理HTML documents、events、实现动画效果,并且方便地为网站提供AJAX交互 jQuery 的功能概括1、html 的元素选取2、html的元素操作3、html dom遍历和修改4、js特效和动画效果5、css操作6、html事件操作7、ajax_简介java中jquery技术

Ant Design Table换滚动条的样式_ant design ::-webkit-scrollbar-corner-程序员宅基地

文章浏览阅读1.6w次,点赞5次,收藏19次。我修改的是表格的固定列滚动而产生的滚动条引用Table的组件的css文件中加入下面的样式:.ant-table-body{ &amp;amp;::-webkit-scrollbar { height: 5px; } &amp;amp;::-webkit-scrollbar-thumb { border-radius: 5px; -webkit-box..._ant design ::-webkit-scrollbar-corner

javaWeb毕设分享 健身俱乐部会员管理系统【源码+论文】-程序员宅基地

文章浏览阅读269次。基于JSP的健身俱乐部会员管理系统项目分享:见文末!

论文开题报告怎么写?_开题报告研究难点-程序员宅基地

文章浏览阅读1.8k次,点赞2次,收藏15次。同学们,是不是又到了一年一度写开题报告的时候呀?是不是还在为不知道论文的开题报告怎么写而苦恼?Take it easy!我带着倾尽我所有开题报告写作经验总结出来的最强保姆级开题报告解说来啦,一定让你脱胎换骨,顺利拿下开题报告这个高塔,你确定还不赶快点赞收藏学起来吗?_开题报告研究难点

原生JS 与 VUE获取父级、子级、兄弟节点的方法 及一些DOM对象的获取_获取子节点的路径 vue-程序员宅基地

文章浏览阅读6k次,点赞4次,收藏17次。原生先获取对象var a = document.getElementById("dom");vue先添加ref <div class="" ref="divBox">获取对象let a = this.$refs.divBox获取父、子、兄弟节点方法var b = a.childNodes; 获取a的全部子节点 var c = a.parentNode; 获取a的父节点var d = a.nextSbiling; 获取a的下一个兄弟节点 var e = a.previ_获取子节点的路径 vue