当前位置:首页 » 服务存储 » 主流消息存储方法
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

主流消息存储方法

发布时间: 2022-03-12 10:39:19

㈠ 语义信息的存储

无论是知识库还是服务的语义描述都需要具有良好的组织和存储,以支持高效推理和服务检索发现。目前对于本体的存储方法基本有三种(李勇等,2008):

(1)纯文本,如 OWL 文件。由于 XML 的信息组织和存储方式结构复杂,而且存在冗余等,基于其上的查询检索效率通常会比较低。纯文本的方式适合本体比较小的时候,不适合本体大规模应用的情况。

(2)数据库: 是一种比较好的持久化存储方式,最大好处是便于查找,可存放大本体,查询效率高,特别在 I/O 效率上。但是数据库方式存在本体查询语言到 SQL 的转换问题,需要借助于第三方中间件或自定义实现。

(3)专门的管理工具: 比如说 OMM(Ontology Middleware Mole)支持对 RDF、OWL 的存储管理,还提供各种接口,可以使用查询语言对 RDF 或者 OWL 进行查询。综合对比这三种本体存储方式,由于关系数据库存储几十年的技术积累,以及它的海量存储特点而成为了许多研究者的首选。

5.4.3.1 本体的关系数据库存储模式

由于本体模型和关系模型的差异,目前存在多种在关系模型中存储本体的方法,其主要可以分为以下四类(陶皖等,2007; 陈光仪,2009)。

5.4.3.1.1 水平模式

该模式只在数据库中保留一张通用表,表中列为本体中的属性。整个本体库中定义了多少个属性,这张表就有多少个列,具体如图 5.28 所示。本体中的每个实例对应该表中的一条记录。这种存储模式结构简单,执行查询操作比较方便。但是该通用表包含了大量的列,而现有的数据库系统对一张表中列的个数都是有限制的,所以该模式无法存储规模较大的本体。而且表中的数据过于稀疏。由于每个实例对应关系表中的一行,如果其在某些属性列上没有值,那么必须将对应的属性值设置为空,这将导致大量空字段的出现,不仅浪费存储空间,而且增加了索引维护的代价。另外该通用表中一个实例的属性和属性值只能是一对一,而实际情况往往是一对多,因此无法存储具有这种特征的本体。随着应用中本体的进化,还需要时常更新通用表中的列,重新组织表结构,这将耗费极大的系统代价。

图 5.28 水平存储模式

5.4.3.1.2 垂直模式

垂直模式包含一张三元组表,表中的每条记录都对应一个 RDF 三元组(主语,谓词,宾语),具体如图 5.29 所示。因此这种模式下,需要将本体中的所有信息都以 RDF 三元组的形式表示出来。Protege(2002)中便是使用了这种存储模式将本体存储于数据库中。这种模式设计简单,并且结构稳定。如果本体进行了更新,只需修改表中相应的元组即可。另外,该模式通用性好,因为现有的本体模型都可以转换为 RDF 模型表示。但是这种模式的可读性较差,若对本体信息进行查询,那么设计对应的 SQL 语句比较麻烦。除此之外,由于所有信息都存放在三元组表中,导致任何一个本体信息查询都必须遍历整个数据表,特别是那些需要进行表连接的查询,使得查询效率非常低,这是这种模式最大的不足之处。

图 5.29 垂直存储模式

5.4.3.1.3 分解模式

该模式与水平模式和垂直模式的一个显着的区别是它使用了若干张表,其基本思想是将数据库进行模式分解。根据分解的对象不同,现有的采用分解模式的方法有两种。①基于类的分解模式,即为本体中的每个类都创建一张单独的表,表名为类名,表的列为类的属性,具体如图 5.30 所示。这种模式结构清晰,但是很难适应本体动态变化的情况,因为随着本体中类或者属性的变化,表结构都要随着变化。②基于属性的分解模式,即为本体中的每个属性创建一张单独的表,表名为属性名,每个表都包含两个列,分别代表RDF 三元组中的主语和宾语,具体如图 5.31 所示。在该模式中对类的隐含实例的查询代价很大,而且在现有的这两种分解模式的方法中,随着本体的变化都要不断的创建和删除表,而在数据库系统中创建和删除表的效率很低。

