一种基于关联数据的存储方法、装置、介质及设备与流程

文档序号:16667673发布日期:2019-01-18 23:22阅读:189来源:国知局
本发明涉及数据存储
技术领域
:,具体涉及一种基于关联数据的存储方法、装置、介质及设备。
背景技术
::在信息的存储上,现在的信息平台通常以一个独立的信息对象进行存储,以描述信息为主,不存在明确的时间刻度。以往信息的存储多采用关系型数据管理系统,无法高效地进行变长、异构及海量的信息存储,也无法高效地存储信息对象之间的关联信息,比如相互影响、相互作用以及它们的演进过程。在信息的利用上,呈现出孤立化和碎片化。人们在进行信息检索时,往往需要进行综合分析,如果只是一个一个条目地检索,然后再由检索结果进行综合地分析整理并得出结论,这种方式显然是乏味和低效的。目前的信息检索方式,检索的结果还是一堆描述信息,无法将信息对象的发生、发展、结局等演进过程直观形象地展示出来,也无法获取与之关联的其它对象的信息及它们之间的相互联系。技术实现要素:针对现有技术中的缺陷,本发明提供一种基于关联数据的存储方法、装置、介质及设备,能够解决网络中信息对象繁杂、散乱及无序状态的问题,实现信息对象随时间发展变化并且能呈现出相互联系的展示。第一方面,本发明提供了一种基于关联数据的存储方法,包括:获取需要存储的信息对象的基本信息;根据所述基本信息,建立所述信息对象的存储列表;所述存储列表包括:对象表、事件列表、关联表和关联实体表;按照所述存储列表存储所述信息对象的基本信息。可选的,所述对象表,包括:原始信息列蔟;所述原始信息列蔟,包括:原始信息和原始描述属性组。可选的,所述原始描述属性组支持动态扩展。可选的,所述事件列表,包括:事件列表蔟;所述事件列表蔟以所述信息对象的关键时间节点为标识,记录所述信息对象在所述关键时间节点的信息。可选的,所述关联表,包括:指入关联列蔟和指出关联列蔟;所述指入关联列蔟和所述指出关联列簇中的信息由所述信息对象的实体id和时间节点唯一标注,由con指针确定联系线。可选的,所述关联实体表,包括:关联属性列蔟;所述关联属性列蔟,包括:关联类型和关联描述。可选的,所述根据所述基本信息,建立所述信息对象的存储列表,包括:基于hbase数据库,根据所述基本信息,建立所述信息对象的存储列表。第二方面,本发明提供一种基于关联数据的存储装置,包括:信息获取模块,用于获取需要存储的信息对象的基本信息;列表建立模块,用于根据所述基本信息,建立所述信息对象的存储列表;所述存储列表包括:对象表、事件列表、关联表和关联实体表;信息存储模块,用于按照所述存储列表存储所述信息对象的基本信息。第三方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现第一方面中的一种基于关联数据的存储方法。第四方面,本发明提供一种计算机设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现第一方面中的一种基于关联数据的存储方法。本发明提供了一种基于关联数据的存储方法,通过建立信息对象的多种存储列表,并按存储列表存储信息对象的基本信息,能够解决网络中信息对象繁杂、散乱及无序状态的问题,实现信息对象随时间发展变化和相互联系的展示。本发明提供的一种基于关联数据的存储装置,与上述一种基于关联数据的存储方法出于相同的发明构思,具有相同的有益效果。本发明提供的一种计算机可读存储介质和一种计算机设备,与上述一种基于关联数据的存储方法出于相同的发明构思,具有相同的有益效果。附图说明为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。图1为本发明提供的一种基于关联数据的存储方法的流程图;图2为本发明提供的一种信息对象的演进实例;图3为本发明提供的一种对象间的关联实例;图4为本发明提供的一种hadoop集群拓扑图;图5为本发明提供的一种基于关联数据的存储装置。具体实施方式下面将结合附图对本发明技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本发明的技术方案,因此只是作为示例,而不能以此来限制本发明的保护范围。需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本发明所属领域技术人员所理解的通常意义。本发明提供了一种基于关联数据的存储方法、装置、介质及设备。下面结合附图对本发明的实施例进行说明。请参考图1,图1为本发明具体实施例提供的一种基于关联数据的存储方法的流程图,本实施例提供的一种基于关联数据的存储方法,包括:步骤s101:获取需要存储的信息对象的基本信息。步骤s102:根据所述基本信息,建立所述信息对象的存储列表;所述存储列表包括:对象表、事件列表、关联表和关联实体表。步骤s103:按照所述存储列表存储所述信息对象的基本信息。其中,信息对象是指以信息化形式存在的,可感知或可想象到的任何事物,包括具体和抽象的概念,如人物、事件、建筑、工程、树木、房屋,物价、民意等。其中,基本信息是指与信息对象有关的一些信息,可以是事件、物体、意义等。信息对象的基本信息大部分是随时间演进的,同时也包含了不同相关的信息对象之间的相互关联及相互作用,现有技术的存储方式往往不能体现出信息对象之间的相互关联和相互作用,本发明通过建立信息对象的多种存储列表,并按存储列表存储信息对象的基本信息,能够解决网络中信息对象繁杂、散乱及无序状态的问题,实现信息对象随时间发展变化和相互联系的展示。在本发明中,对象表可以包括原始信息列蔟;原始信息列蔟包括:原始信息和原始描述属性组。如表1所示。原始信息是指信息对象在中文原始信息库中的原始文本信息。原始信息是通过抓取获得网络上的段落描述文字。原始描述属性组为该信息对象的一些关键属性值,例如,国籍、毕业学校等。其中,原始描述属性组在数量上支持动态扩展。表1:对象表其中,rowkey表示信息对象,rtxt:rtxt1是信息对象objid-1的原始信息;rtxt:rtxt2是信息对象objid-2的原始信息。attr1:value1是信息对象objid-1的关键属性值,信息对象objid-1的关键属性值可以有多个;attrm:valuem是信息对象objid-2的关键属性值,信息对象objid-2的关键属性值也可以为多个。在数据访问过程中,可以通过主键查询获取信息对象的原始信息;可以通过主键查询全部的原始描述属性组;可以通过主键与属性名联合查询得到属性对应的值。在本发明中,事件列表可以包括:事件列表蔟;所述事件列表蔟以所述信息对象的关键时间节点为标识,记录所述信息对象在所述关键时间节点的信息。事件列表蔟包含信息对象的关键时间节点信息,包含事件发生的地点、描述、结果与影响等要素信息。其中,事件个数支持动态扩展。事件列表蔟如表2所示。表2:事件列表其中,ts为具有唯一描述的关键时间节点,eventi为该节点事件的描述对象的序列化字节数组,包含发生地点、描述、结果与影响等要素信息;ts1:event1为信息对象objid-1在ts1时间点的第一个事件。在数据访问过程中,可以通过主键与时间点联合查询得到事件的详尽信息,可以通过主键查询获取信息对象完整的事件列表,进而以时间为主线得到实体的整个演进过程。在本发明中,关联表可以包括:指入关联列蔟和指出关联列蔟;所述指入关联列蔟和所述指出关联列簇中的信息由所述信息对象的实体id和时间节点唯一标注,由con指针确定联系线。关联表如表3所示。例如,假定(objid_1,ts1)为事件a,(objid_2,ts2)为事件b,则b→a这样一条联系线如表3所示。表3:关联表其中,inconn表示指入关联列蔟,outconn表示指出关联列蔟。objid-2表示实体id,ts表示时间节点,con表示联系线,利用inconn中的con1识别outconn中的con1,进而识别联系线。其中,关联个数支持动态扩展。一个指入事件可以有多个指出事件;多个指入事件也可以有一个指出事件,这都在本发明的保护范围内。在数据访问过程中,可以通过主键查询得到某个实体的某个事件的全部关联实体指针,进而得到关联实体的详尽信息;可以通过主键前缀过滤得到某个实体的全部外在联系事件,进而在实体演进的基础上得到实体的关联网络。在本发明中,关联实体表可以包括:关联属性列蔟;所述关联属性列蔟可以包括:关联类型和关联描述。关联实体表用于存储事件之间联系的详细信息。其中,关联类型是指关联的种类。比如,因果、交汇等,分为有向和无向。关联描述是指这些关联的具体信息描述。比如,朱祁镇和于谦两实体以1457年的夺门之变等事件关联,即事件关系类型。而关联描述则可以存储这种关联的具体内容描述。关联实体表如表4所示。表4:关联实体表其中,con_type1表示关联con1的关联类型;con_dsp1表示关联con1的关联描述。在数据访问过程中,通过关联表中的指针指向该表的主键进行访问,可以通过主键查询得到某个关联实体的全部具体内容。示例1:朱祁镇:1427年登基;1449年土木堡之变被俘,明朝由盛转衰;1457年,夺门之变复位,枉杀忠臣,改年号天顺。其演进实例如图2所示。于谦:1421年考取辛丑进士;1449,面对也先大举进犯,明英宗被擒,主战拒南迁,京师保卫战取得胜利,瓦剌送归明英宗;1457年,被石亨等人迫害。朱祁镇和于谦两实体关联实例如图3所示。其中,1449年于谦的京师保卫战与1457年朱祁镇的夺门之变关联;1457年朱祁镇的夺门之变与1457年于谦的迫害入狱关联。在本发明中,根据基本信息,建立信息对象的存储列表,包括:基于hbase数据库,根据所述基本信息,建立所述信息对象的存储列表。hbase(数据库)运行在hdfs(分布式文件系统)之上,因此使它具有高度可扩展性,并支持hadoopmapreduce程序设计模型。hbase支持多种访问方式:通过行键进行随机访问;通过map-reduce脱机或批访问。其具有以下优点:1.列可以动态增加,并且列为空就不存储数据,节省存储空间;2.hbase自动切分数据,使得数据存储自动具有水平scalability(可测量性);3.hbase可以提供高并发读写操作的支持,bst索引使随意读写趋向于顺序读写,读写性能均优于传统关系数据库。利用hbase面向列的特性,各实体的时间节点与各事件的关联实体可以动态增加或减少,可以通过主键与列限定符实现高效访问,避免了条件查询。同时,设计上支持了hive数据仓库工具进行相关时间切片的离线运算,支持spark内存计算模型。因此,本发明提供的数据存储方法可以为海量数据提供高效存储与查询。通过本发明,能够高效对变长、异构及海量的信息进行存储,能够高效地存储信息对象之间的关联信息;并且,通过相应的检索,能够获取到信息对象的发生、发展、结局等演进过程以及与之关联的其他对象的信息及它们之间的相互联系。在本发明中,系统数据库服务由hbase集群提供稳定支持,hbase采用主从模式,由master和regionserver(hbase的服务)组成,使用zookeeper作为协调服务。集群中各个角色部署如图2和表5所示。表5:hadoop集群部署在搭建集群时,首先,搭建hadoop集群,提供hdfs底层存储。然后,搭建zookeeper集群。最后,搭建hbaseha集群。其中,zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,zookeeper是以fastpaxos算法为基础,实现同步服务,配置维护和命名服务等分布式应用。如果namenode或者是hmaster宕机后,这时候zookeeper会重新选出leader,避免单点故障,这是它最大的作用所在。regionserver向zookeeper注册,提供hbaseregionserver状态信息(是否在线)。hmaster启动时候会将hbase系统表-root-加载到zookeeper集群,通过zookeeper集群可以获取当前系统表.meta.的存储所对应的regionserver信息。其中,hmaster为regionserver分配region,管理用户对表的增删改查操作;管理regionserver的负载均衡,调整region分布;regionsplit后,负责新region的分布;在regionserver停机后,负责失效hregionserver上region迁移工作。regionserver维护hmaster分配给它的region,处理对这些region的i/o请求;负责切分在运行过程中变得过大的region。client访问hbase上数据的过程并不需要hmaster参与(寻址访问zookeeper和regionserver,数据读写访问regionserver),hmaster仅仅维护着table和region的元数据信息,负载很低。在此实施采用高可用性hbase部署方式,启动两个hmaster,三个regionserver节点,由zookeeper自己去选择一个master激活。对于实体表,抽取得到的事件要素被封装成java对象,其中时间信息作为列标识符,其余部分通过xstream工具类转换为xml格式字符串。序列化为二进制字节数组后作为单元列值存储。对于关系表与关系实体表,当新增两个信息实体的事件之间的关联时,首先将关联实体按其具体信息增加到关联实体表中,得到持久化后的行主键,将主键作为指针填入关联表的相关单元中,进行相关查询与检索时,可以由此指针得到关联实体的具体内容。以上,为本发明提供的一种基于关联数据的存储方法。第二实施例:在上述的第一实施例中,提供了一种基于关联数据的存储方法,与之相对应的,本申请还提供一种基于关联数据的存储装置。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。本发明第二实施例提供的一种基于关联数据的存储装置,包括:信息获取模块101,用于获取需要存储的信息对象的基本信息;列表建立模块102,用于根据所述基本信息,建立所述信息对象的存储列表;所述存储列表包括:对象表、事件列表、关联表和关联实体表;信息存储模块103,用于按照所述存储列表存储所述信息对象的基本信息。在本发明提供的一个具体实施例中,所述对象表,包括:原始信息列蔟;所述原始信息列蔟,包括:原始信息和原始描述属性组。在本发明提供的一个具体实施例中,所述原始描述属性组支持动态扩展。在本发明提供的一个具体实施例中,所述事件列表,包括:事件列表蔟;所述事件列表蔟以所述信息对象的关键时间节点为标识,记录所述信息对象在所述关键时间节点的信息。在本发明提供的一个具体实施例中,所述关联表,包括:指入关联列蔟和指出关联列蔟;所述指入关联列蔟和所述指出关联列簇中的信息由所述信息对象的实体id和时间节点唯一标注,由con指针确定联系线。在本发明提供的一个具体实施例中,所述关联实体表,包括:关联属性列蔟;所述关联属性列蔟,包括:关联类型和关联描述。在本发明提供的一个具体实施例中,所述列表建立模块,具体用于:基于hbase数据库,根据所述基本信息,建立所述信息对象的存储列表。第三实施例:在上述的第一实施例中,提供了一种基于关联数据的存储方法,结合上述第一实施例,本发明第三实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一实施例提供的一种基于关联数据的存储方法。第四实施例:结合第一实施例提供的一种基于关联数据的存储方法,本发明还提供一种计算机设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述第一实施例提供的一种基于关联数据的存储方法。本发明的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1