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

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

在这里插入图片描述

一句话描述对象存储

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

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

工作原理

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

智能推荐

不依赖flash,rtsp流通过ffmpeg+nginx-http-flv转成rtmp以及http-flv流,并通过flv.js在页面播放(附带所用的工具下载)_flv.js播放rtmp-程序员宅基地

文章浏览阅读1.2w次,点赞5次,收藏16次。这里写自定义目录标题需求背景开发工具配置nginx.confffmpeg命令前端播放flv.jsflv.js播放视频VLC播放视频需求背景公司用到大华摄像头,大华提供了rtsp的视频流,目前浏览器已都不支持flash,所以转成rtmp流无法播放;转成m3u8格式虽然可以直接播放,但是延迟太高;最终决定将rtsp流通过ffmpeg+nginx-http-flv转成rtmp以及http-flv流,并通过flv.js在页面播放。开发工具FFmpeg:FFmpeg是一套可以用来记录、转换数字音频、视频,并_flv.js播放rtmp

卫星热平衡试验与太阳光模拟器-程序员宅基地

文章浏览阅读887次,点赞20次,收藏23次。地球是温暖的,相当于一个漫射器,其红外辐射的大小是纬度和经度的函数。知道这些随时间变化的环境通量,以及它们在卫星表面的分布,是计算卫星温度所需要的输入,这涉及到求解固体部分的热传导和所有暴露表面的辐射。3. 热平衡模型:卫星需要维持热平衡以保持稳定的工作状态,模型会考虑太阳辐射的变化、卫星的姿态控制和热控制系统的影响等因素,以确定卫星是否能够保持在设计的温度范围内。通过建立卫星热模型,可以预测卫星在不同条件下的热特性,指导卫星的设计和热控制策略的制定,以保证卫星的正常运行和长期稳定。

Pytorch快速入门系列---(十四)搭建卷积自编码对图像去噪_卷积自编码器-程序员宅基地

文章浏览阅读1.4k次。本篇文章介绍基于卷积层的自编码去噪网络。利用卷积层进行图像的编码和解码,是因为卷积操作在提取图像的信息上有较好的效果,而且可以对图像中隐藏的空间信息等内容进行较好的提取。该网络可用于图像去噪、分割等。_卷积自编码器

CEEMDAN分解及其可视化 python_from pyemd import ceemdan-程序员宅基地

文章浏览阅读1.4w次,点赞20次,收藏181次。CEEMDAN算法网上已经有很多了,原理自行百度吧,大多都是使用pyEMD包进行操作,本文也是使用此包:https://pypi.org/project/pyemd/本文着重讲可视化,因为其自带的可视化不怎么好看。废话不多说,上代码。from PyEMD import CEEMDAN# tips:记得设置全局变量 IImfs=[] def ceemdan_decompose(data): ceemdan = CEEMDAN() ceemdan.ceemdan(da_from pyemd import ceemdan

QQ小游戏、微信小游戏获取ip地址,并通过ip得到所在地区_微信小游戏 玩家地址查询-程序员宅基地

文章浏览阅读2.7k次,点赞2次,收藏7次。QQ小游戏、微信小游戏获取用户的ip地址,并通过ip得到所在地区我们先不说不获取ip就得到的方法,先常规操作要把合法域名加进去,或者不校验合法域名等,不然会报错先获取用户的ip,那就可以通过免费的天气API接口https://tianqiapi.com/ip/**如果是微信就改成wx,他这两个是一样的**qq...._微信小游戏 玩家地址查询

uni-app-程序员宅基地

文章浏览阅读721次,点赞22次,收藏9次。Uni-app是一个基于Vue.js开发的跨平台应用框架,它可以用来快速构建同时运行在多个平台上的应用程序,包括iOS、Android、Web等。Uni-app的核心理念是一套代码多端运行,开发者只需编写一次代码,即可发布到多个平台,极大地提高了开发效率。跨平台性: Uni-app可以将代码编译成原生的iOS、Android应用,也可以编译成H5应用,甚至是小程序,实现了一套代码多端运行。基于Vue.js: Uni-app基于Vue.js框架,开发者可以使用Vue.js熟悉的语法和开发方式来进行开发。

随便推点

ubuntu中安装petalinux提示ERROR: Failed to install Yocto SDK for aarch64的处理方式之一_error: failed to install yocto sdk for aarch64.-程序员宅基地

文章浏览阅读4.4k次。问题如下:。。。。INFO: Installing PetaLinux...*********************************************WARNING: PetaLinux installation directory: /opt/pkg/petalinux/. is not empty!*********************************..._error: failed to install yocto sdk for aarch64.

『PHP代码审计』飓风CMS1.10存在SQL注入漏洞-程序员宅基地

文章浏览阅读499次。文章目录前言一、漏洞演示二、漏洞分析三、利用四、修复五、总结完前言作者:Ho1aAs博客:https://blog.csdn.net/xxy605一、漏洞演示其他管理——TAG专题,点击提交添加tag 抓包POST /x/admin/ajax.php?xhash=599b40fe938db62cf441b4dc7d2fa3e7 HTTP/1.1Host: testcms.comContent-Length: 169Accept: application/json, text/java_飓风cms

python解zuobiaoxi方程_在学习线性代数时所探索的Python运用-程序员宅基地

文章浏览阅读119次。这是一篇伪科学文章文章仅仅是学习中的经验总结,可能存在大量技术错误本文中所有代码均在jupyerlab+python3.8.5+numpy1.19.0+sympy1.6.2版本下测试若有错误,那就这么地吧,反正没人看到。前言在学习lay的《线性代数及其应用》时,遇到了一道练习题是运用MATLAB等数据科学软件来计算的。由于最近正在学习Python,Python作为近几年数据处理和数据科学..._欠定方程组求解 python

linux错误输出重定向标准输出到文件夹,linux下的标准输出和错误输出重定向-程序员宅基地

文章浏览阅读1.5k次。如果想要将对应信息输出到某个文件中,就用对应的数字加上重定向符号“>”,会将这些信息,重新定向到指定的文件中,即可。简单说明:系统默认的stdin,stdout,stderr,都是送往屏幕,所以,当你执行命令,比如make,后,所输出的信息,都是可以在屏幕上看到的。使用方法:1.想要把make输出的全部信息,输出到某个文件中,最常见的办法就是:make xxx>build_outp..._将cat kkk的错误输出结果重定向到文件error。

goroutine并发MySQL_goroutine(Go语言并发)如何使用才更加高效?-程序员宅基地

文章浏览阅读208次。Go语言原生支持并发是被众人津津乐道的特性。goroutine 早期是 Inferno 操作系统的一个试验性特性,而现在这个特性与操作系统一起,将开发变得越来越简单。很多刚开始使用Go语言开发的人都很喜欢使用并发特性,而没有考虑并发是否真正能解决他们的问题。了解 goroutine 的生命期时再创建 goroutine在Go语言中,开发者习惯将并发内容与 goroutine 一一对应地创建 gor..._使用go语言的goroutines进行多个查询mysql的操作

IMX6ULL移植hostapd2.5使用AP模式报错解决_imx6 hostapd-程序员宅基地

文章浏览阅读159次。1.致命错误: netlink/genl/genl,h: 没有那个文件或目录2.arm-linux-gnueabihf/bin/ld: 找不到 -lnl两个报错解决_imx6 hostapd

推荐文章

热门文章

相关标签