图 5.30 按类分解模式

图 5.31 按属性分解模式

5.4.3.1.4 混合模式

该模式通常将上述几种模式进行混合使用。例如,Pan 等(2003)提出这样一种将基于类的分解模式与基于属性的分解模式混合的存储模式,即在本体中定义一个类就为该类创建一个表(创建方法类似于基于类的分解模式),在本体中定义一个属性就为该属性创建一个表(创建方法类似于基于属性的分解模式)。然而,与基于类的分解模式不同的是,该混合模式在类对应的表中不记录相应实例的所有信息,而只记录实例的 ID。实例在各个属性上的取值则分别记录在各属性对应的表中,所以和基于属性的分解模式类似,该模式在属性对应的表中仍然需要两列: 主语和宾语。对于本体类数目不多的情况下,这种模式在简单检索的情况下,运行得很好。但是,如果本体的类比较多,这种方式就会存在一些问题,例如: 数据库无法容纳这么多表,或者效率低下。

针对上述四种模式,陈光仪(2009)从四个方面对适用场合、查询和更新效率、结构清晰以及易理解性、可扩展性四个方面对他们进行了综合对比(表 5.4):

表 5.4 不同存储模式的综合对比

(修改自陈光仪,2009)

通过上述对本体存储模式的阐述及之间的综合对比发现,本体存储模式除了应该具有尽量高的规范化程度(例如满足第三范式或 BCNF 范围等),还应该满足以下三个原则。

(1)模式结构易于理解。该原则是为了便于本体查询的实现。如果模式结构不直观,会给查询语句的设计带来困难。例如,垂直模式不满足该要求,它将所有的信息都采用三元组的形式存储在一张表中,不容易理解表中元组的含义,加重了本体查询设计的负担。

(2)模式结构稳定。即本体的变化不会引起数据库表结构的变化。因为本体是不断进化的,如果设计的模式结构会随着本体的变化而变化,数据库系统对其维护代价太大。现有的水平模式、分解模式和混合模式都不满足该要求。

(3)查询效率高。该原则是评价各种存储模式的一个重要指标。因为本体中不仅包含大量的数据,而且查询中还经常需要进行表连接。例如在现有的垂直模式和基于属性的分解模式中,那些涉及表连接的查询效率非常低。

目前在基于数据库的本体存储的实践上,一些学者开展了相关的研究工作:

燕云鹏(2007)和陈光仪(2009)提出了类似的针对于针对 OWL 的本体数据库的混合本体存储模式(图 5.32,5.33)。可以看出这种模式是以基于属性的分解模式与垂直模式的混合体,具有较好的扩展性。但是存在的问题是效率不够高,所有的类存储在一个表中,所有的实例也存储在一个表中,这种方式的检索效率比较低。另外存储实例的表(Instance,Proterty,Value)中字段 Value 必须存储许多种不同类型的数值,比如有的是文本型,而有的却是数值型,使得数据不够清晰。此外,在针对几何体这种复杂的地理对象,这种字段就比较难以存储。

图 5.32 本体的数据库混合存储模式(据燕云鹏,2007)

ebRIM(ebXML Registry Information Model)是一个主流的信息注册模型,已成为事实上的标准,得到了 OGC 等支持。OGC 已经实现了基于 ebRIM 的目录服务,并推荐其作为目录服务的实现规范。但是目前基于 ebRIM 的目录服务只支持普通的基于关键字的检索。为此,一些学者已经开始研究如何扩展 ebRIM 实现对语义信息特别是 OWL 的注册。Dogac 等(2004)提出了如图 5.34 所示的一种通过将 XML 形式存储的 OWL 文件转换为以数据库形式存储,使得查询检索更加快速,管理维护也更加方便。为了能在 ebRIM 存储复杂的地理空间信息对象,一些学者开展了基于 ebRIM 的地理扩展方面的研究工作。乐鹏(2007)在其论文中提出了两种扩展方式: ① 从类 “ExtrinsicObject” 派生了“CSWExtrinsicObject”来描述那些不是 ebRIM 自身定义的元数据对象。比如类 “Dataset”继承了 “CSWExtrinsicObject”来描述空间数据集。②对 ebRIM 已有的类别增加 “Slot”。每一个从 “RegistryObject”继承下来的类均允许添加 “Slot”。ebRIM 中的 “Service”类可以用来描述空间服务,但是已有的属性不足以描述空间网络服务。因此,通过添加“Slot”到 “Service”类中以定义从 ISO 19119 派生的属性。如图 5.35 所示为经扩展后的ebRIM 高层模型图,其中 灰 色 填 充 的 矩 形 框表示 扩 展 的对 象 类。该 模 式 与 前 面 燕 云 鹏(2007)和陈光仪(2009)提出的模式相比,本质上差别不大,也是以基于属性的分解模式与垂直模式的混合体,只不过是基于标准的 ebRIM 注册模型,并且将其中的分类系统相关的类单独以两张表存储。该模式也具有很好的扩展性,也存在同样的一些问题。

图 5.33 本体的数据库混合存储模式(据陈光仪,2009)

海洋信息网格技术与应用

续表

5.34 OWL 元素到 ebRIM 元素的映射(Dogac et al.,2004)

5.4.3.2 基于多分解策略的混合存储模式实现

对知识库以及服务语义注册信息的存储的实现上,本书在现有的研究成果的基础上,结合本体组织构成及特点等实际需求,提出了一种基于多分解策略的混合关系数据库存储模式。

该方法的指导思想是: 先按类对其中的数据专题、数据模式、处理模型等进行类的分解,然后结合属性的特性进行基于属性的分解。其中基于类的分解中,可能粒度的大小不一,可能是一个类或者具有相关或相似的一些类划分为一张表存储; 而基于属性的剖分,也并不是所有具有该属性的类以一个表存储,而可能是只针对一个类也单独组织为一张表,其具体思路如下:

图 5.35 经扩展的 ebRIM 高层模型图(据乐鹏,2007)

(1)类的分解: 因为本研究的存储模型不是为了实现一个通用的本体存储模型,而是为了实现一个服务于海洋信息服务领域的本体存储模型。海洋信息服务领域必然会牵涉到一些对象,比如对服务、模型、参数等对象,并且对这些对象的认识也基本上确定(也就是说这些对象类所具有的属性及之间的关系基本明确),所以没必要像上面几种实现方案那样因为不能预知都有哪些类,各类都有哪些属性而将所有的实例的组织按垂直方式进行存储,也没有必要有一些表(比如独立的属性表,属性的作用域和值域表等); 而有必要针对海洋信息服务领域内的这些类的信息内容独立出一些表: 对于海洋专题,地理名实体、处理模型、数据模式等海洋信息检索发现中常用的对象,则有必要进行分开存储,否则必然使得结构不清晰,且检索查询效率低。

(2)对于专题、空间形态以及模型功效等只是简单的分类系统,所具有的属性少,而且今后存在派生新的种类的可能,因此必须具备一定的扩展性。针对这类数据。它们的存储方式是(ClassID,ParentClassID,ClassType),其中 ClassType 标注本体类是属于专题(比如 “海流”)或者其他。

(3)对于取值不唯一的属性,且大部分类或实例都具有的属性,则采用基于属性的分解模式。比如对于别名属性(hasAliasName),有可能一个类实例具有多个别名,这种情况下,则采取基于属性的组织方式。该表的形式是:(OntologyID,AliasName),其中OntologyID 可以是本体类的 ID,也可以是本体实例的 ID,还可以是本体属性的 ID,因为类、实例和属性都可以有别名。

