CN110134335A - 一种基于键值对的rdf数据管理方法、装置及存储介质 - Google Patents
一种基于键值对的rdf数据管理方法、装置及存储介质 Download PDFInfo
- Publication number
- CN110134335A CN110134335A CN201910389688.XA CN201910389688A CN110134335A CN 110134335 A CN110134335 A CN 110134335A CN 201910389688 A CN201910389688 A CN 201910389688A CN 110134335 A CN110134335 A CN 110134335A
- Authority
- CN
- China
- Prior art keywords
- key
- value
- value pair
- node
- stored
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种基于键值对的RDF数据管理方法、装置及存储介质,针对RDF图上的每组相邻节点以及相邻节点之间的有向边,分别以各节点以及有向边为键构建键值对,然后分别将各键值对中的值分别存储在SSD上不同的存储单元中,并在其它存储单元中,对所有键值对中的键以及值的物理存储地址所组成的索引表进行存储,以及将键的存储地址保存于地址记录表中。通过本发明的实施,将SSD上的存储单元分为表区域和数据区域,通过表区域存储包括键与对应于键的值的物理存储地址的索引表,通过数据区域存储值,利于实现全面、可扩展的RDF数据管理,充分利用了SSD的高并行性,极大提高了在SSD上的数据管理性能。
Description
技术领域
本发明涉及数据管理领域,尤其涉及一种基于键值对的RDF数据管理方法、装置及存储介质。
背景技术
大数据时代,信息呈现出高度非结构化和自由而丰富的关联性,许多知识库如微博、Facebook等的数据集通常以资源描述框架(RDF,Resource Description Framework)的形式进行存储。RDF数据实际上是由一些列的三元组数据组成的,其中每个三元组都是由三个元素组成:资源、属性和属性值,也称之为主语(Subject)、谓语(predicate)以及宾语(Object)。
近些年随着RDF的普及,RDF数据的数量已经大大增加,在许多RDF数据集中(例如Wikipedia)产生了数十亿个三元组。因此,如何有效地管理这些庞大的RDF数据成为一个巨大的挑战。目前,通常是将RDF数据在固态硬盘(SSD,Solid State Drive)进行存储,然而相关技术中在存储过程中,并未考虑到SSD内部的空间特性,例如channel,die,plane等内部信息,而是将RDF数据随机存储在SSD上的空闲存储单元,使得SSD的性能未得到充分发挥,在SSD上的数据管理性能较低。
发明内容
本发明实施例的主要目的在于提供一种基于键值对的RDF数据管理方法、装置及存储介质,至少能够解决相关技术中将RDF数据随机存储在SSD上的空闲存储单元,所导致的SSD性能未得到充分发挥,以及基于SSD的数据管理性能较低的问题。
为实现上述目的,本发明实施例第一方面提供了一种基于键值对的RDF数据管理方法,该方法包括:
基于待存储RDF数据创建RDF图;所述待存储RDF数据中所有三元组的主语和宾语对应于所述RDF图上的相邻的两个节点,谓语为所述主语和宾语所对应的所述相邻的两个节点之间的有向边;
基于所述RDF图上的各所述节点和所述有向边分别生成键值对;所述键值对包括第一键值对、第二键值对以及第三键值对,所述第一键值对以所述各节点为键,并以所述各节点向外延伸方向上的相邻节点,以及所述各节点与所述相邻节点之间的有向边所组成的集合为值,所述第二键值对以所述各节点为键,并以所述各节点向内引入方向上的相邻节点,以及所述各节点与所述相邻节点之间的有向边所组成的集合为值,所述第三键值对以所述相邻的两个节点之间的有向边为键,所述相邻的两个节点所组成的集合为值;
将各所述键值对中的键所对应的值分别存储于所述SSD上物理存储地址不同的存储单元中,然后在所述SSD上的其它存储单元中,对所有所述键值对中的键以及对应于所述键的值的物理存储地址所组成的索引表进行存储,并将所述键的物理存储地址保存于地址记录表中。
为实现上述目的,本发明实施例第二方面提供了一种基于键值对的RDF数据管理装置,该装置包括:
创建模块,用于基于待存储RDF数据创建RDF图;所述待存储RDF数据中所有三元组的主语和宾语对应于所述RDF图上的相邻的两个节点,谓语为所述主语和宾语所对应的所述相邻的两个节点之间的有向边;
生成模块,用于基于所述RDF图上的各所述节点和所述有向边分别生成键值对;所述键值对包括第一键值对、第二键值对以及第三键值对,所述第一键值对以所述各节点为键,并以所述各节点向外延伸方向上的相邻节点,以及所述各节点与所述相邻节点之间的有向边所组成的集合为值,所述第二键值对以所述各节点为键,并以所述各节点向内引入方向上的相邻节点,以及所述各节点与所述相邻节点之间的有向边所组成的集合为值,所述第三键值对以所述相邻的两个节点之间的有向边为键,所述相邻的两个节点所组成的集合为值;
存储模块,用于将各所述键值对中的键所对应的值分别存储于所述SSD上物理存储地址不同的存储单元中,然后在所述SSD上的其它存储单元中,对所有所述键值对中的键以及对应于所述键的值的物理存储地址所组成的索引表进行存储,并将所述键的物理存储地址保存于地址记录表中。
为实现上述目的,本发明实施例第三方面提供了一种电子装置,该电子装置包括:处理器、存储器和通信总线;
所述通信总线用于实现所述处理器和存储器之间的连接通信;
所述处理器用于执行所述存储器中存储的一个或者多个程序,以实现上述任意一种基于键值对的RDF数据管理方法的步骤。
为实现上述目的,本发明实施例第四方面提供了一种计算机可读存储介质,该计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述任意一种基于键值对的RDF数据管理方法的步骤。
根据本发明实施例提供的基于键值对的RDF数据管理方法、装置及存储介质,针对RDF图上的每组相邻节点以及相邻节点之间的有向边,分别以各节点以及有向边为键构建键值对,然后分别将各键值对中的值分别存储在SSD上不同的存储单元中,并在其它存储单元中,对所有键值对中的键以及值的物理存储地址所组成的索引表进行存储,以及将键的存储地址保存于地址记录表中。通过本发明的实施,将SSD上的存储单元分为表区域和数据区域,通过表区域存储包括键与对应于键的值的物理存储地址的索引表,通过数据区域存储值,利于实现全面、可扩展的RDF数据管理,充分利用了SSD的高并行性,极大提高了在SSD上的数据管理性能。
本发明其他特征和相应的效果在说明书的后面部分进行阐述说明,且应当理解,至少部分效果从本发明说明书中的记载变的显而易见。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明第一实施例提供的RDF数据管理方法的基本流程示意图;
图2为本发明第一实施例提供的RDF图;
图3为本发明第一实施例提供的另一种RDF数据管理方法的基本流程示意图;
图4为本发明第一实施例提供的RDF数据查询示意图;
图5为本发明第二实施例提供的RDF数据管理装置的结构示意图;
图6为本发明第三实施例提供的电子装置的结构示意图。
具体实施方式
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
第一实施例:
为了解决相关技术中将RDF数据随机存储在SSD上的空闲存储单元,所导致的SSD性能未得到充分发挥,以及基于SSD的数据管理性能较低的技术问题,本实施例提出了一种基于键值对的RDF数据管理方法,应用于具有多个存储单元的SSD。如图1所示为本实施例提供的基于键值对的RDF数据管理方法的基本流程示意图,本实施例提出的基于键值对的RDF数据管理方法包括以下的步骤:
步骤101、基于待存储RDF数据创建RDF图;待存储RDF数据中所有三元组的主语和宾语对应于RDF图上的相邻的两个节点,谓语为主语和宾语所对应的相邻的两个节点之间的有向边。
具体的,RDF数据中包含多个资源描述,而一个资源描述是由多个语句构成,一个语句是由资源、属性、属性值构成的三元组。资源描述中的语句可以对应于自然语言的语句,资源对应于自然语言中的主语,属性对应于谓语,属性值对应于宾语,在RDF术语中一个三元组可以表示为(主语,谓语,宾语),也即(s,p,o)。一个RDF数据集可以被描述为一个RDF图,如图2所示为本实施例提供的RDF图,该RDF图为一个有向标签图,主语和宾语描述为RDF图中相邻的两个节点,宾语描述为RDF图中相邻的两个节点之间的有向边。
步骤102、基于RDF图上的各节点和有向边分别生成键值对;键值对包括第一键值对、第二键值对以及第三键值对,第一键值对以各节点为键,并以各节点向外延伸方向上的相邻节点,以及各节点与相邻节点之间的有向边所组成的集合为值,第二键值对以各节点为键,并以各节点向内引入方向上的相邻节点,以及各节点与相邻节点之间的有向边所组成的集合为值,第三键值对以相邻的两个节点之间的有向边为键,相邻的两个节点所组成的集合为值。
具体的,本实施例中待存储数据以键值对的形式存在,其中键值对又分为三种类型,其一,键值对以相应于主语的节点为键,位于该节点向外延伸方向上的相邻节点(也即相应于宾语的节点)以及两个节点之间的有向边组成键值对中的值,这里的向外延伸方向也即对应于键的节点为有向边的起始顶点,相邻节点则为有向边的终止顶点;其二,键值对以相应于宾语的节点为键,位于该节点向内引入方向上的相邻节点(也即相应于主语的节点)以及两个节点之间的有向边组成键值对中的值,这里的向内引入方向也即对应于键的节点为有向边的终止顶点,相邻节点则为有向边的起始顶点;其三,键值对以相应于谓语的有向边为键,有向边所联结的相邻节点(也即分别相应于主语和宾语的节点)组成键值对中的值。
步骤103、将各键值对中的键所对应的值分别存储于SSD上物理存储地址不同的存储单元中,然后在SSD上的其它存储单元中,对所有键值对中的键以及对应于键的值的物理存储地址所组成的索引表进行存储,并将键的物理存储地址保存于地址记录表中。
具体的,在本实施例中,将SSD上的存储单元分为表区域和数据区域,其中,数据区域上的不同存储单元分别用于存储不同键值对中的值,而在表区域上的存储单元存储所有键值对的键与键所对应的值的物理存储地址所组成的索引表,通过在表区域查找到键,即可通过索引表上的物理存储地址在数据区域索引对应于键的值。应当理解的是,为了实现键的定位,本实施例中还在存储索引表后,对键的物理存储地址进行记录。还应当说明的是,本实施例中可以充分利用SSD的并行处理能力,将多个键值对并行的在不同存储单元进行存储。
可选的,在将RDF数据存储之后,对于RDF数据的查询,请参阅如图3所示的本实施例提供的另一种RDF数据管理方法的基本流程示意图,具体包括以下步骤:
步骤301、在接收到RDF数据查询请求时,获取至少一个待查询三元组;待查询三元组中的已知元素为查询条件,待查询三元组中的未知元素为查询结果,已知元素包括待查询三元组所对应的键值对中的键;
步骤302、基于地址记录表,查找待查询三元组所对应的键值对中的目标键的物理存储地址;
步骤303、从目标键的物理存储地址所存储的索引表中,获取目标键相对应的目标值的物理存储地址,基于目标值的物理存储地址查找目标值,并基于目标值得到查询结果。
具体的,基于前述的RDF数据存储策略,相对应的,本实施例中则基于键来对值进行查询,如图4所示为本实施例提供的RDF数据查询示意图,在图4的实施方式中,有两个待查询三元组,两个待查询三元组中的已知元素分别为Maa和kob,首先,根据地址记录表分别查询得到Maa和kob所处的索引表的物理存储地址(Channel#0,Flash#0,Page#0),从而在该物理存储地址的索引表中可以索引得到分别对应于两者的值的物理存储地址P,也即对应于键Maa的值的物理存储地址为(Channel#1,Flash#0,Page#0),对应于键kob的值的物理存储地址为(Channel#0,Flash#0,Page#1)。
可选的,在待查询三元组有多个时,基于地址记录表,查找待查询三元组所对应的键值对中的目标键的物理存储地址包括:基于地址记录表,分别查找各待查询三元组所对应的键值对中的目标键的物理存储地址。对应的,从目标键的物理存储地址所存储的索引表中,获取目标键相对应的目标值的物理存储地址,基于目标值的物理存储地址查找目标值,并基于目标值得到查询结果包括:从各目标键的物理存储地址所存储的索引表中,分别获取各目标键相对应的目标值的物理存储地址,然后并行加载各目标值的物理存储地址所存储的数据,查找各目标键相对应的目标值,并基于目标值得到多个查询结果。
具体的,在本实施例中,在查询数据量较大,也即所需查询的三元组有多个时,可以并行的处理数据查询,也即并行的查询各待查询三元组中已知的键所处的物理存储地址,然后基于该物理存储地址找到索引表进一步获取各个键所对应的值的物理存储地址,最后从各值的物理存储地址并行加载数据,得到多个查询结果。
可选的,在将RDF数据存储之后,当对RDF数据进行添加时,具体包括:在接收到RDF数据添加请求时,查找待添加三元组所对应的键值对中的键,所对应的最后一个存储单元中是否还有空闲空间;待添加三元组所对应的键值对中的键为已存状态,最后一个存储单元为已存的键相对应的已存的值所占用的多个存储单元中的最后一个;若是,则将待添加三元组所对应的键值对中的值,继续在最后一个存储单元中进行存储;若否,则在SSD上新开辟一个存储单元,对待添加三元组所对应的键值对中的值进行存储,并将待添加三元组所对应的键值对中的值的物理存储地址,添加至索引表中。
具体的,在本实施例中,在添加RDF数据时,待添加三元组中的键为已存的键,而在实际应用中,一个键所对应的值数量所占的存储单元有所不等,有可能会占用一个或多个存储单元。为了提高SSD的存储空间利用率以及降低所存储数据的稀疏性,本实施例中在添加数据时,获取所添加三元组中键所对应的最后一个存储单元是否还有空闲空间,若有,则将待添加三元组相应键值对的值继续在该存储单元进行存储,而若否,则新开辟存储空间进行存储,与此同时,还需要将新开辟存储空间的物理存储地址在索引表中映射至该已存的键。
可选的,在将RDF数据存储之后,当对RDF数据进行更新时,具体包括:在接收到RDF数据更新请求时,确定待更新三元组所对应的存储于SSD上的原始三元组;基于待更新三元组相对应的键值对,对原始三元组中相对应的键值对进行更新。
具体的,虽然在不是只读的情况下可以合理地假设大多数RDF存储是查询密集型的(例如,生命科学中的大型参考存储库),但是在某些情况下仍需要进行数据的更新操作,也即对现有数据进行修改,更新数据解释。在本实施例中进行数据更新时,不管是对键还是键值进行修改,仅需找到所需修改的元素的物理存储地址,参考待更新三元组中的元素将所需修改的元素进行修改即可。
可选的,在将RDF数据存储之后,当对RDF数据进行删除时,具体包括:在接收到RDF数据删除请求时,分别确定待删除三元组相对应的键值对中待删除的值的物理存储地址;加载待删除的值的物理存储地址所存储的数据,查找到待删除的值并进行删除。
具体的,本实施例中的RDF数据删除请求用于指示对待删除三元组相应的键值对中的值进行删除。首先,查找待删除三元组中的键的物理存储地址,然后在该物理存储地址的索引表中索引待删除三元组的值的物理存储地址,最后在该物理存储地址所加载的数据中查找到待删除三元组中的值并删除。
可选的,在待删除三元组相对应的键值对中的键相对应的已存的值占用多个存储单元时,在查找到待删除的值并进行删除之后还包括:将待删除的值的原存储单元的所有值,与多个存储单元中最后一个存储单元的所有值进行合并;将合并后的值重新在预设的可用存储单元中进行存储,并将索引表中对应于合并后的值的物理存储地址进行更新。
具体的,若未一个键的值分配了多个存储单元,那么在某个非末尾存储单元中删除值之后,该存储单元中开始出现空闲空间,并且通常末尾的存储单元是未占满的,从而将这两个存储单元中的数据读取出来进行合并,然后将合并后的数据进行重写,最后还相应更新索引表中相关值的物理存储地址。从而可以提高存储空间的利用率,降低数据的稀疏性,提升数据管理效率。
根据本发明实施例提供的基于键值对的RDF数据管理方法,针对RDF图上的每组相邻节点以及相邻节点之间的有向边,分别以各节点以及有向边为键构建键值对,然后分别将各键值对中的值分别存储在SSD上不同的存储单元中,并在其它存储单元中,对所有键值对中的键以及值的物理存储地址所组成的索引表进行存储,以及将键的存储地址保存于地址记录表中。通过本发明的实施,将SSD上的存储单元分为表区域和数据区域,通过表区域存储包括键与对应于键的值的物理存储地址的索引表,通过数据区域存储值,利于实现全面、可扩展的RDF数据管理,充分利用了SSD的高并行性,极大提高了在SSD上的数据管理性能。
第二实施例:
为了解决相关技术中将RDF数据随机存储在SSD上的空闲存储单元,所导致的SSD性能未得到充分发挥,以及基于SSD的数据管理性能较低的技术问题,本实施例示出了一种基于键值对的RDF数据管理装置,应用于具有多个存储单元的SSD,具体请参见图5,本实施例的RDF数据管理装置包括:
创建模块501,用于基于待存储RDF数据创建RDF图;待存储RDF数据中所有三元组的主语和宾语对应于RDF图上的相邻的两个节点,谓语为主语和宾语所对应的相邻的两个节点之间的有向边;
生成模块502,用于基于RDF图上的各节点和有向边分别生成键值对;键值对包括第一键值对、第二键值对以及第三键值对,第一键值对以各节点为键,并以各节点向外延伸方向上的相邻节点,以及各节点与相邻节点之间的有向边所组成的集合为值,第二键值对以各节点为键,并以各节点向内引入方向上的相邻节点,以及各节点与相邻节点之间的有向边所组成的集合为值,第三键值对以相邻的两个节点之间的有向边为键,相邻的两个节点所组成的集合为值;
存储模块503,用于将各键值对中的键所对应的值分别存储于SSD上物理存储地址不同的存储单元中,然后在SSD上的其它存储单元中,对所有键值对中的键以及对应于键的值的物理存储地址所组成的索引表进行存储,并将键的物理存储地址保存于地址记录表中。
具体的,一个RDF数据集可以被描述为一个RDF图,该RDF图为一个有向标签图,主语和宾语表示RDF图中相邻的两个节点,宾语表示RDF图中相邻的两个节点之间的有向边。
另外,本实施例中待存储数据以键值对的形式存在,其中键值对又分为三种类型,其一,键值对以相应于主语的节点为键,位于该节点向外延伸方向上的相邻节点(也即相应于宾语的节点)以及两个节点之间的有向边组成键值对中的值;其二,键值对以相应于宾语的节点为键,位于该节点向内引入方向上的相邻节点(也即相应于主语的节点)以及两个节点之间的有向边组成键值对中的值;其三,键值对以相应于谓语的有向边为键,有向边所联结的相邻节点(也即分别相应于主语和宾语的节点)组成键值对中的值。
还应当说明的是,在本实施例中,将SSD上的存储单元分为表区域和数据区域,其中,数据区域上的不同存储单元分别用于存储不同键值对中的值,而在表区域上的存储单元存储所有键值对的键与键所对应的值的物理存储地址所组成的索引表,并且,为了实现键的定位,本实施例中还在存储索引表后,对键的物理存储地址进行记录。
在本实施例的一些实施方式中,RDF数据管理装置还包括:查询模块,用于在接收到RDF数据查询请求时,获取至少一个待查询三元组;待查询三元组中的已知元素为查询条件,待查询三元组中的未知元素为查询结果,已知元素包括待查询三元组所对应的键值对中的键;基于地址记录表,查找待查询三元组所对应的键值对中的目标键的物理存储地址;从目标键的物理存储地址所存储的索引表中,获取目标键相对应的目标值的物理存储地址,基于目标值的物理存储地址查找目标值,并基于目标值得到查询结果。
进一步地,在本实施例的一些实施方式中,若待查询三元组有多个,则查询模块具体用于基于地址记录表,分别查找各待查询三元组所对应的键值对中的目标键的物理存储地址;从各目标键的物理存储地址所存储的索引表中,分别获取各目标键相对应的目标值的物理存储地址,然后并行加载各目标值的物理存储地址所存储的数据,查找各目标键相对应的目标值,并基于目标值得到多个查询结果。
在本实施例的另一些实施方式中,RDF数据管理装置还包括:添加模块,用于在接收到RDF数据添加请求时,查找待添加三元组所对应的键值对中的键,所对应的最后一个存储单元中是否还有空闲空间;待添加三元组所对应的键值对中的键为已存状态,最后一个存储单元为已存的键相对应的已存的值所占用的多个存储单元中的最后一个;若是,则将待添加三元组所对应的键值对中的值,继续在最后一个存储单元中进行存储;若否,则在SSD上新开辟一个存储单元,对待添加三元组所对应的键值对中的值进行存储,并将待添加三元组所对应的键值对中的值的物理存储地址,添加至索引表中。
在本实施例的一些实施方式中,RDF数据管理装置还包括:更新模块,用于在接收到RDF数据更新请求时,确定待更新三元组所对应的存储于SSD上的原始三元组;基于待更新三元组相对应的键值对,对原始三元组中相对应的键值对进行更新。
在本实施例的一些实施方式中,RDF数据管理装置还包括:删除模块,用于在接收到RDF数据删除请求时,分别确定待删除三元组相对应的键值对中待删除的值的物理存储地址;加载待删除的值的物理存储地址所存储的数据,查找到待删除的值并进行删除。
进一步地,在本实施例的一些实施方式中,RDF数据管理装置还包括:合并模块,用于在待删除三元组相对应的键值对中的键相对应的已存的值占用多个存储单元时,在查找到待删除的值并进行删除之后,将待删除的值的原存储单元的所有值,与多个存储单元中最后一个存储单元的所有值进行合并;将合并后的值重新在预设的可用存储单元中进行存储,并将索引表中对应于合并后的值的物理存储地址进行更新。
应当说明的是,前述实施例中的基于键值对的RDF数据管理方法均可基于本实施例提供的基于键值对的RDF数据管理装置实现,所属领域的普通技术人员可以清楚的了解到,为描述的方便和简洁,本实施例中所描述的基于键值对的RDF数据管理装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
采用本实施例提供的基于键值对的RDF数据管理装置,针对RDF图上的每组相邻节点以及相邻节点之间的有向边,分别以各节点以及有向边为键构建键值对,然后分别将各键值对中的值分别存储在SSD上不同的存储单元中,并在其它存储单元中,对所有键值对中的键以及值的物理存储地址所组成的索引表进行存储,以及将键的存储地址保存于地址记录表中。通过本发明的实施,将SSD上的存储单元分为表区域和数据区域,通过表区域存储包括键与对应于键的值的物理存储地址的索引表,通过数据区域存储值,利于实现全面、可扩展的RDF数据管理,充分利用了SSD的高并行性,极大提高了在SSD上的数据管理性能。
第三实施例:
本实施例提供了一种电子装置,参见图6所示,其包括处理器601、存储器602及通信总线603,其中:通信总线603用于实现处理器601和存储器602之间的连接通信;处理器601用于执行存储器602中存储的一个或者多个计算机程序,以实现上述实施例一中的基于键值对的RDF数据管理方法中的至少一个步骤。
本实施例还提供了一种计算机可读存储介质,该计算机可读存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、计算机程序模块或其他数据)的任何方法或技术中实施的易失性或非易失性、可移除或不可移除的介质。计算机可读存储介质包括但不限于RAM(Random Access Memory,随机存取存储器),ROM(Read-Only Memory,只读存储器),EEPROM(Electrically Erasable Programmable read only memory,带电可擦可编程只读存储器)、闪存或其他存储器技术、CD-ROM(Compact Disc Read-Only Memory,光盘只读存储器),数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。
本实施例中的计算机可读存储介质可用于存储一个或者多个计算机程序,其存储的一个或者多个计算机程序可被处理器执行,以实现上述实施例一中的方法的至少一个步骤。
本实施例还提供了一种计算机程序,该计算机程序可以分布在计算机可读介质上,由可计算装置来执行,以实现上述实施例一中的方法的至少一个步骤;并且在某些情况下,可以采用不同于上述实施例所描述的顺序执行所示出或描述的至少一个步骤。
本实施例还提供了一种计算机程序产品,包括计算机可读装置,该计算机可读装置上存储有如上所示的计算机程序。本实施例中该计算机可读装置可包括如上所示的计算机可读存储介质。
可见,本领域的技术人员应该明白,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件(可以用计算装置可执行的计算机程序代码来实现)、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。
此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、计算机程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。所以,本发明不限制于任何特定的硬件和软件结合。
以上内容是结合具体的实施方式对本发明实施例所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (10)
1.一种基于键值对的RDF数据管理方法,其特征在于,包括:
基于待存储RDF数据创建RDF图;所述待存储RDF数据中所有三元组的主语和宾语对应于所述RDF图上的相邻的两个节点,谓语为所述主语和宾语所对应的所述相邻的两个节点之间的有向边;
基于所述RDF图上的各所述节点和所述有向边分别生成键值对;所述键值对包括第一键值对、第二键值对以及第三键值对,所述第一键值对以所述各节点为键,并以所述各节点向外延伸方向上的相邻节点,以及所述各节点与所述相邻节点之间的有向边所组成的集合为值,所述第二键值对以所述各节点为键,并以所述各节点向内引入方向上的相邻节点,以及所述各节点与所述相邻节点之间的有向边所组成的集合为值,所述第三键值对以所述相邻的两个节点之间的有向边为键,所述相邻的两个节点所组成的集合为值;
将各所述键值对中的键所对应的值分别存储于所述SSD上物理存储地址不同的存储单元中,然后在所述SSD上的其它存储单元中,对所有所述键值对中的键以及对应于所述键的值的物理存储地址所组成的索引表进行存储,并将所述键的物理存储地址保存于地址记录表中。
2.如权利要求1所述的基于键值对的RDF数据管理方法,其特征在于,在将所述键的物理存储地址保存于地址记录表中之后,还包括:
在接收到RDF数据查询请求时,获取至少一个待查询三元组;所述待查询三元组中的已知元素为查询条件,所述待查询三元组中的未知元素为查询结果,所述已知元素包括所述待查询三元组所对应的键值对中的键;
基于所述地址记录表,查找所述待查询三元组所对应的键值对中的目标键的物理存储地址;
从所述目标键的物理存储地址所存储的索引表中,获取所述目标键相对应的目标值的物理存储地址,基于所述目标值的物理存储地址查找所述目标值,并基于所述目标值得到所述查询结果。
3.如权利要求2所述的基于键值对的RDF数据管理方法,其特征在于,在所述待查询三元组有多个时,所述基于所述地址记录表,查找所述待查询三元组所对应的键值对中的目标键的物理存储地址包括:
基于所述地址记录表,分别查找各所述待查询三元组所对应的键值对中的目标键的物理存储地址;
所述从所述目标键的物理存储地址所存储的索引表中,获取所述目标键相对应的目标值的物理存储地址,基于所述目标值的物理存储地址查找所述目标值,并基于所述目标值得到所述查询结果包括:
从各所述目标键的物理存储地址所存储的索引表中,分别获取各所述目标键相对应的目标值的物理存储地址,然后并行加载各所述目标值的物理存储地址所存储的数据,查找各所述目标键相对应的所述目标值,并基于所述目标值得到多个所述查询结果。
4.如权利要求1所述的基于键值对的RDF数据管理方法,其特征在于,在将所述键的物理存储地址保存于地址记录表中之后,还包括:
在接收到RDF数据添加请求时,查找待添加三元组所对应的键值对中的键,所对应的最后一个存储单元中是否还有空闲空间;所述待添加三元组所对应的键值对中的键为已存状态,所述最后一个存储单元为已存的键相对应的已存的值所占用的多个存储单元中的最后一个;
若是,则将所述待添加三元组所对应的键值对中的值,继续在所述最后一个存储单元中进行存储;
若否,则在所述SSD上新开辟一个存储单元,对所述待添加三元组所对应的键值对中的值进行存储,并将所述待添加三元组所对应的键值对中的值的物理存储地址,添加至所述索引表中。
5.如权利要求1所述的基于键值对的RDF数据管理方法,其特征在于,在将所述键的物理存储地址保存于地址记录表中之后,还包括:
在接收到RDF数据更新请求时,确定待更新三元组所对应的存储于所述SSD上的原始三元组;
基于所述待更新三元组相对应的键值对,对所述原始三元组中相对应的键值对进行更新。
6.如权利要求1所述的基于键值对的RDF数据管理方法,其特征在于,在将所述键的物理存储地址保存于地址记录表中之后,还包括:
在接收到RDF数据删除请求时,分别确定待删除三元组相对应的键值对中待删除的值的物理存储地址;
加载所述待删除的值的物理存储地址所存储的数据,查找到所述待删除的值并进行删除。
7.如权利要求6所述的基于键值对的RDF数据管理方法,其特征在于,在所述待删除三元组相对应的键值对中的键相对应的已存的值占用多个存储单元时,在查找到所述待删除的值并进行删除之后还包括:
将所述待删除的值的原存储单元的所有值,与所述多个存储单元中最后一个存储单元的所有值进行合并;
将合并后的值重新在预设的可用存储单元中进行存储,并将所述索引表中对应于合并后的值的物理存储地址进行更新。
8.一种基于键值对的RDF数据管理装置,其特征在于,包括:
创建模块,用于基于待存储RDF数据创建RDF图;所述待存储RDF数据中所有三元组的主语和宾语对应于所述RDF图上的相邻的两个节点,谓语为所述主语和宾语所对应的所述相邻的两个节点之间的有向边;
生成模块,用于基于所述RDF图上的各所述节点和所述有向边分别生成键值对;所述键值对包括第一键值对、第二键值对以及第三键值对,所述第一键值对以所述各节点为键,并以所述各节点向外延伸方向上的相邻节点,以及所述各节点与所述相邻节点之间的有向边所组成的集合为值,所述第二键值对以所述各节点为键,并以所述各节点向内引入方向上的相邻节点,以及所述各节点与所述相邻节点之间的有向边所组成的集合为值,所述第三键值对以所述相邻的两个节点之间的有向边为键,所述相邻的两个节点所组成的集合为值;
存储模块,用于将各所述键值对中的键所对应的值分别存储于所述SSD上物理存储地址不同的存储单元中,然后在所述SSD上的其它存储单元中,对所有所述键值对中的键以及对应于所述键的值的物理存储地址所组成的索引表进行存储,并将所述键的物理存储地址保存于地址记录表中。
9.一种电子装置,其特征在于,包括:处理器、存储器和通信总线;
所述通信总线用于实现所述处理器和存储器之间的连接通信;
所述处理器用于执行所述存储器中存储的一个或者多个程序,以实现如权利要求1至7中任意一项所述的基于键值对的RDF数据管理方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1至7中任意一项所述的基于键值对的RDF数据管理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910389688.XA CN110134335B (zh) | 2019-05-10 | 2019-05-10 | 一种基于键值对的rdf数据管理方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910389688.XA CN110134335B (zh) | 2019-05-10 | 2019-05-10 | 一种基于键值对的rdf数据管理方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110134335A true CN110134335A (zh) | 2019-08-16 |
CN110134335B CN110134335B (zh) | 2022-08-12 |
Family
ID=67573378
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910389688.XA Active CN110134335B (zh) | 2019-05-10 | 2019-05-10 | 一种基于键值对的rdf数据管理方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110134335B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111241108A (zh) * | 2020-01-16 | 2020-06-05 | 北京百度网讯科技有限公司 | 基于键值对kv系统的索引方法、装置、电子设备和介质 |
CN112579003A (zh) * | 2020-12-15 | 2021-03-30 | 浙江大华技术股份有限公司 | 键值对的调整方法、装置、存储介质以及电子装置 |
CN113126909A (zh) * | 2019-12-31 | 2021-07-16 | 美光科技公司 | 使用已删除记录跨度的光标查找操作 |
CN113253926A (zh) * | 2021-05-06 | 2021-08-13 | 天津大学深圳研究院 | 提升新型存储器的查询和存储性能的存储内索引构建方法 |
WO2023273858A1 (zh) * | 2021-06-30 | 2023-01-05 | 中兴通讯股份有限公司 | 表项存储系统、方法、资源管理单元及存储介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101436192A (zh) * | 2007-11-16 | 2009-05-20 | 国际商业机器公司 | 用于优化针对垂直存储式数据库的查询的方法和设备 |
CN102693310A (zh) * | 2012-05-28 | 2012-09-26 | 无锡成电科大科技发展有限公司 | 一种基于关系数据库的资源描述框架查询方法和系统 |
CN103294710A (zh) * | 2012-02-28 | 2013-09-11 | 北京新媒传信科技有限公司 | 一种数据存取方法和装置 |
CN103577538A (zh) * | 2013-09-29 | 2014-02-12 | 柳州市宏亿科技有限公司 | 一种基于互联网的键值数据查询方法 |
JP2014191593A (ja) * | 2013-03-27 | 2014-10-06 | Nec Corp | カラムストア型データベース管理システム |
KR20150131022A (ko) * | 2013-03-15 | 2015-11-24 | 닛토덴코 가부시키가이샤 | 청력 검사 장치, 청력 검사 방법 및 청력 검사용 단어 작성 방법 |
CN106156319A (zh) * | 2016-07-05 | 2016-11-23 | 北京航空航天大学 | 可伸缩的分布式的资源描述框架数据存储方法及装置 |
CN106448630A (zh) * | 2016-09-09 | 2017-02-22 | 腾讯科技(深圳)有限公司 | 歌曲的数字乐谱文件的生成方法和装置 |
WO2017061901A1 (ru) * | 2015-10-08 | 2017-04-13 | Общество с ограниченной ответственностью "Колловэар" | Система и способ обработки данных графов |
CN106599091A (zh) * | 2016-11-24 | 2017-04-26 | 上海交通大学 | 基于键值存储的rdf图结构存储和索引方法 |
CN108089817A (zh) * | 2016-11-23 | 2018-05-29 | 三星电子株式会社 | 存储系统及其操作方法和操作数据处理系统的方法 |
-
2019
- 2019-05-10 CN CN201910389688.XA patent/CN110134335B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101436192A (zh) * | 2007-11-16 | 2009-05-20 | 国际商业机器公司 | 用于优化针对垂直存储式数据库的查询的方法和设备 |
CN103294710A (zh) * | 2012-02-28 | 2013-09-11 | 北京新媒传信科技有限公司 | 一种数据存取方法和装置 |
CN102693310A (zh) * | 2012-05-28 | 2012-09-26 | 无锡成电科大科技发展有限公司 | 一种基于关系数据库的资源描述框架查询方法和系统 |
KR20150131022A (ko) * | 2013-03-15 | 2015-11-24 | 닛토덴코 가부시키가이샤 | 청력 검사 장치, 청력 검사 방법 및 청력 검사용 단어 작성 방법 |
JP2014191593A (ja) * | 2013-03-27 | 2014-10-06 | Nec Corp | カラムストア型データベース管理システム |
CN103577538A (zh) * | 2013-09-29 | 2014-02-12 | 柳州市宏亿科技有限公司 | 一种基于互联网的键值数据查询方法 |
WO2017061901A1 (ru) * | 2015-10-08 | 2017-04-13 | Общество с ограниченной ответственностью "Колловэар" | Система и способ обработки данных графов |
CN106156319A (zh) * | 2016-07-05 | 2016-11-23 | 北京航空航天大学 | 可伸缩的分布式的资源描述框架数据存储方法及装置 |
CN106448630A (zh) * | 2016-09-09 | 2017-02-22 | 腾讯科技(深圳)有限公司 | 歌曲的数字乐谱文件的生成方法和装置 |
CN108089817A (zh) * | 2016-11-23 | 2018-05-29 | 三星电子株式会社 | 存储系统及其操作方法和操作数据处理系统的方法 |
CN106599091A (zh) * | 2016-11-24 | 2017-04-26 | 上海交通大学 | 基于键值存储的rdf图结构存储和索引方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113126909A (zh) * | 2019-12-31 | 2021-07-16 | 美光科技公司 | 使用已删除记录跨度的光标查找操作 |
CN111241108A (zh) * | 2020-01-16 | 2020-06-05 | 北京百度网讯科技有限公司 | 基于键值对kv系统的索引方法、装置、电子设备和介质 |
CN111241108B (zh) * | 2020-01-16 | 2023-12-26 | 北京百度网讯科技有限公司 | 基于键值对kv系统的索引方法、装置、电子设备和介质 |
CN112579003A (zh) * | 2020-12-15 | 2021-03-30 | 浙江大华技术股份有限公司 | 键值对的调整方法、装置、存储介质以及电子装置 |
CN112579003B (zh) * | 2020-12-15 | 2022-06-14 | 浙江大华技术股份有限公司 | 键值对的调整方法、装置、存储介质以及电子装置 |
CN113253926A (zh) * | 2021-05-06 | 2021-08-13 | 天津大学深圳研究院 | 提升新型存储器的查询和存储性能的存储内索引构建方法 |
WO2023273858A1 (zh) * | 2021-06-30 | 2023-01-05 | 中兴通讯股份有限公司 | 表项存储系统、方法、资源管理单元及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110134335B (zh) | 2022-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110825748B (zh) | 利用差异化索引机制的高性能和易扩展的键值存储方法 | |
CN110134335A (zh) | 一种基于键值对的rdf数据管理方法、装置及存储介质 | |
CN109933570B (zh) | 一种元数据管理方法、系统及介质 | |
KR101938953B1 (ko) | 빅 데이터 질의 엔진을 위한 플래시 최적화된 열 데이터 배치 및 데이터 액세스 처리 알고리즘 | |
US11334544B2 (en) | Method, apparatus, device and medium for storing and querying data | |
CN110019218B (zh) | 数据存储与查询方法及设备 | |
US9229961B2 (en) | Database management delete efficiency | |
US9218394B2 (en) | Reading rows from memory prior to reading rows from secondary storage | |
CN103914483B (zh) | 文件存储方法、装置及文件读取方法、装置 | |
CN109521959A (zh) | 一种基于ssd-smr磁盘混合键值存储系统数据组织方法 | |
CN110309233A (zh) | 数据存储的方法、装置、服务器和存储介质 | |
WO2014110940A1 (en) | A method, apparatus and system for storing, reading the directory index | |
Tao et al. | Clustering massive small data for IOT | |
Amur et al. | Design of a write-optimized data store | |
WO2024041376A1 (zh) | 分布式图数据处理系统、方法、装置、设备及存储介质 | |
Hu et al. | Towards big linked data: a large-scale, distributed semantic data storage | |
CN110096515A (zh) | 一种基于三元组的rdf数据管理方法、装置及存储介质 | |
CN109213760B (zh) | 非关系数据存储的高负载业务存储及检索方法 | |
CN108804556B (zh) | 基于时间旅行和时态聚合查询的分布式处理框架系统 | |
CN110008030A (zh) | 一种元数据访问的方法、系统及设备 | |
CN110110034A (zh) | 一种基于图的rdf数据管理方法、装置及存储介质 | |
WO2016175880A1 (en) | Merging incoming data in a database | |
US20230259490A1 (en) | Data query method and apparatus, device, and storage medium | |
CN108664662B (zh) | 时间旅行和时态聚合查询处理方法 | |
US10762139B1 (en) | Method and system for managing a document search index |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |