首页 > 其他分享 >对象存储服务的元数据检索特性

对象存储服务的元数据检索特性

时间:2024-04-27 22:14:24浏览次数:17  
标签:检索 存储 数据检索 特性 对象 amz Elasticsearch

依据AWS S3Amazon S3 REST API Introduction,当前提供的对象列举接口,如下:

上述接口仅支持使用前缀、对象版本作为检索条件,在业务交付时使用非常不方便。
为提供类似Everything的检索能力,可以参考ECS Data Access Guide 3.5.0.2中描述的Metadata Search特性,设计相应的实现方案。

对象支持的属性

依据AWS S3官方文档,对象支持的元数据,比如:

  • HTTP基本属性
    • Cache-Control
    • Content-Disposition
    • Content-Length
    • Content-Type
    • Last-Modified
    • Content-Encoding
    • Content-Language
    • Expires
  • 对象的基本属性
    • 对象名称
    • 存储桶
    • 桶的归属用户
  • 用户自定义元数据
    • x-amz-meta-*
  • 对象的tagging
    • x-amz-tagging
  • 多版本
    • x-amz-version-id
    • x-amz-delete-marker
  • 分级
    • x-amz-storage-class
    • x-amz-restore
  • WORM
    • x-amz-object-lock-mode
    • x-amz-object-lock-retain-until-date
    • x-amz-object-lock-legal-hold
  • 生命周期
    • x-amz-expiration

依据客户业务的特点,可以选取一部分字段,作为元数据检索支持的检索条件。

技术方案

为支持元数据的存储和检索,可使用业界常用的全文本检索产品Elasticsearch
基于Elasticsearch提供的检索API,可以提供如下能力:

  • 精确查询,即==
  • 范围查询,即>/>=/</<=
  • 丰富的数据类型,比如:
    • 数值
    • 字符串
    • 时间
  • 排序规则
  • 分页
  • 总数量

提取元数据的方案,可选项比如:

  • 方案一,实时方案,即在对象写入时,将相应的元数据记录下来。
  • 方案二,离线方案,基于扫描。采用定时扫描的方式,扫描桶内的对象,将各对象的元数据记录下来。
  • 方案三,离线方案,基于快照。假如对象存储服务的底层支持快照,则可以使用定时打快照、比较快照之间的差异。

考虑到Elasticsearch的写入性能、并发度和对象存储服务对客户提供的性能规格存在一定的差异,因此可能需要考虑在对象存储服务和Elasticsearch中间增加元数据的缓冲层,比如使用消息队列如Apache Kafka,避免Elasticsearch集群在大规模并发写操作时出现运行不稳定的现象。

元数据检索的请求、响应消息的定义方式,可以依据客户的诉求、本团队的技能来选择,比如JSON、XML等。

技术规格

规划方案时,需要定义元数据检索服务的技术规格,方便和客户交流。

  • 检索请求的并发度。
  • 检索请求的响应时延。
  • 支持检索的字段。
  • 检索请求支持的操作,比如:
    • 精确查询
    • 范围查询
    • 模糊查询
  • 排序
  • 分页
  • Elasticsearch集群的节点的数量。
  • Elasticsearch集群中节点占用的资源,比如:
    • CPU
    • 内存
    • 数据盘的类型
    • 数据盘的容量

注意事项

使用Elasticsearch存储对象的元数据时,关键的注意事项如下:

  • 元数据检索服务支持的数据量的规模。
  • 单个对象的元数据,平均占用的存储空间。
  • 对象存储的IOPS的规格。
  • 索引的创建方式,比如按桶创建,或者所有桶的元数据均放在同一个索引中。
  • 索引的shard的数量。
  • Elasticsearch集群的节点的数量。
  • Elasticsearch集群中节点占用的资源,比如:
    • CPU
    • 内存
    • 数据盘的类型
    • 数据盘的容量
  • Elasticsearch集群的建设思路,比如:
    • 一次建设到位。
    • 逐步扩容。考虑到索引的shard数量不支持变更,需要设计搬迁数据的方案。

