结构化/非结构化数据的介绍&常用的结构化对象存储服务

一. MinIO的简介:

1.1  Minlo 介绍:

Minlo 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几 kb到最大5T不等。

MinIo是一个非常轻量的服务,可以很简单的和其他应用的结合,类似 NodeJS, Redis 或者 MySQL。

官网:https://min.io/ http://www.minio.org.cn/

对象存储服务 (Obiect Storage Servie,OSS) 是一种海量、安全、低成本、高可靠的云存储服务,适合存放任意类型的文件。容量和处理能力弹性扩展,多种存储类型供选择,全面优化存储成本。
对于中小型企业,如果不选择存诸上云,那么 Minio 是个不错的选择,麻雀虽小,五脏俱全。当然 Minio 除了直接作为对象存储使用,还可以作为云上对象存储服务的网关层,无缝对接到 Amazon S3、MicroSoft Azure。

在中国: 阿里巴巴、腾讯、百度、中国联通、华为、中国移动等等9000多家企业也都在使用MinlO产品。

1.2  Minio优点
  1. 部署简单: 一个single二进制文件即是一切,还可支持各种平台;
  2. 支持海量存储:可按zone扩展(原zone不受任何影响),支持单个对象最大5TB;
  3. 兼容性强:兼容Amazon S3接口充分考虑开发人员的需求和体验;
  4. 低冗余且磁盘损坏高容忍:标准且最高的数据冗余系数为2(即存储一个1M的数据对象,实际占用磁盘空间为2M)。但在任意n/2块disk损坏的情况下依然可以读出数据(n为一个纠删码集合(ErasureCoding Set)中的disk数量)。并且这种损坏恢复是基于单个对象的,而不是基于整个存储卷的,读写性能优异
1.3  MinIO的基础概念


Object:存储到 Minio 的基本对象,如文件、字节流,Anything…

Bucket:用来存储 Object 的逻辑空间。每个 Bucket 之间的数据是相互隔离的(起到隔离作用)。对于客户端而言,就相当于一个存放文件的顶层文件夹。

Drive:即存储数据的磁盘,(文件上传后minIo会在自身所在的服务器的磁盘上面创建相应名称的Bucket‘目录’,并将文件存放在该相应的目录下面)在 MinIO 启动时,以参 数的方式传入。Minio 中所有的对象数据都会存储在 Drive 里。

Set :即一组 Drive 的集合,分布式部署根据集群规模自动划分一个或多个 Set ,每个 Set 中的
Drive 分布在不同位置。一个对象存储在一个 Set 上。(For example: {1…64} is divided into 4 sets each of size 16.)

总结下来即:

  • 一个对象存储在一个Set上
  • 一个集群划分为多个Set
  • 一个Set包含的Drive数量是固定的,默认由系统根据集群规模自动计算得出
  • 一个SET中的Drive尽可能分布在不同的节点上

二. S3的简介

2.1 S3 是什么
  • Amazon Simple Storage Service(简称S3),是亚马逊AWS服务在2006年第一个正式对外推出的云计算服务
  • Amazon S3 是互联网存储解决方案。该服务旨在降低开发人员进行网络规模级计算的难度。
  • Amazon S3 提供了一个简单 Web 服务接口,可用于随时在 Web 上的任何位置存储和检索任何数量的数据。此服务让所有开发人员都能访问同一个具备高扩展性、可靠性、安全性和快速价廉的数据存储基础设施, Amazon 用它来运行其全球的网站网络。此服务旨在为开发人员带来最大化的规模效益。
2.2 S3的特点
  • 对象存储:数据(包括文件/视频/图片)以及相关的源数据都是以对象(objects)的方式来存储的;不能以S3来当做操作系统的文件系统;对象(object)最大支持5TB
  • 高耐用:Object 提供11个9,99.999999999%的持久性
  • 意味着每一亿个object才会丢失一个object
  • S3存储的对象会在同一个Region的多个AZ中保存多份拷贝
  • 高可用:提供99.99%的可用性
  • 高扩展:提供无限的存储空间;基于WEB;上传和下载数据基于HTTP/HTTPS请求
  • 安全性:可以选择多种方式来加密数据
  • 计费模式:Pay as you go - Pay only for what you use