(4)对于复杂的属性,采取大二进制存储的方式。比如对于地名实例的空间覆盖范围,则不考虑其实际内部是包含多少个组成部分,统一按一个 shape 存储在数据库中。当然这里借助了 ArcGIS 的 GDB 的 FeatureClass 矢量数据模型,并对于不同空间形态的则采用了多张表(点状地名类、线状地名类、面状地名类),其组织方式是(GeoNameObjec-tID,shape)。同样,对于模型本体中的内部流程本体,也采用了大二进制方式存储,将整个流程 XML 描述文件,作为一个整体存放于字段中,其大体组织方式为(ModelID,FlowXML)。

(5)本研究采用 ArcGIS 的 GeoDatabase 作为存储模型。本体类(ontClass)的存储结构如图 5.36 所示,数据库的总体组织结构如图 5.37 所示。

图 5.36 本体类(onClass)的存储结构

㈡ 2020-06-29:本地消息使用什么东西存储

很多方式,根据要求不同可以选择不同方式
比如文本,单机数据库等等
祝好运,望采纳。

㈢ 目前主要三种数据存储方式

三种存储方式:DAS、SAN、NAS
三种存储类型:块存储、文件存储、对象存储

块存储和文件存储是我们比较熟悉的两种主流的存储类型,而对象存储(Object-based Storage)是一种新的网络存储架构,基于对象存储技术的设备就是对象存储设备(Object-based Storage Device)简称OSD。

本质是一样的,底层都是块存储,只是在对外接口上表现不一致,分别应用于不同的业务场景。

分布式存储的应用场景相对于其存储接口,现在流行分为三种:

对象存储: 也就是通常意义的键值存储,其接口就是简单的GET、PUT、DEL和其他扩展,如七牛、又拍、Swift、S3

块存储: 这种接口通常以QEMU Driver或者Kernel Mole的方式存在,这种接口需要实现Linux的Block Device的接口或者QEMU提供的Block Driver接口,如Sheepdog,AWS的EBS,青云的云硬盘和阿里云的盘古系统,还有Ceph的RBD(RBD是Ceph面向块存储的接口)

文件存储: 通常意义是支持POSIX接口,它跟传统的文件系统如Ext4是一个类型的,但区别在于分布式存储提供了并行化的能力,如Ceph的CephFS(CephFS是Ceph面向文件存储的接口),但是有时候又会把GFS,HDFS这种非POSIX接口的类文件存储接口归入此类。

㈣ 目前有哪些主流存储技术

1、直接附加存储(DAS)

特点是:硬件的堆叠,存储操作依赖于服务器,不带有存储操作系统。应用环境特殊。数据处理和传输能力较低;服务器出现宕机时,波及到存储数据,使其无法使用。

2、网络附加存储(NAS)

通过网络接口与网络直接相连,访问。存储设备类似于专用的文件服务器,提供文件系统功能,降低设备的成本。优化了系统硬软件体系结构。以数据为中心,存储设备与服务器分离,其存储设备在功能上完全独立。支持多种TCPIP网络协议。

3、存储区域网络SAN

通过专用交换机将磁盘阵列与服务器连接。采用块(block)级别存储最大特点是将存储设备从做以太网中分离了出来,成为独立的存储区域网络SAN的系统结构。

(4)主流消息存储方法扩展阅读:

有效利用网络存储技术是任何数据存储管理策略的重要组成部分,仅仅依靠硬盘、JBOD和其它类型的本地存储是不足以保护关键业务数据的完整性的,网络存储在这个时候真正显示出巨大的威力,它不仅可以容纳由服务器产生的业务数据,还可以容纳由PC端产生的数据,并为数据提供良好的保护。

许多网络存储厂商都提供了合作伙伴计划,包括惠普、EMC、戴尔、IBM和NetApp等公司,但最重要的是要了解组成存储网络的每一种技术,如NAS网关,光纤通道SAN,RAID阵列等。

㈤ 目前有哪些主流存储技术

