CN111563125B - 数据存储系统、数据查询方法及装置 - Google Patents
数据存储系统、数据查询方法及装置 Download PDFInfo
- Publication number
- CN111563125B CN111563125B CN202010380917.4A CN202010380917A CN111563125B CN 111563125 B CN111563125 B CN 111563125B CN 202010380917 A CN202010380917 A CN 202010380917A CN 111563125 B CN111563125 B CN 111563125B
- Authority
- CN
- China
- Prior art keywords
- data
- query
- database
- date
- recent
- 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
- 238000013500 data storage Methods 0.000 title claims abstract description 66
- 238000000034 method Methods 0.000 title claims abstract description 34
- 238000005192 partition Methods 0.000 claims abstract description 33
- 238000003860 storage Methods 0.000 claims description 45
- 230000015654 memory Effects 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 9
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 238000012545 processing Methods 0.000 description 17
- 238000007726 management method Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000007781 pre-processing Methods 0.000 description 4
- 238000000638 solvent extraction Methods 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 238000009826 distribution Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据存储系统、数据查询方法及装置,该数据存储系统包括:近期数据库以及超期数据库,所述近期数据库用于存储预设的近N年的数据,所述超期数据库用于存储所述近N年以前的数据;所述近期数据库包括多个主题库,每个主题库分别用于存储所述近N年的数据中各自对应的业务类型的数据;每个所述主题库均包括各自对应的近期表,所述近期表用于存储对应的主题库存储的数据中预设的近M天的数据,所述近期表按照地区字段进行一级分区并按照数据产生的日期进行二级分区。本发明提供了一种新的数据存储结构,有助于提升数据查询的效率。
Description
技术领域
本发明涉及数据库技术领域,具体而言,涉及一种数据存储系统、数据查询方法及装置。
背景技术
目前超大型企业通常会有海量数据存储以及联机查询需求,数据存储系统(数据库集群)中会累积存储TB级甚至接近PB级的数据,原因有如下两个方面:1)横向集中存储不同业务类型的数据,因各业务线会对接不同的应用源系统,不同应用源系统将查询数据分发到数据存储系统并加载,最终导致各种不同业务类型的数据集中存储在数据存储系统;2)纵向时间累积,源系统交易数据会不断生成,数据量会逐年提高,导致数据存储系统存储的数据会越来越多。目前随着数据存储系统中数据不断的累积,数据存储系统中的数据量的显著的增长,查询数据所需的时间也明显的增加,已经渐渐难以满足所需的查询效率。因此现有技术缺少一种新的数据存储架构,以提升数据查询的效率。
发明内容
本发明为了解决上述背景技术中的至少一个技术问题,提出了一种数据存储系统、数据查询方法及装置。
为了实现上述目的,根据本发明的一个方面,提供了一种数据存储系统,该数据存储系统包括:近期数据库以及超期数据库,所述近期数据库用于存储预设的近N年的数据,所述超期数据库用于存储所述近N年以前的数据;
所述近期数据库包括多个主题库,每个主题库分别用于存储所述近N年的数据中各自对应的业务类型的数据;每个所述主题库均包括各自对应的近期表,所述近期表用于存储对应的主题库存储的数据中预设的近M天的数据,所述近期表按照地区字段进行一级分区并按照数据产生的日期进行二级分区。
可选的,每个所述主题库还包括各自对应的超期表,所述超期表用于存储对应的主题库存储的数据中除去所述近M天的数据之外的数据,所述超期表按照地区字段进行一级分区并按照数据产生的月份进行二级分区。
可选的,所述超期数据库包括多个年表,每个所述年表存储各自对应的年份的数据,每个所述年表按照数据产生的月份进行一级分区并按照地区字段进行二级分区。
为了实现上述目的,根据本发明的另一方面,提供了一种数据查询方法,该方法包括:
接收用户的数据查询请求,其中,所述数据查询请求包括:查询日期范围、期望返回数据条数以及查询接口代码;
根据所述查询接口代码确定查询的业务类型;
根据所述查询的业务类型以及所述查询日期范围从上述数据存储系统中查询出满足所述期望返回数据条数的数据,并将查询出的数据发送给所述用户。
可选的,所述根据所述查询的业务类型以及所述查询日期范围从数据存储系统中查询出满足所述期望返回数据条数的数据,包括:
根据所述查询日期范围确定查询的存储节点,其中,所述存储节点包括所述数据存储系统中的近期数据库和/或超期数据库;
若确定出的查询的存储节点包括近期数据库,则根据所述查询的业务类型确定主题库,并根据所述查询日期范围确定查询的主题库中的数据表,其中所述数据表包括近期表和/或超期表;
若确定出的查询的存储节点包括超期数据库,则根据所述查询日期范围确定查询的超期数据库中的年表。
可选的,所述根据所述查询的业务类型以及所述查询日期范围从数据存储系统中查询出满足所述期望返回数据条数的数据,包括:
清空预设的数据容器,并将所述数据容器的查询数据剩余条数参数初始化为所述期望返回数据条数;
根据所述查询日期范围生成查询队列,所述查询队列包括至少一个查询节点,其中,所述查询节点包括:所述近期表、所述超期表以及所述年表;
依次查询所述查询队列中的各查询节点并将查询到的数据存储到所述数据容器,直至所述查询数据剩余条数参数为0或所述查询队列中的各查询节点均已查询完毕。
为了实现上述目的,根据本发明的另一方面,提供了一种数据查询装置,该装置包括:
查询请求接收单元,用于接收用户的数据查询请求,其中,所述数据查询请求包括:查询日期范围、期望返回数据条数以及查询接口代码;
业务类型确定单元,用于根据所述查询接口代码确定查询的业务类型;
数据查询单元,用于根据所述查询的业务类型以及所述查询日期范围从上述数据存储系统中查询出满足所述期望返回数据条数的数据,并将查询出的数据发送给所述用户。
本发明的有益效果为:本发明实施例通过设置近期数据库和超期数据库将数据按数据产生时间进行划分,由于目前在数据查询中约80%的查询都是查询近期的数据,因此通过将近期和超期进行划分提升了数据查询效率,此外本发明还按照业务类型将近期数据库划分成多个主题库,便于数据分类查询,也能提高数据查询效率,此外,本发明考虑到在近期数据查询中约70%的查询都是查询近一个月的数据,因此本发明进一步在各主题库中划分出近期表,用于存储近M天的数据,更深入的对近期表按照地区字段进行一级分区以及按照数据产生的日期进行二级分区,进一步的提升了数据查询的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是本发明实施例数据储存系统的组成结构框图;
图2是本发明实施例主题库的结构示意图;
图3是本发明实施例超期数据库的结构示意图;
图4是本发明实施例数据储存系统的多活架构示意图;
图5是本发明实施例数据查询方法的流程图;
图6是本发明实施例数据查询的第一流程图;
图7是本发明实施例数据查询的第二流程图;
图8是本发明实施例数据查询服务系统示意图;
图9是本发明实施例数据查询服务的流程图;
图10是本发明实施例查询请求处理流程图;
图11是本发明实施例单年份拆分查询流程图;
图12是本发明实施例计算机设备示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
本发明基于oracle数据库技术,通过按业务主题、按数据分布地区、按数据生命周期等维度对数据储存系统进行划分,从而提升了TB级数据的查询性能。需要说明的是,本发明说明书中的数据储存系统可以为数据库或数据库集群。
图1是本发明实施例数据储存系统的组成结构框图,如图1所示,本发明实施例的数据储存系统包括:近期数据库以及超期数据库,所述近期数据库用于存储预设的近N年的数据,所述超期数据库用于存储所述近N年以前的数据。在本发明实施例中,近N年表示当前年份往前数N年至今这一段时间,更具体为当前年份往前数N年的那一年的一月一日至今日这一段时间,例如,当前为2020年,N等于3,此时当前年份往前数3年为2017年,此时的近N年表示自2017年至今的这一段时间,即2017年、2018年和2019年全年以及当前年份的总和。近N年的数据表示数据产生时间在当前年份往前数N年至今这一段时间内的数据。在本发明实施例中,N为正整数,优选的N等于3。在本发明实施例中,近期数据库包括多个主题库,每个主题库分别用于存储所述近N年的数据中各自对应的业务类型的数据。
本发明对原有单个数据库通过两个维度划分,1)横向按“业务类型”划分。横向将不同业务类型的数据拆分成不同的主题库(oracle数据库)进行存储。举例说明,电商企业类系统可拆分为:订单库、物流库、支付库、客户管理库等;银行类系统可拆分为个金库、信用卡库、对公库及理财库等。2)纵向按“数据时间”划分。各主题库存储近N年数据,需要保证预留满足N年的主题数据存储及查询性能。当不能满足N年的存储及查询性能需求时,可进一步拆分为多个子主题库。针对N年以前的数据则统一按年切分,合并各业务类型的数据,集中存储于超期数据库中,超期数据库的存储规则可以为:1)单个超期数据库存储X年数据,2)按数据的历史时长,可拆分出多个超期数据库。例如,N年以前数据拆分成3个超期数据库,数据产生最早时间为2003年。一般情况下,以生产实践经验作为依据,如上描述中的参数N为3,X为5,即各主题库一般存储3年数据,单个超期数据库一般存储5年历史数据,可按不同企业实际情况进行调整。技术指导原则是:1)80%的查询请求集中于最近的N年,2)各个主题库、超期数据库系统所用软硬件资源负载相对均衡,避免资源过度倾斜。
如图2所示,在本发明可选实施例中,每个所述主题库均包括各自对应的近期表,所述近期表用于存储对应的主题库存储的数据中预设的近M天的数据,所述近期表按照地区字段进行一级分区并按照数据产生的日期进行二级分区。在本发明实施例中,这里的近M天与上述的近N年类似,近M天表示当日往前数M日至今这一段时间,更具体可以为当日往前数M日那一天的零时至当前时间这一段时间。在本发明实施例中,M为正整数,优选的,M等于30,即近期表为月表,用于存储近一个月(30天)的数据。在本发明一实施例中,每个所述主题库还包括各自对应的超期表,所述超期表用于存储对应的主题库存储的数据中除去所述近M天的数据之外的数据,所述超期表按照地区字段进行一级分区并按照数据产生的月份进行二级分区。
本发明实施例针对每个主题库内部,可对数据表进行拆分为近期表和超期表,进一步提升查询性能。在未拆分前,一个主题库内部会有多张不同业务含义的数据表,每张表存储近N年数据,即便建立索引,单张表的搜索空间也是十分庞大,查询效率不高。在一般用户使用查询场景中,客户查询请求可能70%都集中于近M(优选为30)天的时间范围内,可按数据产生时间或者业务日期维度拆分为近期表和超期表,命名规则上,近期表可用“_MONTH”作为后缀,超期表可用“_DAT”作为后缀,也可进行其他方式命名。在本发明可选实施例中,超期表存储近一个月的数据,这样针对70%的用户请求就省去了12×N-1个月的数据搜索空间。针对近期表可按业务所在区域,即地区字段进行一级分区,按数据产生日期或者业务日期进行二级分区,针对该表查询字段建立对应索引以进一步提升查询效率。超期表存储近N年的数据,剩下的30%的用户查询请求(1月以前N年以内),则可查询超期表。针对超期表可按业务所在区域,即地区字段进行一级分区,按数据产生月份或业务月份,进行二级分区,针对该表查询字段(如业务日期等)可以建立对应索引以进一步提升查询效率。在本发明一可选实施例中,超期表中的数据可以按照年份进行分类存储,即将超期表划分成多个年表。针对热点数据,可以通过近期表和超期表非均匀切分,存储不同时间区段的数据减少不必要的查询搜索空间,提升数据库系统软硬件资源使用率。通过近期表和超期表内部进行一级二级分区,关键字段建索引等手段,满足数据查询性能要求。
如图3所示,在本发明一实施例中,每个超期数据库包括多个年表,每个所述年表存储各自对应的年份的数据,每个所述年表按照数据产生的月份进行一级分区并按照地区字段进行二级分区。
在本发明一实施例中,存储N年以前数据的单个超期数据库内部数据按如下逻辑进行存储:1)因超期数据库为20%用户查询请求提供服务,其数据查询频度不高,故从节约资源的角度考虑,超期数据库将合并存储各个业务类型的数据,2)对每张数据表按照年份拆分成多张年表,进一步提升查询性能。用户查询N年以前的数据时,其查询日期区间分布基本均匀,故针对一张大表进行拆分时,可按年切分,即拆分成年表。命名规则上,可用该表所存储数据年份作为后缀,比如2003年的年表后缀名为“_2003”。当用户请求查询N年以前某年某月某天数据时,搜索空间是1年的数据,省去了其他年数据的搜索空间。在本发明可选实施例中,针对年表,可按数据产生月份或业务月份,进行一级分区,按业务所在区域,即地区字段进行二级分区,针对该表的查询字段(如查询数据日期等)建立对应的索引以进一步提升查询效率。
在本发明可选实施例中,将单个超期数据库中的数据按照年份拆分成多张年表后,可针对这多张年表建立视图,命名规则上以“VIEW_”作为前缀。建视图的好处是,查询程序在查询数据时,不需要针对不同年份的数据去查不同的年表,只要以视图为入口,传入年份,统一查询视图,通过oracle的视图机制实现自动路由查询对应的年表数据。具体创建视图示例代码可以如下(假设原表为订单表T_ORDER_LIST):
create or replace view view_order_list as
select field1--其它字段略
from t_order_list_2013
where pkg_util.get_year='2013'
union all
select field1--其它字段略
from t_order_list_2014
where pkg_util.get_year='2014'
union all
select field1--其它字段略
from t_order_list_2015
where pkg_util.get_year='2015'
union all
select field1--其它字段略
from t_order_list_2016
where pkg_util.get_year='2016'
union all
select field1--其它字段略
from t_order_list_2017
where pkg_util.get_year='2017'
在本发明其他可选实施例中,上述创建视图代码所用到的pkg_util程序包实现示例如下:
通过创建视图,对于查询服务开发人员而言,只要按如下方式就能统一查询超期数据库中的所有年表,代码不需要维护多张表,且一次查询仅搜索一张年表的数据:
select field1--其它字段略
from view_order_list
where pkg_util.set_year('2013')='2013'
--其它查询条件略。
由以上实施例可以看出,本发明通过对非热点历史数据按年均匀切分成不同年表的方式,减少不必要的查询搜索空间,提升查询效率。通过针对非热点数据合并主题库节约软硬件成本。通过年表内部进行一级二级分区,关键字段建索引等手段,实现满足数据查询性能要求。
通过图1至图3的技术方案实现阐述,其实发现已经部分解决了单点问题。比如主题库1发生灾难宕机,只会影响主题库1的数据查询,并不会影响主题库2等其他数据的查询服务。一定程度上已经缓和了单点的风险问题。
为了彻底解决单点问题,本发明提出来参考图4的多活架构示意图。在同城或者异地部署相同的数据存储系统(即查询库集群),每个数据存储系统处于相同地位,各数据存储系统通过负载均衡的方式对外提供数据查询服务。每个数据存储系统都包含了同样的主题库和超期数据库,都会从源系统通过文件离线传输、消息中间件准实时分发等方式加载数据。当地区A的数据存储系统发生灾难时,查询流量可切换至地区B或者地区C的数据存储系统。
综合上述说明,不难发现本发明从如下几个方面解决了原先单库部署的几个问题,1)通过业务横向主题库拆分、纵向时间维度拆分以及各个主题库内部及超期数据库内部的一级二级分区,建立索引等手段的综合运用,将原先单库存储单库查询的性能瓶颈,分而治之,将存储查询性能压力逐级传导至不同维度的数据库,不同维度的数据分区,不同维度的字段索引。解决了原先数据不能存,不能查的问题。2)通过拆分不同数据库缓和单点故障问题(主题库1发生灾难宕机,只会影响主题库1的数据查询,并不会影响主题库2等其他数据的查询服务);多地区部署情况下,当单地区发生故障,将流量分流到其它地区,实现持续不间断服务,彻底解决单点故障问题。3)当用户查询近N年数据业务类型1数据时,只要从主题库1去查询对应数据即可。当分析人员分析不同业务主题的数据时,也只要找对应主题库即可。不需要再额外对表进行划分。解决了管理视图不清晰,难以快速开发特定业务数据查询服务问题。
本发明的另一方面,还提出了一种基于上述数据存储系统的数据查询方法,如图5所示,本发明实施例的数据查询方法包括步骤S101至步骤S103。
步骤S101,接收用户的数据查询请求,其中,所述数据查询请求包括:查询日期范围、期望返回数据条数以及查询接口代码。
在本发明可选实施例中,查询日期范围包括查询起始日期和查询结束日期。在本发明实施例中,所述数据查询请求还包括数据查询条件。
步骤S102,根据所述查询接口代码确定查询的业务类型。
在本发明实施例中,本发明查询接口代码对应有预设的定义信息,包括接口涉及的业务类型、对应的查询模拟器类定义以及接口描述等信息。
步骤S103,根据所述查询的业务类型以及所述查询日期范围从数据存储系统中查询出满足所述期望返回数据条数的数据,并将查询出的数据发送给所述用户,其中,所述数据存储系统可以为上述任意一个实施例所述的数据存储系统。
在本发明实施例中,数据存储系统包括存储N年内数据的近期数据库以及存储N年以前数据的超期数据库,近期数据库中根据业务类型划分为多个主题库,主题库又根据时间划分为超期表和近期表,每个超期数据库中的数据划分成年表。本步骤根据查询日期范围确定出本次查询对应的数据表,该数据表可以为主题库中的超期表和近期表以及超期数据库中的年表。进而本步骤根据确定出的本次查询对应的数据表进行数据查询,查询出满足所述期望返回数据条数数量的数据,进而将查询出的数据返回给用户。
如图6所示,在本发明一实施例中,上述步骤S103的数据查询步骤具体可以包括步骤S201至步骤S203。
步骤S201,根据所述查询日期范围确定查询的存储节点,其中,所述存储节点包括所述数据存储系统中的近期数据库和/或超期数据库。
在本发明实施例中,近期数据库和各超期数据库均包括数据存储的开始时间以及数据存储的结束时间这两个参数,本步骤将查询日期范围与近期数据库和各超期数据库的这两个参数进行对比,确定出本次查询对应的数据库。
步骤S202,若确定出的查询的存储节点包括近期数据库,则根据所述查询的业务类型确定主题库,并根据所述查询日期范围确定查询的主题库中的数据表,其中所述数据表包括近期表和/或超期表。
在本发明实施例中,近期数据库中的各主题库的数据存储的开始时间以及数据存储的结束时间与近期数据库的一致。在本发明一实施例中,各主题库中的近期表和超期表同样包含数据存储的开始时间以及数据存储的结束时间这两个参数,本步骤将查询日期范围与近期表和超期表的这两个参数进行对比,确定出本次查询对应的数据表。在本发明另一实施例中,各主题库中的近期表和超期表均对应一个数据存储的结束时间,近期表的数据存储范围为当前至近期表的数据存储的结束时间之间的数据,而超期表的数据存储范围为近期表的数据存储的结束时间与超期表的数据存储的结束时间之间的数据。
步骤S203,若确定出的查询的存储节点包括超期数据库,则根据所述查询日期范围确定查询的超期数据库中的年表。
在本发明实施例中,各超期数据库中的年表均具有年份标识,本步骤将查询日期范围与年表的年份标识进行对比,确定本次查询对应的年表。
如图7所示,在本发明一实施例中,上述步骤S103的数据查询步骤具体还可以包括步骤S301至步骤S303。
步骤S301,清空预设的数据容器,并将所述数据容器的查询数据剩余条数参数初始化为所述期望返回数据条数。
在本发明一实施例中,数据容器可以采用list容器。
步骤S302,根据所述查询日期范围生成查询队列,所述查询队列包括至少一个查询节点,其中,所述查询节点包括:所述近期表、所述超期表以及所述年表。
在本发明实施例中,本发明通过上述步骤S201至步骤S203确定出本次查询对应的数据表,数据表包括各主题库中的近期表和超期表以及各超期数据库中的年表,根据查询日期范围的不同,本次查询可以对应多种数据表。本步骤在确定出本次查询的数据表后,可以按照各数据表存储的数据的时间顺序生成查询队列,查询队列中的每个查询节点为一个数据表,进而在查询时按照查询队列依次查询各查询节点。在本发明可选实施例中,数据查询请求中除了查询日期范围外还包括查询顺序,查询顺序可以为正序或倒序,本步骤在生成查询队列时,还根据查询顺序以及查询日期范围结合生成查询队列,当查询顺序为正序时,按照各数据表存储的数据的时间顺序生成查询队列,当查询顺序为倒序时,按照与各数据表存储的数据的时间顺序相反的顺序生成查询队列。
步骤S303,依次查询所述查询队列中的各查询节点并将查询到的数据存储到所述数据容器,直至所述查询数据剩余条数参数为0或所述查询队列中的各查询节点均已查询完毕。
在本发明实施例中,数据查询请求中包括具体的查询条件,本部根据查询条件依次查询查询队列中的各查询节点,将查询到的符合查询条件的数据存入数据容器中,直至数据容器的查询数据剩余条数参数为0(即数据容器中的数据量已满足期望返回数据条数),或者查询队列中的各查询节点均已查询完毕,此时即使没有查询出满足期望返回数据条数的数据也结束查询。最终,将数据容器以及其中的数据发送给用户,完成查询。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
基于同一发明构思,本发明实施例还提供了一种数据查询装置,可以用于实现上述实施例所描述的数据查询方法,如下面的实施例所述。由于数据查询装置解决问题的原理与数据查询方法相似,因此数据查询装置的实施例可以参见数据查询方法的实施例,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本发明实施例数据查询装置包括:查询请求接收单元、业务类型确定单元和数据查询单元。
查询请求接收单元,用于接收用户的数据查询请求,其中,所述数据查询请求包括:查询日期范围、期望返回数据条数以及查询接口代码。
业务类型确定单元,用于根据所述查询接口代码确定查询的业务类型。
数据查询单元,用于根据所述查询的业务类型以及所述查询日期范围从数据存储系统中查询出满足所述期望返回数据条数的数据,并将查询出的数据发送给所述用户。
在本发明一实施例中,所述数据查询单元具体包括:
存储节点确定模块,用于根据所述查询日期范围确定查询的存储节点,其中,所述存储节点包括所述数据存储系统中的近期数据库和/或超期数据库;
主题库确定模块,用于在确定出的查询的存储节点包括近期数据库时根据所述查询的业务类型确定主题库,并根据所述查询日期范围确定查询的主题库中的数据表,其中所述数据表包括近期表和/或超期表;
年表确定模块,用于在确定出的查询的存储节点包括超期数据库时根据所述查询日期范围确定查询的超期数据库中的年表。
在本发明一实施例中,所述数据查询单元具体还包括:
数据容器设置模块,用于清空预设的数据容器,并将所述数据容器的查询数据剩余条数参数初始化为所述期望返回数据条数;
查询队列生成模块,用于根据所述查询日期范围生成查询队列,所述查询队列包括至少一个查询节点,其中,所述查询节点包括:所述近期表、所述超期表以及所述年表;
查询模块,用于依次查询所述查询队列中的各查询节点并将查询到的数据存储到所述数据容器,直至所述查询数据剩余条数参数为0或所述查询队列中的各查询节点均已查询完毕。
本发明的另一方面还提供了一种数据查询服务系统,用于针对上述实施例的数据存储系统进行在线联机数据查询。图8是本发明实施例数据查询服务系统示意图,如图8所示,本发明实施例的数据查询服务系统包括:查询请求接收模块1、统一查询调度模块2、接口配置信息模块3、查询处理器模块4、多数据源管理模块5和动态SQL生成模块6。
查询请求接收模块1主要负责接收各渠道上送的数据查询请求,支持httprestful请求,RPC(Remote Procedure Call)请求等各种调用方式。接收到查询请求后,将从请求中提取请求参数,典型参数的包括查询接口代码,查询起始日期,查询结束日期,查询期望返回条数及查询条件等等。提取完毕后,查询请求接收模块1可调用统一查询调度模块2统一查询调度模块进行后续处理。
统一查询调度模块2职责主要是统筹调度查询的处理逻辑,包括查询接口配置信息,反射实例化查询处理器,多数据源对应数据库实例切换,查询请求年份切分、设置查询标识、查询结果缓存合并等。统一查询调度模块2会调用接口配置信息模块3、查询处理器模块4以及多数据源管理模块5。
接口配置信息模块3主要负责统一管理查询服务所提供的所有接口信息,可以根据用户请求上送的接口代码作为查询条件,获取该接口对应的定义信息,包括接口涉及的业务类别,对应的查询处理器类定义,接口描述等信息。在系统启动时,所有接口配置信息都需缓存在内存中,提升查询处理效率。
查询处理器模块4负责管理所有查询处理器。查询处理器是每个查询接口的业务逻辑处理单元,负责查询请求参数合法性校验,请求参数预处理,调用查询SQL,查询结果特殊处理等功能。查询处理器模块4会调用多数据源管理模块5和动态SQL生成模块6。
多数据源管理模块5负责数据存储系统的多个数据库连接池管理、数据源切换功能、数据库操作执行调用、管理整个数据存储系统所有存储节点的数据库配置信息,包括数据库实例信息、数据库节点类别(主题库或超期数据库)、主题库类别等。
动态SQL生成模块6根据近期表、超期表以及年表的标志,生成实际查询所用的SQL语句,用于对数据存储系统中对应的数据表进行数据查询。
图9是本发明实施例数据查询服务的流程图,如图9所示,本发明实施例的数据查询服务的流程包括步骤S1至步骤S4。
步骤S1表示统一查询服务应用服务器启动。
步骤S2表示多数据源管理模块5将数据存储系统(数据库集群)中各存储节点信息缓存至内存。这些信息源数据可以有多种来源,存储在应用配置文件,也可以在中间件(比如Websphere)统一管理等。每个数据源(DataSource)都关联业务类别,主题库类别,对应的存储节点最新数据加载日(loadDate)。
步骤S3缓存查询接口实例,通过接口配置信息模块3和查询处理器模块4,将接口定义信息(接口代码、接口业务类别、接口对应的查询处理器实例)缓存进内存。
步骤S4进入处理用户查询请求子流程,当渠道侧不上送查询请求时,程序进程将一直处于等待请求状态。一旦查询请求接收模块1接收到渠道侧的请求信息,则进入处理子流程。处理完毕并将查询结果返回渠道侧后,则继续等待处理下一个用户请求。S4流程的具体处理细节参考图10说明。
图10是本发明实施例查询请求处理流程图,如图10所示,本发明实施例查询请求处理流程包括步骤S41至步骤S46。
步骤S41由统一查询调度模块2接收到查询请求接收模块1的调用请求后进入,统一查询调度模块2从查询请求接收模块1处获取本次请求的所有参数并做系统参数校验。参数包括本次查询的日期范围(开始日期infStartDate,结束日期infEndDate),查询接口代码、本次查询期望返回数据条数及其他查询条件参数。如果发现参数缺失或者不合法,则本次流程查询失败,直接返回失败信息。
步骤S42为预处理模块,根据获取的接口代码,调用接口配置信息模块3获取接口业务类别及对应的查询处理器。同时初始化数据容器list,该数据容器list用于存储查询返回数据。初始化rc(REMAIN_COUNT)参数,该参数为本次查询数据剩余条数参数,初始化为接口请求上送的用户期望返回数据条数。
步骤S43生成查询年份数组。由查询的开始日期与结束日期确定,是指查询结束日与查询开始日所覆盖的年份。举例:倒序查询开始日期为2003-05-07,查询结束日为2005-12-11,则查询年份数组中的数据为2005、2004、2003,表示查询的数据区间落在上述三年中。(如果为正序查,则年份数组应该为2003、2004、2005)。如果发现结束日期小于开始日期,则年份数组为空。
步骤S44如果发现rc参数(查询剩余条数参数)小于等于0,或者年份数组为空,则进入步骤S46,将数据容器list(包含查询的所有数据)返回给渠道侧。否则,获取年份数组第一个元素(即查询节点),作为参数传入步骤S45查询数据库集群数据子流程,进行单年拆分查询。步骤S45的详细处理情况参考图11的单年拆分查询。
本发明实施例将查询日期区间拆分成好几年,再一年一年查询是因为数据库表已经拆分(主题库已经拆分为近期表和超期表,超期数据库已经拆分成多张年表)。数据库的查询可以按年拆分单独查询后,再将每次查询的结果存储在list容器,最后将list容器存储的所有数据返回。
举例说明rc参数作用。用户请求倒序查询20条数据,查询开始结束日为2003-05-07至2004-01-15。查询时,rc参数(剩余查询条数)初始化为20。年份数组为2004、2003。第一次循环时,查询2004年所在超期库的数据,则起始结束日为2004-01-01至2004-01-15,假设查询返回12条数据并存放在list1容器内。这时list1容器有12条数据,所以list1.size()的值为12,更新rc的值为rc=rc-list1.size()=20-12=8,即这时剩余查询条数rc为8条,即,需要继续在2003年的年表中继续查8条数据,起始结束日为2003-05-07至2003-12-31,如果确实有返回满8条数据,并存放到list2容器中,这时list2.size()的值为8,rc=rc-list2.size()=8-8=0,即用户要求的20条数据都查询到了(分别在list1中有12条,list2中有8条),所以剩余查询条数rc就变成了0,跳出循环,将list1和list2容器内数据合并到list容器并返回。
一般情况下,查询循环次数有限。每次查询请求的数据可以限制最多为20条,当用户查询跨度为2005、2004、2003年时,可能第一次循环查2005年所在数据库时,就已经查到20条,则剩余查询条数为rc=20-20=0,此时已经满足查询条数要求,直接跳出循环了。不会继续循环2004、2003年所在数据库的数据。此外具体实践中,查询日期跨度也不会超过5年,这样也能保证最多跨1次超期数据库进行查询。
图11是本发明实施例单年份拆分查询流程图,如图11所示,上述步骤S45节点的详细处理逻辑步骤,具体阐述如下(如下阐述假定为降序请求,升序查询请求只要作相应调整即可,不再赘述)。
步骤S451为预处理步骤,首先假定本次查询的年份为paramYear(YYYY格式,比如2020,表示2020年),需要确定本次按年拆分查询的具体开始日期(称为游标日期curDate)与结束日期(infEndDate)。通过调用多数据源管理模块5,根据paramYear查询该年对应的数据源信息、对应的数据库存储节点信息(该数据库当前最新的数据加载日期loadDate)。从而获取所需查询的数据库包含的日期范围为${paramYear}-01-01至loadDate之间。则本次查询的具体开始结束日期区间为[${paramYear}-01-01,loadDate]与[infStartDate,infEndDate]的交集,该交集的开始日期设置为curDate,结束日期设置为infEndDate。
说明,假设查询开始日infStartDate为2019-05-01,查询结束日infEndDate为2020-03-13。在上述步骤S44第一次循环年份数组的年份paramYear为2020年。图11流程查询的年份为2020年。假设根据多数据源管理模块5的调用返回信息确定本次查询的是主题库1,且主题库1中的数据加载日期loadDate为2020-03-12。则主题库1包含的数据区间为[2020-01-01,2020-03-12],而图10中步骤S41中获取的用户请求查询开始结束日期区间为[2019-05-01,2020-03-13],上述两个区间取交集得出的区间为[2020-01-01,2020-03-12],即图11流程中本次查询的开始日curDate为2020-01-01,结束日期infEndDate为2020-03-12。
步骤S452为数据源切换操作,根据步骤S451获取的本次查询的数据库存储节点信息,进行本次查询数据源切换操作,使得后续查询流程找到正确的数据库进行查询。
步骤S453根据步骤S451获取的本次查询的数据库存储节点信息判断该节点是主题库还是超期数据库。
步骤S454表示本次查询的数据库存储节点为主题库,需要根据本次查询的表是近期表还是超期表。具体确定过程为:根据请求查询结束日infEndDate,与主题库的数据加载日期loadDate进行比较如果infEndDate年月值与loadDate的年月值相同则将查询标识TB_FLAG设置为“M”,表示查询近期表,且将本次查询游标日期curDate更新为loadDate所在月的第一天;否则将查询标识TB_FLAG设置为“Y”,表示查询超期表。
步骤S455表示本次查询的数据库是超期数据库,将查询标识TB_FLAG设置为“C”,表示查询超期数据库,进一步可以表示查询超期数据库的视图。
步骤S456查询处理器步骤主要根据用户请求的接口标志查询获取查询处理器实例(已经在系统初始化的时候缓存于数据库),并将请求参数以及预处理的参数传递给该查询处理器。查询处理器针对传入参数做业务级别校验,如果校验失败,则返回失败信息。如果校验成功,则进行各个接口自定义的预处理,而后调用多数据源管理模块5和动态SQL生成模块6进行后续查询数据库操作。
步骤S457动态SQL生成模块6根据传入参数动态生成实际的查询SQL语句。实现该功能可通过一些开源框架实现,比如ibatis、mybatis等,也可以自行写代码实现。生成SQL完毕后调用多数据源管理模块5的查询功能进行数据库查询,同时将数据库返回的数据保存在一个临时数据容器内tmpList。
说明:以ibatis为例查询SQL语句示意可以如下:
SELECT field1,/*其它字段略*/
FROM
<isEqual property="TB_FLAG"compareValue="M">
T_ORDER_LIST_MONTH
</isEqual>
<isEqual property="TB_FLAG"compareValue="Y">
T_ORDER_LIST_DAT
</isEqual>
<isEqual property="TB_FLAG"compareValue="C">
VIEW_T_ORDER_LIST
</isEqual>
WHERE 1=1
<isEqual property="TB_FLAG"compareValue="C">
<![CDATA[
and pkg_util.set_year(#paramYear#)=#paramYear#
]]>
</isEqual>
<isNotEmpty property="curDate"prepend="and">
BUSIDATE>=#curDate#
</isNotEmpty>
<isNotEmpty property="infEndDate"prepend="and">
<![CDATA[BUSIDATE<=#curEndDate#]]>
</isNotEmpty>
/*其它条件略*/
如果传入查询标识TB_FLAG为“M”,curDate为2020-01-01,infEndDate为2020-03-12,则实际生成sql语句可以如下:
SELECT field1,/*其它字段略*/
FROM
T_ORDER_LIST_MONTH
WHERE 1=1
and BUSIDATE>='2020-01-01'
and BUSIDATE<='2020-03-12'
/*其它条件略*/
如果TB_FLAG为“Y”或“C”时,情形类似,不再赘述。
步骤S458将本次返回的tmpList容器内的数据都追加至数据容器list中。
步骤S458更新剩余查询次数为rc=rc-tmpList.size(),并将查询结束日期infEndDate更新为当前游标日期curDate前一天。如果发现rc≤0,或者查询游标日期小于等于开始日期,即curDate-infStartDate≤0,则跳出查询循环,将数据容器list返回给渠道侧,查询结束。
综上,本发明提供了一台在线联机查询数据库集群的方案。按此方案实施后,开发人员只要在原有基础上新增开发一个接口时,只需增加一些接口配置信息,开发对应的查询处理器即可。屏蔽了底层复杂的数据库拆分方式,表拆分方式等细节,让开发人员专注业务逻辑开发。
为了实现上述目的,根据本申请的另一方面,还提供了一种计算机设备。如图12所示,该计算机设备包括存储器、处理器、通信接口以及通信总线,在存储器上存储有可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述实施例方法中的步骤。
处理器可以为中央处理器(Central Processing Unit,CPU)。处理器还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及单元,如本发明上述方法实施例中对应的程序单元。处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及作品数据处理,即实现上述方法实施例中的方法。
存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述一个或者多个单元存储在所述存储器中,当被所述处理器执行时,执行上述实施例中的方法。
上述计算机设备具体细节可以对应参阅上述实施例中对应的相关描述和效果进行理解,此处不再赘述。
为了实现上述目的,根据本申请的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序在计算机处理器中执行时实现上述数据查询方法中的步骤。本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(RandomAccessMemory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种数据查询方法,其特征在于,包括:
接收用户的数据查询请求,其中,所述数据查询请求包括:查询日期范围、期望返回数据条数、查询顺序以及查询接口代码;
根据所述查询接口代码确定查询的业务类型;
根据所述查询的业务类型以及所述查询日期范围从数据存储系统中查询出满足所述期望返回数据条数的数据,并将查询出的数据发送给所述用户,其中,所述数据存储系统包括:近期数据库以及超期数据库,所述近期数据库用于存储预设的近N年的数据,所述超期数据库用于存储所述近N年以前的数据;所述近期数据库包括多个主题库,每个主题库分别用于存储所述近N年的数据中各自对应的业务类型的数据;每个所述主题库均包括各自对应的近期表,所述近期表用于存储对应的主题库存储的数据中预设的近M天的数据,所述近期表按照地区字段进行一级分区并按照数据产生的日期进行二级分区;每个所述主题库还包括各自对应的超期表,所述超期表用于存储对应的主题库存储的数据中除去所述近M天的数据之外的数据,所述超期表按照地区字段进行一级分区并按照数据产生的月份进行二级分区;所述超期数据库包括多个年表,每个所述年表存储各自对应的年份的数据,每个所述年表按照数据产生的月份进行一级分区并按照地区字段进行二级分区;
所述根据所述查询的业务类型以及所述查询日期范围从数据存储系统中查询出满足所述期望返回数据条数的数据,包括:
清空预设的数据容器,并将所述数据容器的查询数据剩余条数参数初始化为所述期望返回数据条数;
根据所述查询日期范围确定出本次查询对应的数据表,数据表包括各主题库中的近期表和超期表以及各超期数据库中的年表,进而按照所述查询顺序以及各数据表存储的数据的时间顺序生成查询队列,当所述查询顺序为正序时,按照各数据表存储的数据的时间顺序生成查询队列,当所述查询顺序为倒序时,按照与各数据表存储的数据的时间顺序相反的顺序生成查询队列,所述查询队列包括至少一个查询节点,其中,所述查询节点包括:所述近期表、所述超期表以及所述年表;
依次查询所述查询队列中的各查询节点并将查询到的数据存储到所述数据容器,直至所述查询数据剩余条数参数为0或所述查询队列中的各查询节点均已查询完毕;
所述根据所述查询日期范围确定出本次查询对应的数据表,具体包括:
根据所述查询日期范围确定查询的存储节点,其中,所述存储节点包括所述数据存储系统中的近期数据库和/或超期数据库;
若确定出的查询的存储节点包括近期数据库,则根据所述查询的业务类型确定主题库,并根据所述查询日期范围确定查询的主题库中的数据表,其中所述数据表包括近期表和/或超期表;
若确定出的查询的存储节点包括超期数据库,则根据所述查询日期范围确定查询的超期数据库中的年表。
2.一种数据查询装置,其特征在于,包括:
查询请求接收单元,用于接收用户的数据查询请求,其中,所述数据查询请求包括:查询日期范围、期望返回数据条数、查询顺序以及查询接口代码;
业务类型确定单元,用于根据所述查询接口代码确定查询的业务类型;
数据查询单元,用于根据所述查询的业务类型以及所述查询日期范围从数据存储系统中查询出满足所述期望返回数据条数的数据,并将查询出的数据发送给所述用户,其中,所述数据存储系统包括:近期数据库以及超期数据库,所述近期数据库用于存储预设的近N年的数据,所述超期数据库用于存储所述近N年以前的数据;所述近期数据库包括多个主题库,每个主题库分别用于存储所述近N年的数据中各自对应的业务类型的数据;每个所述主题库均包括各自对应的近期表,所述近期表用于存储对应的主题库存储的数据中预设的近M天的数据,所述近期表按照地区字段进行一级分区并按照数据产生的日期进行二级分区;每个所述主题库还包括各自对应的超期表,所述超期表用于存储对应的主题库存储的数据中除去所述近M天的数据之外的数据,所述超期表按照地区字段进行一级分区并按照数据产生的月份进行二级分区;所述超期数据库包括多个年表,每个所述年表存储各自对应的年份的数据,每个所述年表按照数据产生的月份进行一级分区并按照地区字段进行二级分区;
所述数据查询单元包括:
数据容器设置模块,用于清空预设的数据容器,并将所述数据容器的查询数据剩余条数参数初始化为所述期望返回数据条数;
查询队列生成模块,用于根据所述查询日期范围确定出本次查询对应的数据表,数据表包括各主题库中的近期表和超期表以及各超期数据库中的年表,进而按照所述查询顺序以及各数据表存储的数据的时间顺序生成查询队列,当所述查询顺序为正序时,按照各数据表存储的数据的时间顺序生成查询队列,当所述查询顺序为倒序时,按照与各数据表存储的数据的时间顺序相反的顺序生成查询队列,所述查询队列包括至少一个查询节点,其中,所述查询节点包括:所述近期表、所述超期表以及所述年表;
查询模块,用于依次查询所述查询队列中的各查询节点并将查询到的数据存储到所述数据容器,直至所述查询数据剩余条数参数为0或所述查询队列中的各查询节点均已查询完毕;
所述数据查询单元包括:
存储节点确定模块,用于根据所述查询日期范围确定查询的存储节点,其中,所述存储节点包括所述数据存储系统中的近期数据库和/或超期数据库;
主题库确定模块,用于在确定出的查询的存储节点包括近期数据库时根据所述查询的业务类型确定主题库,并根据所述查询日期范围确定查询的主题库中的数据表,其中所述数据表包括近期表和/或超期表;
年表确定模块,用于在确定出的查询的存储节点包括超期数据库时根据所述查询日期范围确定查询的超期数据库中的年表。
3.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1所述的方法。
4.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序在计算机处理器中执行时实现如权利要求1所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010380917.4A CN111563125B (zh) | 2020-05-08 | 2020-05-08 | 数据存储系统、数据查询方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010380917.4A CN111563125B (zh) | 2020-05-08 | 2020-05-08 | 数据存储系统、数据查询方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111563125A CN111563125A (zh) | 2020-08-21 |
CN111563125B true CN111563125B (zh) | 2024-04-16 |
Family
ID=72070835
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010380917.4A Active CN111563125B (zh) | 2020-05-08 | 2020-05-08 | 数据存储系统、数据查询方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111563125B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112069178A (zh) * | 2020-08-31 | 2020-12-11 | 银盛支付服务股份有限公司 | 一种非结构化数据库前置同步及查询性能的装置和方法 |
CN113282619A (zh) * | 2021-04-13 | 2021-08-20 | 国网山东省电力公司物资公司 | 一种数据快速查询方法及系统 |
CN113722518A (zh) * | 2021-08-27 | 2021-11-30 | 中科星通(廊坊)信息技术有限公司 | 基于遥感影像元数据的存储方法、检索方法、设备及介质 |
CN115658794B (zh) * | 2022-12-09 | 2023-05-12 | 深圳高灯计算机科技有限公司 | 数据查询方法、装置、计算机设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9875272B1 (en) * | 2015-06-23 | 2018-01-23 | Google Inc. | Method and system for designing a database system for high event rate, while maintaining predictable query performance |
CN108427684A (zh) * | 2017-02-14 | 2018-08-21 | 华为技术有限公司 | 数据查询方法、装置及计算设备 |
CN109508344A (zh) * | 2018-09-29 | 2019-03-22 | 中国平安人寿保险股份有限公司 | 业务数据查询方法、装置、电子设备及存储介质 |
CN110019541A (zh) * | 2017-07-21 | 2019-07-16 | 杭州海康威视数字技术股份有限公司 | 数据查询方法、装置及计算机可读存储介质 |
CN110990400A (zh) * | 2019-11-20 | 2020-04-10 | 浙江大搜车软件技术有限公司 | 数据库查询方法、装置、计算机设备和存储介质 |
-
2020
- 2020-05-08 CN CN202010380917.4A patent/CN111563125B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9875272B1 (en) * | 2015-06-23 | 2018-01-23 | Google Inc. | Method and system for designing a database system for high event rate, while maintaining predictable query performance |
CN108427684A (zh) * | 2017-02-14 | 2018-08-21 | 华为技术有限公司 | 数据查询方法、装置及计算设备 |
CN110019541A (zh) * | 2017-07-21 | 2019-07-16 | 杭州海康威视数字技术股份有限公司 | 数据查询方法、装置及计算机可读存储介质 |
CN109508344A (zh) * | 2018-09-29 | 2019-03-22 | 中国平安人寿保险股份有限公司 | 业务数据查询方法、装置、电子设备及存储介质 |
CN110990400A (zh) * | 2019-11-20 | 2020-04-10 | 浙江大搜车软件技术有限公司 | 数据库查询方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111563125A (zh) | 2020-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111563125B (zh) | 数据存储系统、数据查询方法及装置 | |
Zhao et al. | Dache: A data aware caching for big-data applications using the MapReduce framework | |
CN109783237B (zh) | 一种资源配置方法及装置 | |
US8392482B1 (en) | Versioning of database partition maps | |
US8484417B2 (en) | Location updates for a distributed data store | |
US7788233B1 (en) | Data store replication for entity based partition | |
US8386540B1 (en) | Scalable relational database service | |
US10534776B2 (en) | Proximity grids for an in-memory data grid | |
US11614970B2 (en) | High-throughput parallel data transmission | |
CN106462545A (zh) | 可缩放文件存储服务 | |
CN106462544A (zh) | 分布式存储系统中的会话管理 | |
CN112162846B (zh) | 事务处理方法、设备及计算机可读存储介质 | |
CN106462601A (zh) | 针对多盘区操作的原子写入 | |
RU2606058C2 (ru) | Усовершенствованная система управления запасами и способ для ее осуществления | |
CN112199427A (zh) | 一种数据处理方法和系统 | |
CN103473696A (zh) | 一种收集、分析和分发网络商业信息的方法和系统 | |
EP3042299A1 (en) | Providing services as resources for other services | |
JP7234298B2 (ja) | 地理情報システムエンジンシステム及び実現方法、装置並びに記憶媒体 | |
US11182406B2 (en) | Increased data availability during replication | |
US11068402B2 (en) | Externalized configurations and caching solution | |
US11176088B2 (en) | Dynamic server pool data segmentation using dynamic ordinal partition key without locks | |
CN115114374B (zh) | 事务执行方法、装置、计算设备及存储介质 | |
Vashisht et al. | Efficient dynamic replication algorithm using agent for data grid | |
AU2012277965B2 (en) | Method and system for processing data for database modification | |
CN110502534A (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 |