2.3  S3 的作用
  • 1.备份
  • 2.存储内容
  • 3.大数据分析
  • 4.挂载静态网站
  • 5.灾难恢复
2.4  桶 Bucket
  • Bucket就是用来存储对象(object)的一个集合

  • Bucket和Object都是资源(resources), 也就是aws能操作的一个实体(entity)
    可以容纳无限的Object

  • 默认一个账户可以创建100个bucket,这个上限是软性限制,可以通过向AWS提交case来提高上限

  • Bucket需要归属于某个Region,不是Global的。虽然S3的web console页面是Global的。

  • Bucket由附属的子资源(subresources)来定义bucket的配置

2.5  S3 命名空间(Namespace)
S3需要唯一的命名空间
  • Bucket名字必须在AWS的整个S3生态中是唯一的,而不仅仅是只在Region中唯一。
  • Bucket名字必须要全局唯一的原因就是因为Bucket名字也会是域名的一部分
区域(Region)
  • Region就是bucket实际存放的位置
  • 存放在某个Region的Object永远不会离开这个Region,除非你显式地将它传输出去
    选取Bucket的Region的时候,需要考虑延迟,费用等因素。因为建造和运营成本不同,AWS各个Region的S3费用并不相同。而一般来说,选择最近的Region,延迟就越小。
2.6  对象Object
  • S3是一个可以存储近似无限数量Object的Key-Value存储系统
  • Object包括如下元素

Key - object的名字
Value - 存储的数据,大小范围是0~5TB Version ID
当versioning功能开启后,每个Object都会拥有一个Version ID,用来区分有相同Key的不同的Object Bucket

  • Key + Version ID 三要素唯一定义了S3中的一个Object

Metadata - 用来存储Object其他相关信息的Name-value键值对 Subresources - 定义了一个Object的额外的资源
Access Control Information - 控制每个对象的访问策略

三. MinIO和S3的使用

Minio 提供对象存储服务,兼容了 AWS S3 存储协议,用于非结构化的数据存。非结构化对象,比如图像,音、视频,日志文件,备份镜像…等等管理不方便,不定长,大小变化大、类型多,云端的访问复杂,minio就是来解决这种场景的。非结构化的文件从数KB到5TB都能很好的支持。开源并且用多种开发语言,有web操作界面,我们可以用它来搭建兼容S3协议的存储云服务。

根据上面的MinIO和S3的介绍,两者均为分布式存储服务对象,那两者的区别是什么?

Minio 和 Amazon S3 是两个不同的对象存储解决方案,通常情况下它们不需要一起使用。然而,在某些情况下,Minio 可能被用作兼容 Amazon S3 的替代品。

Minio 是一个开源的对象存储服务器,它提供了 Amazon S3 兼容的 API 接口,因此可以被用作本地或私有云环境下的对象存储解决方案。因为 Minio API 与 Amazon S3 API 兼容,所以如果您希望部署一个类似 Amazon S3 的对象存储,但在本地或私有云环境下运行,那么 Minio 是一个很好的选择。

在某些情况下,您可能希望在私有云环境中使用 Minio 作为对象存储,同时与一些集成了 Amazon S3 API 的应用程序或工具进行交互。这时,Minio 可以作为 Amazon S3 的替代方案,用于与这些应用程序或工具进行集成,同时在本地或私有云环境中提供对象存储服务。

在这种情况下,Minio 和 Amazon S3 可能会同时使用,但通常情况下,它们不需要一起使用,而是作为不同的对象存储解决方案,用于不同的环境和场景。

