CN110765126B - 分布式数据库的数据存储及查询方法、装置及存储介质 - Google Patents
分布式数据库的数据存储及查询方法、装置及存储介质 Download PDFInfo
- Publication number
- CN110765126B CN110765126B CN201910854499.5A CN201910854499A CN110765126B CN 110765126 B CN110765126 B CN 110765126B CN 201910854499 A CN201910854499 A CN 201910854499A CN 110765126 B CN110765126 B CN 110765126B
- Authority
- CN
- China
- Prior art keywords
- data
- time
- physical
- query
- archive
- 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.)
- Active
Links
Images
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/2282—Tablespace storage structures; Management thereof
-
- 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
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2474—Sequence data queries, e.g. querying versioned data
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种分布式数据库的数据存储及查询方法、装置及存储介质,该分布式数据库包括多个时间分片,多个时间分片以时间属性划分;每一时间分片包括多个物理分片;数据存储方法包括:接收待存储数据;根据待存储数据的键值确定待存储数据的物理存储路径;将待存储数据保存至每个时间分片或者部分时间分片下与物理存储路径对应的物理分片中;数据查询方法包括:获取查询条件;根据查询条件遍历每个时间分片或部分时间分片下的物理分片;输出与查询条件匹配的档案数据或/和时空数据,以作为查询结果。通过上述方式,本申请能够实现数据库中数据的快速查询。
Description
技术领域
本发明涉及分布数据库领域,特别是涉及一种分布式数据库的数据存储及查询方法、装置及存储介质。
背景技术
在现有的分布式数据库中,一般会依赖现有的关系型数据库模式,从而导致对关系型数据查询过程,都需要一级一级逐级进行存查询,这样对于数据量较大的关系型数据而言查询效率低下。
发明内容
本发明提供一种分布式数据库的数据存储及查询方法、装置及存储介质,以解决现有技术中无法实现对关系型数据进行快速的查询的问题。
为解决上述技术问题,本发明采用的一个技术方案是提供一种分布式数据库的数据存储方法,所述分布式数据库包括多个时间分片,所述多个时间分片以时间属性划分;每一所述时间分片包括多个物理分片;所述数据存储方法包括:接收待存储数据;根据所述待存储数据的键值确定所述待存储数据的物理存储路径;将所述待存储数据保存至每个时间分片或者部分时间分片下与所述物理存储路径对应的物理分片中。
为解决上述技术问题,本发明采用的另一个技术方案是提供一种分布式数据库的数据查询方法,所述分布式数据库包括多个时间分片,所述多个时间分片以时间属性划分;每一所述时间分片包括多个物理分片;所述物理分片中存储有档案数据和时空数据,所述档案数据包括档案主键值和属性键值;所述时空数据包括关联键值和时间分布键值以及空间分布键值;所述关联键值与所述档案主键值关联;所述数据查询方法包括:获取查询条件;根据查询条件遍历每个时间分片或部分时间分片下的物理分片;输出与所述查询条件匹配的档案数据或/和时空数据,以作为查询结果。
为解决上述技术问题,本发明采用的另一个技术方案是提供一种分布式数据库的数据存储装置,所述分布式数据库的数据存储装置包括处理器和存储器;所述存储器中存储有计算机程序,所述处理器用于执行所述计算机程序以实现分布式数据的存储方法中任一项所述方法的步骤。
为解决上述技术问题,本发明采用的另一个技术方案是提供一种分布式数据库的数据查询装置,其特征在于,所述分布式数据库的数据查询装置包括处理器和存储器;所述存储器中存储有计算机程序,所述处理器用于执行所述计算机程序以实现分布式数据的查询方法中任一项所述方法的步骤。
为解决上述技术问题,本发明采用的另一个技术方案是提供一种计算机存储介质,其中存储有计算机程序,计算机程序被执行时实现上述任一所述方法的步骤。
区别于现有技术,本发明通过提供一种分布式数据库的数据存储及查询方法、装置及存储介质,该分布式数据库包括时间分片与物理分片,通过分别独立对时间分片与物理分片的数据进行查询,从而无需进行逐级查询,能够极大的增快查询速度。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明分布式数据库的数据存储方法第一实施例的流程示意图;
图2是本发明分布式数据库的数据存储方法第二实施例的流程示意图;
图3是本发明分布式数据库的数据存储方法第三实施例的流程示意图;
图4是本发明分布式数据库的数据存储装置第一实施例的结构示意图;
图5是本发明分布式数据库的数据查询方法第一实施例的流程示意图;
图6是本发明分布式数据库的数据查询方法第二实施例的流程示意图;
图7是本发明分布式数据库的数据查询方法第三实施例的流程示意图;
图8是本发明分布式数据库的数据查询方法第四实施例的流程示意图;
图9是本发明分布式数据库的数据查询装置第一实施例的结构示意图;
图10是本发明分布式数据库的数据存储装置第二实施例的结构示意图;
图11是本发明分布式数据库的数据查询装置第二实施例的结构示意图;
图12是本发明分布式数据库的一结构示意图;
图13是本发明计算机存储介质一实施例的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
分布式数据库中无法同时对关系数据或者非结构化数据进行良好的存储。
在视频监控中,需要对大量的档案,时空等数据进行存储,本申请通过提供一种分布式数据库,能够良好的实现对数据存储与查询。
本申请提供的分布式数据库包括有物理存储表与逻辑管理表。该物理存储表包括有多个时间分片,多个时间分片以时间属性进行划分,具体地,该时间属性具体可以以一天为周期,或者以一周为周期,或者以其他的时间为周期。这里均不作限定。以一天为周期为例,分布式数据库用于2019年6月的数据,则包括30个时间片,分别为时间属性为2019年6月1日的时间片至时间属性为2019年6月30日的时间片。
每个时间分片均包括多个物理分片,具体的,至少包括有一个物理分片。物理分片作为时间的存储片用于对数据进行存储。
具体请参阅图1,图1是本发明一种分布式数据库的数据存储方法第一实施例的流程示意图,本实施例分布式数据库的数据存储方法包括以下步骤:
S11,接收待存储数据。
接收待存储数据,具体地,该待存储数据具体可能是档案数据,也可以是时空数据。
S12,根据待存储数据的键值确定待存储数据的物理存储路径。
随后可以根据待存储数据的键值来确定存储数据的物理存储路径。
S13,将待存储数据保存至每个时间分片或者部分时间分片下与物理存储路径对应的物理分片中。
在一具体实施例中,随后将待存储数据保存至每个时间分片的物理存储路径对应的物理分片中,在一具体实施例中,也可以是将待存储数据保存至部分的时间分片的物理存储路径对应的物理分片中。
具体地,由于待存储数据的类型从而对待存储数据进行不同方式的存储。
具体请参阅图2,图2是本发明一种分布式数据库的数据存储方法第二实施例的流程示意图,具体待存储数据为档案数据的存储方式,本实施例分布式数据库的数据存储方法包括以下步骤:
S11a,接收待存储数据。
在一具体实施例中,待存储数据具体为档案数据,档案数据的键值包括档案主键值和属性键值。具体地,档案数据的一种表现形式可以是{"person_id":"1","name":"John","sex":1},其中"person_id":"1"中,person_id为档案主键标识,1为档案主键值。属性键值具体是一种属性参数,例如姓名和性别等,其均与时间无关。例如"name":"John"与"sex":1中,name与sex均为属性标识,John与1分别为属性键值。
如果预先定义1为男性,0为女性。即{"person_id":"1","name":"John","sex":1}该档案数据是一条档案主键值为1,姓名为John,性别为男性的数据。
S12a,根据待存储数据的键值确定待存储数据的物理存储路径。
根据档案主键值计算档案数据的档案物理存储路径,具体地,可以利用一致性哈希的复合算法计算键值,具体地是计算档案主键值,从而得到路由值;随后将路由值除以时间分片中的物理分片的数量取余数,并将余数作为物理存储路径。
具体地,每个时间分片中的物理分片的数量可以是一样的,也可以是不同的。针对不同的时间分片,则在进行存储路径查找时,则将路由值除以该时间分片中物理分片的数量后取余数,则可以得到物理存储路径。
在具体实施例中,在时间分片中建立多个物理分片时,则依次给多个物理分片分配序号,并作为该物理分片的物理存储路径。在将路由值除以该时间分片中物理分片的数量后取余后,得到的余数及所需要存储的物理分片的序号。
S13a,将待存储数据保存至每个时间分片或者部分时间分片下与物理存储路径对应的物理分片中。
将档案数据存储于每个时间分片下与档案物理存储路径对应的物理分片中。
则对应将该待存储数据,即档案数据存储至每个时间分片下的与序号的对应的物理分片中。
具体请参阅图3,图3是本发明一种分布式数据库的数据存储方法第三实施例的流程示意图,具体待存储数据为时空数据的存储方式,本实施例分布式数据库的数据存储方法包括以下步骤:
S11b,接收待存储数据。
在一具体实施例中,待存储数据具体为时空数据,时空数据的键值包括关联键值和时间分布键值以及空间分布键值。具体地,时空数据的一种表现形式可以是{"person_id":"1","record_place":"X Road","record_time":"2019-05-01 00:00:00"},其中"person_id":"1"中,person_id为关联健标识,1为关联键值。"record_time":"2019-05-0100:00:00"中,record_time是时间分布键标识,2019-05-01 00:00:00则是时间分布键值,"record_place":"X Road"中,record_place是空间分布键标识,X Road是空间分布键值。
该条时空数据表示为关联键值为1,时间分布键值为2019-05-01 00:00:00,空间分布键值为X Road的数据。即表示为时间为2019-05-01 00:00:00,空间为X Road的一天数据。
S12b,根据待存储数据的键值确定待存储数据的物理存储路径。
根据时间分布键值计算时空数据的时间存储路径。
对时空数据而言,由于具有时间属性,需要将时空数据存储至相应的时间分片中,具体地,通过时间分布键值计算时空数据的时间存储路径,以时间分布键值为2019-05-0100:00:00的时空数据而言,该时间分布键值对应的时间分片即为时间属性为2019年05月01日的时间分片。
在具体实施例中,在建立时间分片时,可以给时间分片标上序号,以2019年5月的时间分片为例。1日至30日分别为1,2,3……30。则在计算时空数据的时间存储路径时,可对时间分布键值进行计算从而得到所需要存储的时间分片的序号。
根据关联键值计算时空数据的物理存储路径。
在具体实施例中,时空数据是与档案数据而关联的,具体地时空数据作为档案数据的子数据,而时空数据具体通过关联键值与档案数据相关联,时空数据的关联键值即其对应的档案数据的档案主键值。
可以根据关联键值计算时空数据的物理存储路径,具体地,可以和档案主键值的计算方法类似。利用一致性哈希的复合算法计算关联键值,从而得到路由值;随后将路由值除以时间分片中的物理分片的数量取余数,并将余数作为物理存储路径。
具体地,上述时间存储路径与物理存储路径可以同时计算,随后再进行取交集,也可以是先计算时间存储路径,随后在时间存储路径对应的时间分片下计算物理存储路径,这里不做限定。
S13b,将待存储数据保存至每个时间分片或者部分时间分片下与物理存储路径对应的物理分片中。
将时空数据存储于时间存储路径对应的时间分片中与时空物理存储路径对应的物理分片中。
即将时空数据存储至于时间存储路径对应的时间分片下属且进一步与物理存储路径所对应的物理分片中。
在具体实施例中,本申请提供分布式数据库还包括逻辑父表与逻辑子表,以用于进行逻辑管理。逻辑父表包括档案主键定义值,逻辑子表包括关联键定义值与时间分布定义值。
在具体实施例中,如果待存储数据为档案数据,则利用档案主键定义值识别档案数据以得到档案主键值。
如果待存储数据为时空数据,利用关联键定义值识别时空数据以得到时空关联键值,利用时间分布定义值识别时空数据以得到时间分布键值。
上述实施例中,提供了一种分布式数据库及存储方法,通过建立时间分片与物理分片,并利用档案数据与时空数据各自的键值,从而可以进行分布式的存储,从而实现了对关系数据的快速存储。
上述分布式数据库的数据存储方法一般由分布式数据库的数据存储装置实现,因而本发明还提出一种分布式数据库的数据存储装置。请参阅图4,图4是本发明分布式数据库的数据存储装置一实施例的结构示意图。本实施例分布式数据库的数据存储装置100包括处理器11和存储器12;存储器12中存储有计算机程序,处理器11用于执行计算机程序以实现如上述分布式数据库的数据存储方法的步骤。
具体请参阅图5,图5是本发明一种分布式数据库的数据查询方法第一实施例的流程示意图,本实施例分布式数据库的数据查询方法包括以下步骤:
对于每个时间分片而言,其存在多个物理分片。物理分片存储了档案数据与时空数据,其中,档案数据作为时空数据的父数据,可以包括多个时空数据。档案数据包括档案主键值和属性键值;时空数据包括关联键值和时间分布键值以及空间分布键值,其中,关联键值与档案主键值关联。
在具体实施例中,一个物理分片可能存储的是某个人的性别,名字等档案数据以及在某一天的时空数据。
S21,获取查询条件。
获取查询条件,该查询条件可以是档案查询条件,也可以是时空查询条件。或者包括了档案查询条件与时空查询条件。
S22,根据查询条件遍历每个时间分片或部分时间分片下的物理分片。
根据查询条件去对所有时间分片下的物理分片,或者部分时间下的物理分片进行遍历,从而获取与查询条件匹配的档案数据或/和时空数据。
S23,输出与查询条件匹配的档案数据或/和时空数据,以作为查询结果。
在遍历后,则输出与查询条件匹配的档案数据或/和时空数据,从而作为查询结果。
具体请参阅图6,图6是本发明一种分布式数据库的数据查询方法第二实施例的流程示意图,其中查询条件为档案查询条件,本实施例分布式数据库的数据查询方法包括以下步骤:
S21a,获取查询条件。
在一具体实施例中,查询条件为档案查询条件,该档案查询条件至少包括了属性条件。其具体可以是一条,也可以是两条。如可以是姓名或性别,也可以是姓名和性别等等。
S22a,根据查询条件遍历每个时间分片或部分时间分片下的物理分片。
由于档案查询条件与时间无关,因此可以根据档案查询条件遍历每个时间分片下的物理分片,即遍历所有时间分片下的物理分片。
档案查询条件的格式可以为{"档案查询条件":["sex=1"]},其属性条件为"sex=1",则根据该查询条件遍历所有时间分片下的物理分片。从而获取到属性键值也为1的档案数据。
S23a,输出与查询条件匹配的档案数据或/和时空数据,以作为查询结果。
输出属性键值与属性条件匹配的档案数据,以上述档案查询条件为例,则输出属性键值sex=1为1的档案数据,即输出性别为男的所有档案数据,以作为查询结果。
在一具体实施例中,还可以输出档案数据的子数据,即输出档案数据的时空数据,从而作为查询结果。
具体请参阅图7,图7是本发明一种分布式数据库的数据查询方法第三实施例的流程示意图,其中查询条件为时空查询条件,本实施例分布式数据库的数据查询方法包括以下步骤:
S21b,获取查询条件。
在一具体实施例中,该查询条件为时空查询条件,该时空查询条件包括有时间分布条件。
S22b,根据查询条件遍历每个时间分片或部分时间分片下的物理分片。
在一具体实施例中,时空查询条件的格式具体可以是{["时空查询条件":["record_time=2019-05-01 00:00:00"},该时间分布条件为2019-05-01 00:00:00。根据该时间分布条件,确定时间属性与时间分布条件匹配的时间分片,其与上述实施例中的存储方法有点相似,这里不再赘述。随后对该时间分片下的所有物理分片进行遍历。
S23b,输出与查询条件匹配的档案数据或/和时空数据,以作为查询结果。
输出物理分片下时间分布键值与时间分布条件匹配的时空数据及其档案数据。以上述档案查询条件为例,则输出时间分布键值record_time=2019-05-01 00:00:00的时空数据。
在具体实施例中,还需要输出该时空数据对应的档案数据,具体地,可以根据该时空数据的关联键值与档案主键值的关联,确定该时空数据的档案数据,并输出以作为查询结果。
在具体实施例中,时空查询条件还包括有空间分布条件,如{["record_time=2019-05-01 00:00:00","record_place=X Road"]},其空间分布条件record_place=XRoad,则在输出时,需要输出物理分片下时间分布键值与时间分布条件匹配且空间分布键值与空间分布条件匹配的时空数据及其对应的档案数据,即输出时空分布值与空间分布键值分别与时空分布条件及空间分布条件对应的时空数据,同时根据其关联键值与档案主键值的关联,输出时空数据的档案数据,以上述为例,则输出时间分布键值record_time=2019-05-01 00:00:00,空间分布键值record_place=X Road的时空数据与其对应的档案数据,从而作为查询结果。
具体请参阅图8,图8是本发明一种分布式数据库的数据查询方法第四实施例的流程示意图,其中查询条件包括档案查询条件与时空查询条件,本实施例分布式数据库的数据查询方法包括以下步骤:
S21c,获取查询条件。
在一具体实施例中,该查询条件包括档案查询条件与时空查询条件。其中,档案查询条件包括属性条件,时空查询条件包括时间分布条件。
S22c,根据查询条件遍历每个时间分片或部分时间分片下的物理分片。
在一具体实施例中,查询条件可以为{"档案查询条件":["sex=1"],["时空查询条件":["record_time=2019-05-01 00:00:00"]},根据档案查询条件去遍历所有时间分片的物理分片,确定属性键值与属性条件匹配的档案数据。并判断匹配成功的档案数据的数量是否大于预设阈值。
若是,即大于阈值,则确定时间属性与时间分布条件匹配的时间分片,并对该时间分片下的物理分片进行遍历,确定物理分片中时间分布键值与时间分布条件匹配的时空数据。
若否,即小于阈值,则确定时间属性与时间分布条件匹配的时间分片,对该时间分片下的属性键值与属性条件匹配的档案数据所属的物理分片进行遍历。即直接遍历与时间分布条件对应的时间分片下,且与属性键值对应的档案数据所属的物理分片。
S23c,输出与查询条件匹配的档案数据或/和时空数据,以作为查询结果。
如果档案数据的数量大于阈值,将遍历获取的档案数据的档案主键值与时空数据的关联键值进行匹配运算,并输出档案主键值与关联键值相匹配的档案数据及其时空数据,以作为查询结果。
即根据档案数据的档案主键值与时空数据的关联键值做匹配运算,确定与时空数据的关联键值对应上的档案数据。
以上述查询条件为例,在一实施例中,在时间分片下的所有物理分片上查询sex=1的档案数据,得到结果集:[{"id":"1","person_id":"1","name":"John","sex":1};{"id":"1","person_id":"2","name":"Jonny","sex":1}]。
在确定的时间分片上的物理分片上查询record_time=2019-05-01 00:00:00的时空数据,得到结果集["id":"1",{"person_id":"1","record_place":"X Road","record_time":"2019-05-01 00:00:00"};{"id":"1","person_id":"3","record_place":"Y Road","record_time":"2019-05-01 00:00:00"}]。
则对上述档案数据的结果集与时空数据的结果集做交集,则时空数据{"id":"1","person_id":"1","record_place":"X Road","record_time":"2019-05-01 00:00:00"}根据关联键值确定档案数据{"id":"1","person_id":"1","name":"John","sex":1}。从而输出档案数据{"id":"1","person_id":"1","name":"John","sex":1},以作为查询结果。其时空数据{"id":"1","person_id":"1","record_place":"X Road","record_time":"2019-05-01 00:00:00"}不作为查询结果返回。
其中,"id":"1"中,1是指该档案数据或者时空数据所属的物理分片的序号,仅作为举例加入,在具体实施例中,可以根据算法和主键/关联键计算,不会存储在记录中。
如果档案数据的数量小于阈值,确定所遍历的物理分片中时间分布键值与时间分布条件匹配的时空数据,输出时空数据及其档案数据,以作为查询结果。
在具体实施例中,时空条件可能还包括空间分布条件,其查询方式与上述实施例中类似,这里不再赘述。
上述实施例中,通过判断档案数据的数量值,从而采用不同的遍历方法,由于对于大量数据而言,采用交集的方式能够加快查询的速度,因此,通过设定一个阈值,从而提供最优的查询方式,保证查询效率。
在具体实施例中,查询条件还可以进一步包括分页条件与排序条件,分页条件包括档案数据的每页条数值,排序条件包括档案主键值的排序方式。
查询条件的格式可以为{"档案查询条件":["sex=1"],["时空查询条件":["record_time=2019-05-01 00:00:00","record_place=X Road"]],"分页条件":"每页3条","排序条件":"根据id倒序排列"}。
在根据档案查询条件与时空查询条件确定好结果集后,
首先,根据查询结果中档案数据的档案ID依照排序方式对档案数据进行排序。即根据档案数据中"id":"Z",Z的大小进行排序,在本实施中,具体是从大排到小。
随后,依照每页条数值对排序后的档案数据进行分页,如以上述分页条件为例。则将三条分为一页,从而使得每页显示每页条数值的档案数据及档案数据的时空数据。
在具体实施例中,在每查询完一个物理分片后,可以先判断结果集的数量,确定数量是否满足分页条件的要求,如能达到3条的最低要求,如果可以,可以先进行分页。如果不行,则可以依次等整个过程查询玩后,在进行分页显示。
在具体实施例中,分页条件还可以是"分页条件":"每页3条取第1页"。即进一步包括所显示的页面数目,如只显示第一页。
上述实施例中,通过提供一种分布式数据库及其查询方法,通过提供时间分片与物理分片,在查询条件包括档案查询条件与时空查询条件时,能够分别通过时空查询条件和档案查询条件对数据进行独立的查询,从而能够快速遍历到所需要的数据,而不需逐级进行遍历,从而能够提高数据查询的效率。
上述分布式数据库的数据查询方法一般由分布式数据库的数据查询装置实现,因而本发明还提出一种分布式数据库的数据查询装置。请参阅图9,图9是本发明分布式数据库的数据查询装置一实施例的结构示意图。本实施例分布式数据库的数据查询装置200包括处理器21和存储器22;存储器22中存储有计算机程序,处理器21用于执行计算机程序以实现如上述分布式数据库的数据查询方法的步骤。
在具体实施例中,分布式数据库的数据存储装置100与分布式数据库的数据查询装置200具体可以是同一个装置,这里不做限定。
如图10所示,本申请还提供一种分布式数据库的数据存储装置400,该分布式数据库的数据存储装置400包括接收模块41,确定模块42,存储模块43。其中,接收模块41用于接收待存储数据;确定模块42用于根据待存储数据的键值确定待存储数据的物理存储路径;存储模块43用于将待存储数据保存至每个时间分片或者部分时间分片下与物理存储路径对应的物理分片中。其具体的步骤上述实施例已经有说明,这里不再赘述。
如图11所示,本申请还提供一种分布式数据库的数据查询装置500,该分布式数据库的数据查询装置500包括获取模块51,遍历模块52,输出模块53。获取模块51用于获取查询条件,遍历模块52用于根据查询条件遍历每个时间分片或部分时间分片下的物理分片,输出模块53则用于输出与查询条件匹配的档案数据或/和时空数据,以作为查询结果。其具体的步骤上述实施例已经有说明,这里不再赘述。
如图12,本申请还提供一种分布式数据库,该分布式数据库包括存储管理器与逻辑管理器,存储管理器包括多个时间分片,多个时间分片以时间属性进行划分,每个时间分片则包括了多个物理分片,多个物理分片以路由属性进行划分。物理分片作为实际的存储片可以存储有档案数据与时空数据。其中档案数据是时空数据的父数据,时空数据为档案数据的子数据,一个档案数据可以对应多个时间数据,一个时空数据仅对应一个档案数据。逻辑管理器用于对存储管理器进行逻辑管理,包括逻辑父表与逻辑子表,其中逻辑父表包括有档案主键定义值,档案主键定义值可以识别档案数据以得到档案主键值。逻辑子表包括关联键定义值与时间分布定义值。联键定义值可以识别时空数据以得到时空关联键值,时间分布定义值可以识别时空数据以得到时间分布键值。
上述分布式数据库的数据存储方法与分布式数据库的数据查询方法的逻辑过程以计算机程序呈现,在计算机程序方面,若其作为独立的软件产品销售或使用时,其可存储在计算机存储介质中,因而本发明提出一种计算机存储介质。请参阅图13,图13是本发明计算机存储介质一实施例的结构示意图,本实施例计算机存储介质300中存储有计算机程序31,计算机程序被处理器执行时实现上述配网方法或控制方法。
该计算机存储介质300具体可以为U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory,)、磁碟或者光盘等可以存储计算机程序的介质,或者也可以为存储有该计算机程序的服务器,该服务器可将存储的计算机程序发送给其他设备运行,或者也可以自运行该存储的计算机程序。该计算机存储介质300从物理实体上来看,可以为多个实体的组合,例如多个服务器、服务器加存储器、或存储器加移动硬盘等多种组合方式。
以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (9)
1.一种分布式数据库的数据存储方法,其特征在于,所述分布式数据库包括多个时间分片,所述多个时间分片以时间属性划分;每一所述时间分片包括多个物理分片;所述数据存储方法包括:
接收待存储数据;
根据所述待存储数据的键值确定所述待存储数据的物理存储路径;
将所述待存储数据保存至每个时间分片或者部分时间分片下与所述物理存储路径对应的物理分片中;
所述分布式数据库还包括逻辑父表与逻辑子表,所述逻辑父表包括档案主键定义值,所述逻辑子表包括关联键定义值与时间分布定义值;所述数据存储方法包括:
所述待存储数据为档案数据,利用所述档案主键定义值识别所述档案数据以得到档案主键值;
所述待存储数据为时空数据,利用所述关联键定义值识别所述时空数据以得到关联键值,所述关联键值与所述档案主键值关联,利用所述时间分布定义值识别所述时空数据以得到时间分布键值。
2.根据权利要求1所述的数据存储方法,其特征在于,所述待存储数据为档案数据,所述档案数据的键值包括档案主键值和属性键值;
所述根据所述待存储数据的键值确定所述待存储数据的物理存储路径,包括:
根据所述档案主键值计算所述档案数据的档案物理存储路径;
所述将所述待存储数据保存至每个时间分片或者部分时间分片下与所述物理存储路径对应的物理分片中,包括:
将所述档案数据存储于每个所述时间分片下与所述档案物理存储路径对应的物理分片中。
3.根据权利要求1所述的数据存储方法,其特征在于,所述待存储数据为时空数据,所述时空数据的键值包括关联键值和时间分布键值以及空间分布键值;
所述根据所述待存储数据的键值确定所述待存储数据的物理存储路径,包括:
根据所述时间分布键值计算所述时空数据的时间存储路径,根据所述关联键值计算所述时空数据的物理存储路径;
所述将所述待存储数据保存至每个时间分片或者部分时间分片下与所述物理存储路径对应的物理分片中,包括:
将所述时空数据存储于所述时间存储路径对应的时间分片中与所述物理存储路径对应的物理分片中。
4.根据权利要求1所述的数据存储方法,所述根据所述待存储数据的键值确定所述待存储数据的物理存储路径,包括:
利用一致性哈希的复合算法计算所述键值,得到路由值;
计算路由值除以所述时间分片中物理分片的数量取余数;
将所取得的余数作为所述物理存储路径。
5.一种分布式数据库的数据查询方法,其特征在于,所述分布式数据库包括多个时间分片,所述多个时间分片以时间属性划分;每一所述时间分片包括多个物理分片;所述物理分片中存储有档案数据和时空数据,所述档案数据包括档案主键值和属性键值;所述时空数据包括关联键值和时间分布键值以及空间分布键值;所述关联键值与所述档案主键值关联;所述数据查询方法包括:
获取查询条件;
根据查询条件遍历每个时间分片或部分时间分片下的物理分片;
输出与所述查询条件匹配的档案数据或/和时空数据,以作为查询结果;
其中,所述查询条件包括档案查询条件与时空查询条件,所述档案查询条件包括属性条件,所述时空查询条件包括时间分布条件;
所述根据查询条件遍历每个时间分片或部分时间分片下的物理分片,包括:
确定属性键值与所述属性条件匹配的档案数据;
确定所述档案数据的数量是否大于预设阈值;
若是,确定时间属性与所述时间分布条件匹配的时间分片,对所述时间分片下的所述物理分片进行遍历;
确定所述物理分片中时间分布键值与所述时间分布条件匹配的时空数据;
所述输出与所述查询条件匹配的档案数据或/和时空数据,以作为查询结果,包括:
将所述档案数据的档案主键值与所述时空数据的关联键值进行匹配运算;
输出档案主键值与关联键值相匹配的档案数据及其时空数据,以作为查询结果;
若否,确定时间属性与所述时间分布条件匹配的时间分片,对所述时间分片下的属性键值与所述属性条件匹配的档案数据所属的物理分片进行遍历;
所述输出与所述查询条件匹配的档案数据或/和时空数据,以作为查询结果,包括:
确定所述物理分片中时间分布键值与所述时间分布条件匹配的时空数据,输出所述时空数据及其档案数据,以作为查询结果。
6.根据权利要求5所述的数据查询方法,其特征在于,所述查询条件还包括分页条件与排序条件,所述分页条件包括所述档案数据的每页条数值,所述排序条件包括所述档案主键值的排序方式;
所述查询方法还包括:
根据所述查询结果中档案数据的档案主键值依照所述排序方式对所述档案数据进行排序;
依照所述每页条数值对所述排序后的档案数据进行分页,以使得每页显示所述每页条数值的档案数据及所述档案数据的时空数据。
7.一种分布式数据库的数据存储装置,其特征在于,所述分布式数据库的数据存储装置包括处理器和存储器;所述存储器中存储有计算机程序,所述处理器用于执行所述计算机程序以实现如权利要求1-4中任一项所述方法的步骤。
8.一种分布式数据库的数据查询装置,其特征在于,所述分布式数据库的数据查询装置包括处理器和存储器;所述存储器中存储有计算机程序,所述处理器用于执行所述计算机程序以实现如权利要求5或6中任一项所述方法的步骤。
9.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序被执行时实现如权利要求1-6中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910854499.5A CN110765126B (zh) | 2019-09-10 | 2019-09-10 | 分布式数据库的数据存储及查询方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910854499.5A CN110765126B (zh) | 2019-09-10 | 2019-09-10 | 分布式数据库的数据存储及查询方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110765126A CN110765126A (zh) | 2020-02-07 |
CN110765126B true CN110765126B (zh) | 2023-02-07 |
Family
ID=69329410
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910854499.5A Active CN110765126B (zh) | 2019-09-10 | 2019-09-10 | 分布式数据库的数据存储及查询方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110765126B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111930817A (zh) * | 2020-07-28 | 2020-11-13 | 银盛支付服务股份有限公司 | 一种基于大数据的分布式非结构化数据库关联查询方法 |
CN112463825A (zh) * | 2020-11-02 | 2021-03-09 | 中国建设银行股份有限公司 | Elasticsearch集群保护装置、方法、存储介质及计算机设备 |
CN112527891B (zh) * | 2020-11-24 | 2022-06-03 | 武汉联影医疗科技有限公司 | 数据存储方法、装置、设备和存储介质 |
CN112328842B (zh) * | 2021-01-05 | 2022-03-25 | 北京谷数科技股份有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
CN112380276B (zh) * | 2021-01-15 | 2021-09-07 | 四川新网银行股份有限公司 | 一种分布式***分库分表后非分片键字段查询数据的方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101727465B (zh) * | 2008-11-03 | 2011-12-21 | ***通信集团公司 | 分布式列存储数据库索引建立、查询方法及装置与*** |
US20130179476A1 (en) * | 2012-01-09 | 2013-07-11 | Microsoft Corporation | Scalable billing usage data storage |
JP6032467B2 (ja) * | 2012-06-18 | 2016-11-30 | 株式会社日立製作所 | 時空間データ管理システム、時空間データ管理方法、及びそのプログラム |
WO2017062288A1 (en) * | 2015-10-07 | 2017-04-13 | Oracle International Corporation | Relational database organization for sharding |
-
2019
- 2019-09-10 CN CN201910854499.5A patent/CN110765126B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110765126A (zh) | 2020-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110765126B (zh) | 分布式数据库的数据存储及查询方法、装置及存储介质 | |
CN110019396B (zh) | 一种基于分布式多维分析的数据分析***及方法 | |
CN111158977B (zh) | 一种异常事件根因定位方法及装置 | |
US11132346B2 (en) | Information processing method and apparatus | |
CN106462583B (zh) | 用于快速数据分析的***和方法 | |
CN102667761B (zh) | 可扩展的集群数据库 | |
US20240013301A1 (en) | Systems and methods of creating order lifecycles via daisy chain linkage | |
US20090271385A1 (en) | System and method for parallel query evaluation | |
WO2017096892A1 (zh) | 索引构建方法、查询方法及对应装置、设备、计算机存储介质 | |
US7895171B2 (en) | Compressibility estimation of non-unique indexes in a database management system | |
CN110019072B (zh) | 基于实时数据的ab实验方法及*** | |
US20140279195A1 (en) | Method and system for monitoring and recommending relevant products | |
CN110990372A (zh) | 一种维度数据的处理方法及装置、数据查询方法及装置 | |
JP2013519941A (ja) | eコマーストランザクションデータ会計のための方法およびシステム | |
CN110716950A (zh) | 一种口径***建立方法、装置、设备及计算机存储介质 | |
CN111932342B (zh) | 基于Apriori算法的用户冷启动产品推荐方法及*** | |
CN111125518B (zh) | 家电信息推荐的***及方法 | |
CN113361954A (zh) | 归因分析方法、装置、设备及存储介质 | |
US20140289268A1 (en) | Systems and methods of rationing data assembly resources | |
TW201725499A (zh) | 基於圖的分析用戶的方法和系統 | |
CN107592223A (zh) | 一种基于大数据的智能告警处理方法 | |
CN107133367A (zh) | 一种信息处理方法及***、服务器 | |
CN111241381A (zh) | 信息推荐方法、装置、电子设备及计算机可读存储介质 | |
CN113377789A (zh) | 数据库变更数据的处理方法、装置、计算机设备和介质 | |
CN110851758B (zh) | 一种网页访客数量统计方法及装置 |
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 |