存储区域网络 (Storage Area Network, SAN)是一种连接外接存储设备和服务器的架构。人们采用包括光纤通道技术、磁盘阵列、磁带柜、光盘柜(en)的各种技术进行实现。该架构的特点是,连接到服务器的存储设备,将被操作系统视为直接连接的存储设备(英语:Direct-attached_storage)。尽管SAN的复杂度和价格已经下降,但目前在大型企业级存储方案(英语:Enterprise_storage)以外还应用不甚广泛。
与SAN相比较,网络储存设备(NAS, Network Attached Storage)使用的是基于文件的通信协议,例如NFS或SMB/CIFS通信协议就被明确滴定义为远程存储设备,计算机请求访问的是抽象文件的一段内容,而非对磁盘进行的块设备操作。

㈥ 古代 近代 现代的存储信息方法有哪些

古代,将信息以书写、印刷等形式记录在石头~竹简~帛~纸上,形成书。
近代,以书写、印刷等形式记录在纸上。照相录像技术发明后,就可以记录画面信息了。
现代,以打印和数据硬盘或云服务存储为主。

(6)主流消息存储方法扩展阅读:

存储介质

纸张

优点:存量大,体积小,便宜,永久保存性好,并有不易涂改性。存数字、文字和图像一样容易。

缺点:传送信息慢,检索起来不方便

胶卷

优点:存储密度大。查询容易

缺点:阅读时必须通过接口设备,不方便,价格昂贵。

计算机

优点:存取速度极快,存储的数据量大

信息存储应当决定,什么信息存在什么介质行比较合适。总的来说凭证文件应当用纸介质存储;业务文件用纸或磁带存储;而主文件,如企业中企业结构;人事方面的档案材料;设备或材料的库存账目,应当存于磁盘,以便联机检索和查询。

参考链接:网络_信息储存


㈦ 消息怎么存储在本地

您好,钉钉聊天记录存储在云服务器中,有效期360天。聊天界面一直往上加载,看到的消息记录即表示该聊天记录已经缓存在本地了哦。

㈧ 队列的两种存储方式对比

队列的两种存储方式分为消息投递实时性:使用短轮询方式,实时性取决于轮询间隔时间:使用长轮询,同写入实时性一致,消息的写入延时通常在几个毫秒。总结:短轮询:周期性的向服务提供方发起请求,获取数据优点:前后端程序编写比较容易。缺点:请求中有大半是无用,难于维护,浪费带宽和服务器资源;响应的结果没有顺序(因为是异步请求,当发送的请求没有返回结果的时候,后面的请求又被发送。而此时如果后面的请求比前面的请 求要先返回结果,那么当前面的请求返回结果数据时已经是过时无效的数据了)。长轮询:客户端向服务器发送请求,服务器接到请求后保持住连接,直到有新消息才返回响应信息并关闭连接,客户端处理完响应信息后再向服务器发送新的请求。优点:在无消息的情况下不会频繁的请求,耗费资源小。缺点:服务器hold连接会消耗资源,难于管理维护。消费失败重试Kafka:消费失败不支持重试RocketMQ:消费失败支持定时重试,每次重试间隔时间顺延总结:kafka也可以通过编写代码来实现写入和消费失败的重试机制,这种要求需要用户来编写代码实现,kafka只是提供了这种方式,但并不是他推荐的使用方式,他的设计模式上只是兼顾了这种情况,并不是重点。RocketMQ在设计上就考虑了这种情况,在提供的官方api中提供了重试的设置,用户可以选择多种模式的重试机制,以及自定义的重试逻辑,简单场景下用户只用设置一下参数即可。关于需要重试的场景例如充值类应用,当前时刻调用运营商网关,充值失败,可能是对方压力过多,稍后在调用就会成功,如支付宝到银行扣款也是类似需求。这里的重试需要可靠的重试,即失败重试的消息不因为Consumer宕机导致丢失。

㈨ 通知消息类如何存储比较科学

贮存——过多强调放置、存放,隐含了“可能长期不动”的意思
储存——更多是保存,流动的暂存,不做长期保存计划

简单的比较:
“贮存、储存、寄存”三者的流动速度越来越快,保存时间越来越短。