参考资料

标签:检索,存储,数据检索,特性,对象,amz,Elasticsearch
From: https://www.cnblogs.com/jackieathome/p/18162645

相关文章

  • 对象存储服务中对象业务的非标接口
    本文中讨论的对象存储服务及接口,主要和AWSS3对标。AWSS3提供的对象存储业务,与传统的POSIX规范相比,舍弃了很多特性,比如:文件类型硬链接软链接目录文件相关的操作追加写随机写截断修改名称目录相关的操作创建目录修改名称删除目录元数据时间crtime即......
  • 微服务想缓存一些数据,不希望重复调用。java SoftReference软引用存储缓存
    背景:微服务我们要调用字典数据,但是很多都是要重复调用的,没有缓存,我为了设置一个应用的缓存,并且可以定时清理,更新 首先定义两个静态数据,。一个软连接缓存,一个定时清理线程privatestaticSoftReference<Map<String,Map<String,DictionaryVo>>>plmDicMapCache=newSoftR......
  • 37.Android数据存储再整理
    这次主要是对SD卡外部存储和SharedPreferences存储的补充说明还是以qq案例来说首先外部存储存储的位置为/storage/emulated/0目录下具体为你定义的地方这里也有个小坑还有就是不需要使用内部存储的openFileOutput方法和openFileInput方法首先要在清单文件里申请SD卡写读......
  • Java面向对象03——三大特性之继承
    一、继承(extends)1.1、继承是什么继承就是Java允许我们用extends关键字,让一个类与另一个类建立起一种父子关系;被继承的类称为父类(基类、超类),继承父类的类都称为子类(派生类) ,当子类继承父类后,就可以直接使用父类公共的属性和方法了当子类继承父类后,就可以直接使用父类公共的......
  • 利用python将沪深300股票历史数据存储在sqlite3
    一、环境准备1、python3中自带了sqlite3参考https://www.runoob.com/sqlite/sqlite-tutorial.html2、在sqlite中建表CREATETABLE[stock]([id]NVARCHAR(48),[name]NVARCHAR(24), [code]NVARCHAR(24),[date]INTEGERNOTNULL,[open]REAL,[close]......
  • day25-索引和函数及存储过程
    1.索引在数据库中索引最核心的作用是:加速查找。例如:在含有300w条数据的表中查询,无索引需要700秒,而利用索引可能仅需1秒。mysql>select*frombigwherepassword="81f98021-6927-433a-8f0d-0f5ac274f96e";+----+---------+---------------+------------------------------......
  • DataGear 5.0.0 新特性之dgMap图表选项
    DataGear企业版1.1.0已发布!http://datagear.tech/pro/DataGear在新发布的5.0.0版本中,重构了地图类图表,新增了dgMap图表选项,可以更方便灵活地设置图表地图。在5.0.0版本之前,由于没有图表地图选项,无法在新建图表时设置地图,只能在将图表加入看板后,通过看板提供的dg-chart-m......
  • docker存储配置与管理
    一、Docker存储概念1、容器本地存储与Docke存储驱动容器本地存储:每个容器都被自动分配了内部存储,即容器本地存储。采用的是联合文件系统。通过存储驱动进行管理。容器本地存储空间:分层结构构成,由一个可写容器层和若干只读的镜像层组成。联合文件系统:Docker的一种底层技术,由存......
  • 服务器维护、存储故障处理、网络综合布线、存储故障处理、POWER 小型机故障处理(全国各
    ......
  • MFT(Master File Table,主文件表)是Windows操作系统中NTFS(New Technology File System,新
    MFT(MasterFileTable,主文件表)是Windows操作系统中NTFS(NewTechnologyFileSystem,新技术文件系统)的关键组成部分,用于存储文件和目录的元数据信息。MFT类似于Unix和Linux系统中的inode,但在实现上有所不同。MFT包含以下信息:文件和目录的属性:包括权限、所有者、创建时间、修......