存储策略方面,Minio 是一个开源的对象存储服务器,它允许用户在本地或私有云环境中构建存储解决方案,提供了与 Amazon S3 兼容的 API 接口。用户可以根据自己的需求来配置和管理存储策略,拥有更大的灵活性和定制性。而 Amazon S3 则是由亚马逊提供的托管式对象存储服务,用户需要按照亚马逊的存储策略和管理规定来进行使用。

在定价模型方面,Minio 作为一个基于开源软件的对象存储解决方案,通常是免费提供的。用户只需承担实际的存储和使用成本,而不需要支付额外的软件许可费用。而 Amazon S3 则按照存储的数据量、数据传输量、请求次数等因素来收取费用,费用是根据具体的使用情况以及所选择的存储类别而定的。

在选择对象存储解决方案时,应该考虑这些差异,并根据自身的需求和预算来进行评估和选择。如果您需要在本地或私有云环境中构建对象存储解决方案,并且需要更大的定制性和灵活性,那么 Minio 可能是一个更好的选择。而如果您需要一个托管式的对象存储服务,并且愿意按照具体的使用情况来支付费用,那么 Amazon S3 可能更适合您的需求。最终选择应该基于您的具体情况和优先考虑的因素,如数据安全性、可用性、成本等。

那什么又叫做对象式存储呢?

对象存储服务器是一种用于存储和管理大量非结构化数据(如文件、图片、视频、日志等)的服务器。与传统的文件存储系统不同,对象存储服务器使用一种基于键值对的存储方式,每个存储对象都有一个唯一的标识符(键)和对应的数据内容(值)。

对象存储服务器通常提供高度可扩展、高可用性和持久性的存储服务,能够支持大规模的数据存储和访问需求。

对象存储服务器的设计旨在解决传统文件系统的一些缺点,如文件系统层次结构不易扩展、文件夹和文件的层次关系较为复杂、对大型文件的管理能力较弱等。相比之下,对象存储服务器更适合于存储海量的非结构化数据,而且提供了更简单、高效的数据访问方式。

一些知名的对象存储服务器包括 Amazon S3、Microsoft Azure Blob Storage、Google Cloud Storage、MinIO 等。这些对象存储服务器通常以 API 接口的方式提供服务,使得开发人员可以方便地通过编程来管理和访问存储对象,同时通常还提供了数据备份、灾难恢复、数据加密等功能。对象存储服务器在云计算、大数据、多媒体存储等领域得到了广泛的应用。

对象存储服务器是一种用于存储和管理大量非结构化数据,那什么是非结构化数据?什么又是结构化数据呢?

结构化数据和非结构化数据是两种常见的数据类型,它们在数据存储和处理中具有不同的特点和特性。

  1. 结构化数据:
    结构化数据指的是具有固定格式和结构的数据,通常以表格形式存在,可以方便地存储在数据库中,并可以通过行和列的方式进行组织和管理。结构化数据具有明确定义的数据模式和关系,字段和值之间的关系清晰可见。典型的结构化数据包括电话号码、日期、价格、姓名等可以用标准化格式表示的数据。

  2. 非结构化数据:
    非结构化数据是指没有固定格式或结构的数据,不容易以表格形式进行组织和管理。这类数据的形式多种多样,例如文本文件、音频文件、视频文件、图像文件、电子邮件、社交媒体帖子、日志文件等。非结构化数据通常难以通过传统的数据库系统进行存储和处理,它们的特点是多变、不规则、体积大,需要专门的存储和处理技术。

要注意的是,还有一种介于结构化数据和非结构化数据之间的数据类型,叫做半结构化数据。半结构化数据具有一定的结构,但是结构不是严格意义上的表格形式,例如 XML、JSON 数据格式就属于半结构化数据。

综上所述,结构化数据和非结构化数据在数据管理和处理中有着不同的特性和处理方式,需要根据具体的数据类型选择合适的技术和工具进行存储和处理。

  • 20
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值