一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据查询方法、装置、设备、计算机可读介质和程序产品与流程

2022-11-28 13:29:07 来源:中国专利 TAG:


1.本公开的实施例涉及计算机技术领域,具体涉及数据查询方法、装置、设备、计算机可读介质和程序产品。


背景技术:

2.当前,数据库已经广泛的应用于各个领域。对于海量数据的存储和访问,大多都是通过数据库来进行的。对于针对数据库中的海量数据的数据查询,通常采用的方式:首先,对数据库进行分库分表处理。然后,在处理后的数据库中查找对应数据。
3.然而,发明人发现,当采用上述方式来进行数据查询,经常会存在如下技术问题:
4.针对海量数据,即使对数据库分库分表处理,仍存在查询速度较慢的问题。除此之外,对数据库分库分表,存在数据库部署和维护所需成本较高的问题。
5.该背景技术部分中所公开的以上信息仅用于增强对本发明构思的背景的理解,并因此,其可包含并不形成本国的本领域普通技术人员已知的现有技术的信息。


技术实现要素:

6.本公开的内容部分用于以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。本公开的内容部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。
7.本公开的一些实施例提出了数据查询方法、装置、设备、计算机可读介质和程序产品,来解决以上背景技术部分提到的技术问题。
8.第一方面,本公开的一些实施例提供了一种数据查询方法,包括:获取数据查询时间范围;确定时间与主键关系表中是否存在与上述数据查询时间范围相对应的至少一个主键组,其中,上述时间与主键关系表为基于待查询数据表中至少一个目标数据生成的表,上述至少一个目标数据为对应时间为至少一个目标时间点的数据;响应于确定存在上述至少一个主键组,根据上述至少一个主键组,从上述待查询数据表中查找出所需数据集。
9.可选地,上述方法还包括:将上述所需数据集进行存储。
10.可选地,上述方法还包括:响应于接收到针对上述数据查询时间范围的数据查询请求,将所存储的上述所需数据集发送至数据请求端。
11.可选地,上述根据上述至少一个主键组,从上述待查询数据表中查找出所需数据集,包括:对于上述至少一个主键组中的每个主键组,执行主键处理步骤:将上述主键组中的数值小的主键减去第一数值,以及将上述主键组中数值大的主键加上第二数值,得到处理后主键组;确定处于两个处理后主键之间的主键集,其中,上述两个处理后主键为上述处理后主键组所包括的两个主键;从上述待查询数据表中查找出与上述主键集相对应的数据集,作为查找数据集;根据所得到的查询数据集组,确定上述所需数据集。
12.可选地,上述至少一个目标时间点是基于至少一个时间点确定的时间点,上述至少一个时间点是基于预设时间粒度确定的时间点;以及上述将上述所需数据集进行存储,
包括:对于上述所需数据集中的每个所需数据,执行键值对数据生成步骤:确定上述所需数据对应的时间点;将上述时间点作为键,上述所需数据作为值,生成针对上述所需数据的键值对数据;将所得到的键值对数据集进行暂时性存储。
13.可选地,上述时间与主键关系表通过以下步骤构建:通过预设时间粒度,确定至少一个时间点;根据上述至少一个时间点,从上述待查询数据表中的各个数据对应的各个时间点中筛选出满足预设时间条件的时间点,作为目标时间点,得到至少一个目标时间点,上述至少一个时间点与上述至少一个目标时间点存在一一对应关系;对于上述至少一个目标时间点中的每个目标时间点,执行时间与主键关系数据生成步骤:确定上述目标时间点对应数据所包括的主键;确定上述目标时间点对应的、上述至少一个时间点中的时间点;根据上述主键和上述时间点,生成针对上述目标时间点对应数据的时间与主键关系数据;根据所得到的时间与主键关系数据集,生成上述时间与主键关系表。
14.可选地,上述方法还包括:响应于确定不存在至少一个主键组,从上述待查询数据表中查询上述至少一个主键组,以及将针对上述至少一个主键组的至少一个时间与主键关系数据组写入上述时间与主键关系表。
15.可选地,上述待查询数据表为对上述全量数据表进行分库分表处理后的子数据表。
16.可选地,上述全量数据表通过以下步骤分库分表处理:确定上述全量数据表对应的各个字段中的待分库字段和待分表字段;根据上述待分库字段,对上述全量数据表进行分库处理,得到分库数据表集;根据上述待分表字段,对上述分库数据表集中的每个分库数据表进行分表处理,以生成分表后数据表集,得到分表后数据表集组。
17.第二方面,本公开的一些实施例提供了一种数据查询装置,包括:获取单元,被配置成获取数据查询时间范围;确定单元,被配置成确定时间与主键关系表中是否存在与上述数据查询时间范围相对应的至少一个主键组,其中,上述时间与主键关系表为基于待查询数据表中至少一个目标数据生成的表,上述至少一个目标数据为对应时间为至少一个目标时间点的数据;查找单元,被配置成响应于确定存在上述至少一个主键组,根据上述至少一个主键组,从上述待查询数据表中查找出所需数据集。
18.可选地,上述装置还包括:将上述所需数据集进行存储。
19.可选地,上述装置还包括:响应于接收到针对上述数据查询时间范围的数据查询请求,将所存储的上述所需数据集发送至数据请求端。
20.可选地,查找单元可以进一步被配置成:对于上述至少一个主键组中的每个主键组,执行主键处理步骤:将上述主键组中的数值小的主键减去第一数值,以及将上述主键组中数值大的主键加上第二数值,得到处理后主键组;确定处于两个处理后主键之间的主键集,其中,上述两个处理后主键为上述处理后主键组所包括的两个主键;从上述待查询数据表中查找出与上述主键集相对应的数据集,作为查找数据集;根据所得到的查询数据集组,确定上述所需数据集。
21.可选地,上述至少一个目标时间点是基于至少一个时间点确定的时间点,上述至少一个时间点是基于预设时间粒度确定的时间点;以及存储单元可以进一步被配置成:对于上述所需数据集中的每个所需数据,执行键值对数据生成步骤:确定上述所需数据对应的时间点;将上述时间点作为键,上述所需数据作为值,生成针对上述所需数据的键值对数
据;将所得到的键值对数据集进行暂时性存储。
22.可选地,上述时间与主键关系表通过以下步骤构建:通过预设时间粒度,确定至少一个时间点;根据上述至少一个时间点,从上述待查询数据表中的各个数据对应的各个时间点中筛选出满足预设时间条件的时间点,作为目标时间点,得到至少一个目标时间点,上述至少一个时间点与上述至少一个目标时间点存在一一对应关系;对于上述至少一个目标时间点中的每个目标时间点,执行时间与主键关系数据生成步骤:确定上述目标时间点对应数据所包括的主键;确定上述目标时间点对应的、上述至少一个时间点中的时间点;根据上述主键和上述时间点,生成针对上述目标时间点对应数据的时间与主键关系数据;根据所得到的时间与主键关系数据集,生成上述时间与主键关系表。
23.可选地,查询写入单元可以进一步被配置成:响应于确定不存在至少一个主键组,从上述待查询数据表中查询上述至少一个主键组,以及将针对上述至少一个主键组的至少一个时间与主键关系数据组写入上述时间与主键关系表。
24.可选地,上述待查询数据表为对上述全量数据表进行分库分表处理后的子数据表。
25.可选地,上述全量数据表通过以下步骤分库分表处理:确定上述全量数据表对应的各个字段中的待分库字段和待分表字段;根据上述待分库字段,对上述全量数据表进行分库处理,得到分库数据表集;根据上述待分表字段,对上述分库数据表集中的每个分库数据表进行分表处理,以生成分表后数据表集,得到分表后数据表集组。
26.第三方面,本公开的一些实施例提供了一种电子设备,包括:一个或多个处理器;存储装置,其上存储有一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如第一方面中任一实现方式描述的方法。
27.第四方面,本公开的一些实施例提供了一种计算机可读介质,其上存储有计算机程序,其中,程序被处理器执行时实现如第一方面中任一实现方式描述的方法。
28.第五方面,本公开的一些实施例提供了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现上述第一方面中任一实现方式所描述的方法。
29.本公开的上述各个实施例具有如下有益效果:通过本公开的一些实施例的数据查询方法可以快捷、高效地从待查找数据表中查找出所需数据。具体来说,造成所需数据查找不够高效的原因在于:针对海量数据,即使对数据库分库分表处理,仍存在查询速度较慢的问题。除此之外,对数据库分库分表,存在数据库部署和维护所需成本较高的问题。基于此,本公开的一些实施例的数据查询方法,首先,获取数据查询时间范围,以用于后续所需数据集的查询。接着,通过确定时间与主键关系表中是否存在与数据查询时间范围相对应的至少一个主键组,以确定是否利用时间与主键关系表来协助查询所需数据集。最后,响应于确定存在上述至少一个主键组,根据上述至少一个主键组,可以高效率地从上述待查询数据表中查找出所需数据集。在这里,通过与数据查询时间范围相对应的至少一个主键组,可以有效的缩短数据查询范围,由待数据查询表对应的数据范围缩短为至少一个主键组对应的查询范围,由此,可以大大提高所需数据的查询效率。
附图说明
30.结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及
0230**牌”、“2022-04-01 01:03:05:150231**牌”、“2022-04-01 01:03:06:16 0232**牌”、“2022-04-01 01:03:07:17 0233**牌”、“2022-04-01 01:03:08:18 0234**牌”、“2022-04-01 01:03:09:19 0235**牌
”…“
2022-05-03 02:03:01:111 0323**牌”、“2022-05-01 02:03:02:112 0324**牌”、“2022-04-01 01:03:03:13 0325**牌”、“2022-04-01 01:03:04:14 0326**牌”、“2022-04-01 01:03:05:15 0327**牌”。至少一个目标时间点可以包括:“2022-04-01 01:03:00”和“2022-04-01 01:06:00”。最后,响应于确定存在上述至少一个主键组104,电子设备101根据上述至少一个主键组104,从上述待查询数据表105中查找出所需数据集106。在本应用场景中,所需数据集106可以包括:“2022-04-01 01:03:03:13 0229**牌”、“2022-04-01 01:03:04:14 0230**牌”、“2022-04-01 01:03:05:15 0231**牌”。
45.需要说明的是,上述电子设备101可以是硬件,也可以是软件。当电子设备为硬件时,可以实现成多个服务器或终端设备组成的分布式集群,也可以实现成单个服务器或单个终端设备。当电子设备体现为软件时,可以安装在上述所列举的硬件设备中。其可以实现成例如用来提供分布式服务的多个软件或软件模块,也可以实现成单个软件或软件模块。在此不做具体限定。
46.应该理解,图1中的电子设备的数目仅仅是示意性的。根据实现需要,可以具有任意数目的电子设备。
47.继续参考图2,示出了根据本公开的数据查询方法的一些实施例的流程200。该数据查询方法,包括以下步骤:
48.步骤201,获取数据查询时间范围。
49.在一些实施例中,上述数据查询方法的执行主体(例如图1所示的电子设备101)可以通过有线连接方式或者无线连接方式来获取数据查询时间范围。其中,数据查询时间范围是所需数据集对应的时间范围。其中,所需数据集中每个数据都存在对应的数据时间。实践中,数据时间可以是对应数据加入数据库的时间,还可以是对应数据的数据产生时间。在此不再限定,具体数据时间可以针对不同的应用场景而有所变化。
50.需要说明的是,上述数据查询时间范围可以包括多个子时间范围,且每个子时间范围中的时间都是连续的。例如,数据查询时间范围为“2011年4月1日12点整-2011年4月2日15点整,2011年4月3日12点整-2011年4月10日3点整”。则数据查询时间范围包括2个子时间范围。对应2个子时间范围分别为:“2011年4月1日12点整-2011年4月2日15点整”,“2011年4月3日12点整-2011年4月10日3点整”。
51.步骤202,确定时间与主键关系表中是否存在与上述数据查询时间范围相对应的至少一个主键组。
52.在一些实施例中,上述执行主体可以确定时间与主键关系表中是否存在与上述数据查询时间范围相对应的至少一个主键组。其中,上述时间与主键关系表为基于待查询数据表中至少一个目标数据生成的表,上述至少一个目标数据为对应时间为至少一个目标时间点的数据。时间与主键关系表表征着数据时间与主键之间的对应关系。时间与主键关系表可以数据库中的关系表。主键可以是主关键字(primary key)。主关键字为表中的一个或多个字段。在这里,针对数据查询时间范围包括至少一个子范围,至少一个子范围与至少一个主键组为一一对应的关系。例如,至少一个子范围包括:“2011年4月1日12点整-2011年4月2日15点整”,“2011年4月3日12点整-2011年4月10日3点整”。“2011年4月1日12点整-2011
年4月2日15点整”对应的主键组可以为(123,345)。“2011年4月3日12点整-2011年4月10日3点整”对应的主键组可以为(231,445)。至少一个目标时间点中的目标时间点可以是基于预设时间粒度来确定的时间点。上述预设时间粒度可以是对待查询数据表进行数据划分的时间长指标。例如,预设时间粒度可以是小时粒度,还可以是天数粒度,还可以是星期粒度,还可以是月粒度,还可以是年粒度。针对预设时间粒度为小时粒度,上述至少一个目标时间点可以是各个整小时点。例如,2011年11月1日12点整,2011年11月1日13点整,2011年11月1日14点整,2011年11月1日15点整。针对预设时间粒度为天数粒度,上述至少一个目标时间点可以是各天的24点。例如,2011年11月1日24点整,2011年11月1日24点整,2011年11月1日24点整,2011年11月1日24点整。针对预设时间粒度为月粒度,上述至少一个目标时间点可以是各个月的最后一天。例如,2011年11月30日,2011年12月31日,2012年1月31日。针对预设时间粒度为年数粒度,上述至少一个目标时间点可以是各年最后一个天。例如,2011年12月31日,2012年12月31日,2013年12月31日,2014年12月31日。
53.需要说明的是,待查询数据表中的数据可以是各种格式的数据。例如图像格式。待查询数据表中的数据还可以是针对目标应用场景的数据。例如,待查询数据表中的数据可以是针对无人车历史监控视频的存储数据。
54.作为示例,上述时间与主键关系表可以通过以下步骤:
55.第一步,对于至少一个目标数据中的每个目标数据,确定上述目标数据对应的主键和数据时间。
56.第二步,将上述主键集和数据时间集之间的对应关系存储于空表,以得到时间与主键关系表。
57.在一些实施例的一些可选的实现方式中,上述时间与主键关系表通过以下步骤构建:
58.第一步,通过预设时间粒度,确定至少一个时间点。其中,预设时间粒度可以灵活设置的。实践中,预设时间粒度可以是以下之一:小时粒度,天数粒度,星期粒度,月粒度,年粒度。
59.作为示例,针对预设时间粒度为天数粒度,至少一个时间点可以是一定时间范围内的每天的固定整小时点。例如,一定时间范围为2011年-2012年。对应至少一个时间点包括:2011年1月1日4点,2011年1月2日4点,2011年1月3日4点

2012年12月30日4点,2012年12月31日4点。
60.第二步,根据上述至少一个时间点,从上述待查询数据表中的各个数据对应的各个时间点中筛选出满足预设时间条件的时间点,作为目标时间点,得到至少一个目标时间点。上述至少一个时间点与上述至少一个目标时间点存在一一对应关系。其中,每个数据都存在一一对应的数据时间(即,时间点)。上述预设时间条件可以是在上述各个时间点中的、最接近于至少一个时间点的至少一个目标时间点。其中,至少一个时间点与至少一个目标时间点都是一一对应的。每个目标时间点都早于对应时间点。
61.例如,至少一个时间点包括:2011年1月1日4点,2011年1月2日4点,2011年1月3日4点

2012年12月30日4点,2012年12月31日4点。各个时间点包括:2011年1月1日3点,2011年1月1日6点,2011年1月1日10点,2011年1月2日2点,2011年1月3日2点,2011年1月3日6点。则至少一个目标时间点包括:2011年1月1日3点,2011年1月3日2点。其中,2011年1月1日3点早
于2011年1月3日4点,且与2011年1月3日4点最接近。2011年1月3日2点早于2011年1月3日4点,且与2011年1月3日4点最接近。
62.第三步,对于上述至少一个目标时间点中的每个目标时间点,执行时间与主键关系数据生成步骤:
63.第一子步骤,确定上述目标时间点对应数据所包括的主键。其中,主键可以是预先设置的、数据中的某一字段。
64.作为示例,上述执行主体可以通过查询的方式来确定述目标时间点对应数据所包括的主键。
65.例如,目标时间点为2011年1月1日3点。对应的主键为110。
66.第二子步骤,确定上述目标时间点对应的、上述至少一个时间点中的时间点。
67.作为示例,目标时间点为2011年1月1日3点。与2011年1月1日3点对应的时间点为2011年1月3日4点。
68.第三子步骤,根据上述主键和上述时间点,生成针对上述目标时间点对应数据的时间与主键关系数据。
69.作为示例,上述执行主体可以将主键与时间点组成二元组,以生成对应数据的时间与主键关系数据。
70.例如,时间点为2011年1月3日4点。主键为110。则时间与主键关系数据可以为(2011年1月3日4点,110)。
71.第四步,根据所得到的时间与主键关系数据集,生成上述时间与主键关系表。
72.作为示例,上述执行主体可以通过将时间与主键关系数据集添加至空表中,以生成上述时间与主键关系表。
73.步骤203,响应于确定存在上述至少一个主键组,根据上述至少一个主键组,从上述待查询数据表中查找出所需数据集。
74.在一些实施例中,响应于确定存在上述至少一个主键组,根据上述至少一个主键组,上述执行主体可以从上述待查询数据表中查找出所需数据集。其中,待查询数据表存储着所需数据集中各个数据对应的各个数据字段的信息。除此之外,待查询数据表对应的数据量大于等于所需数据集对应的数据量。上述待查询数据表为数据库中的表。
75.作为示例,首先,响应于确定存在上述至少一个主键组,对于至少一个主键组中的每个主键组,确定上述主键组所包括的两个主键。然后,上述执行主体可以确定两个主键对应的两个数据,作为两个目标数据。接着,上述执行主体可以确定两个目标数据对应的两个数据时间,作为两个目标数据时间。进一步的,上述执行主体可以从待查询数据表中筛选出目标时间范围内的数据集。其中,目标时间范围是由两个目标数据时间所构成的。例如,两个目标时间范围分别为:2011年4月12日12点整,2011年4月12日15点整。则目标时间范围为[2011年4月12日12点整,2011年4月12日15点整]。最后,上述执行主体可以从数据集中查找出所需数据集。
[0076]
在一些实施例的一些可选的实现方式中,上述执行主体可以将上述所需数据集进行存储。
[0077]
作为示例,上述执行主体可以将上述所需数据集存储至预先建立的目标数据库。其中,上述目标数据库用来存储一定时间内的历史所需数据集。
[0078]
需要说明的是,通过对所需数据库进行数据缓存,可以有效提高后续数据的查询效率。
[0079]
作为又一个示例,上述执行主体可以将所需数据集填入空白表,以得到填入后的表。然后,将填入后的表存储至预先建立的目标数据库。
[0080]
可选地,响应于接收到针对上述数据查询时间范围的数据查询请求,上述执行主体可以将所存储的上述所需数据集发送至数据请求端。其中,数据查询请求可以是数据请求端所发送的、用于查询数据的请求。实践中,上述数据请求端可以是上游服务器。
[0081]
可选地,上述至少一个目标时间点是基于至少一个时间点确定的时间点,上述至少一个时间点是基于预设时间粒度确定的时间点。
[0082]
上述将上述所需数据集进行存储,可以包括以下步骤:
[0083]
第一步,对于上述所需数据集中的每个所需数据,执行键值对数据生成步骤:
[0084]
子步骤1,上述执行主体可以确定上述所需数据对应的时间点。其中,上述至少一个目标时间点是基于至少一个时间点确定的时间点,上述至少一个时间点是基于预设时间粒度确定的时间点。具体不再赘述,相关解释参见图2对应的实施例。
[0085]
作为示例,上述执行主体可以时间点查询方式来,确定上述所需数据对应的时间点。
[0086]
子步骤2,上述执行主体可以将上述时间点作为键,上述所需数据作为值,生成针对上述所需数据的键值对数据。
[0087]
第二步,上述执行主体可以将所得到的键值对数据集进行暂时性存储。其中,暂时性存储可以是存储预定时长。即,当键值对数据存储的时间超过预定时长,删除上述键值对数据。
[0088]
在这里,通过将所需数据集以键值对的形式进行存储,针对一定时间内对所需数据集的二次查询,可以大大提高所需数据集的查询效率。
[0089]
在一些实施例的一些可选的实现方式中,响应于确定不存在至少一个主键组,上述执行主体可以从上述待查询数据表中查询上述至少一个主键组,以及将针对上述至少一个主键组的至少一个时间与主键关系数据组写入上述时间与主键关系表。
[0090]
在一些实施例的一些可选的实现方式中,上述待查询数据表为对上述全量数据表进行分库分表处理后的子数据表。其中,全量数据表可以是所需数据集对应场景对应的所有数据。例如,所需数据集对应场景为人脸识别场景,对应全量数据表存储着人脸识别场景下的所有数据集。待查询数据表只是全量数据表中的一个子表。
[0091]
在一些实施例的一些可选的实现方式中,上述全量数据表通过以下步骤分库分表处理:
[0092]
第一步,确定上述全量数据表对应的各个字段中的待分库字段和待分表字段。例如,各个字段包括:“摄像头所在区域编号”,“摄像头编号”,“文件名”,“文件大小”,“视频开始时间”,“视频结束时间”,“数据标识”。待分库字段可以是“摄像头所在区域编号”。待分表字段可以是“摄像头编号”。
[0093]
第二步,根据上述待分库字段,对上述全量数据表进行分库处理,得到分库数据表集。
[0094]
第三步,根据上述待分表字段,对上述分库数据表集中的每个分库数据表进行分
表处理,以生成分表后数据表集,得到分表后数据表集组。
[0095]
本公开的上述各个实施例具有如下有益效果:通过本公开的一些实施例的数据查询方法可以快捷、高效地从待查找数据表中查找出所需数据。具体来说,造成所需数据查找不够高效的原因在于:针对海量数据,即使对数据库分库分表处理,仍存在查询速度较慢的问题。除此之外,对数据库分库分表,存在数据库部署和维护所需成本较高的问题。基于此,本公开的一些实施例的数据查询方法,首先,获取数据查询时间范围,以用于后续所需数据集的查询。接着,通过确定时间与主键关系表中是否存在与数据查询时间范围相对应的至少一个主键组,以确定是否利用时间与主键关系表来协助查询所需数据集。最后,响应于确定存在上述至少一个主键组,根据上述至少一个主键组,可以高效率地从上述待查询数据表中查找出所需数据集。在这里,通过与数据查询时间范围相对应的至少一个主键组,可以有效的缩短数据查询范围,由待数据查询表对应的数据范围缩短为至少一个主键组对应的查询范围,由此,可以大大提高所需数据的查询效率。
[0096]
进一步参考图3,示出了根据本公开的数据查询方法的另一些实施例的流程300。该数据查询方法,包括以下步骤:
[0097]
步骤301,获取数据查询时间范围。
[0098]
在一些实施例中,步骤301的具体实现及其所带来的技术效果,可以参考图2对应的实施例中的步骤201,在此不再赘述。
[0099]
步骤302,对于上述至少一个主键组中的每个主键组,执行主键处理步骤:
[0100]
步骤3021,将上述主键组中的数值小的主键减去第一数值,以及将上述主键组中数值大的主键加上第二数值,得到处理后主键组。
[0101]
在一些实施例中,执行主体(例如图1所示的电子设备101)可以将上述主键组中的数值小的主键减去第一数值,以及将上述主键组中数值大的主键加上第二数值,得到处理后主键组。其中,第一数值和第二数值可以是预先设置的。例如,主键组为(123,234)。第一数值为23。第二数值为50。则处理后主键组为(100,284)。
[0102]
步骤3022,确定处于两个处理后主键之间的主键集。
[0103]
在一些实施例中,上述执行主体可以确定处于两个处理后主键之间的主键集。其中,上述两个处理后主键为上述处理后主键组所包括的两个主键。
[0104]
作为示例,上述执行主体可以通过主键查询的方式,来确定处于两个处理后主键之间的主键集。
[0105]
步骤3023,从上述待查询数据表中查找出与上述主键集相对应的数据集,作为查找数据集。
[0106]
在一些实施例中,上述执行主体可以从上述待查询数据表中查找出与上述主键集相对应的数据集,作为查找数据集。
[0107]
作为示例,上述执行主体可以利用数据查询方式,来从上述待查询数据表中查找出与上述主键集相对应的数据集,作为查找数据集。
[0108]
步骤303,根据所得到的查询数据集组,确定上述所需数据集。
[0109]
在一些实施例中,上述执行主体可以根据所得到的查询数据集组,确定上述所需数据集。
[0110]
作为示例,上述执行主体可以从所得到的查询数据集组中查询所需数据集。
[0111]
在这里,相对于直接从待查询数据表查询所需数据集,从查询数据集组中查询所需数据集,大大提高了查询效率。
[0112]
步骤304,响应于确定存在上述至少一个主键组,根据上述至少一个主键组,从上述待查询数据表中查找出所需数据集。
[0113]
步骤305,将上述所需数据集进行存储。
[0114]
在一些实施例中,步骤304-305的具体实现及其所带来的技术效果,可以参考图2对应的实施例中的步骤203-204,在此不再赘述。
[0115]
从图3中可以看出,与图2对应的一些实施例的描述相比,图3对应的一些实施例中的数据查询方法的流程300公开对至少一个主键组中每个主键组的主键扩充,可以避免数据的丢失。
[0116]
进一步参考图4,作为对上述各图所示方法的实现,本公开提供了一种数据查询装置的一些实施例,这些装置实施例与图2所示的那些方法实施例相对应,该装置具体可以应用于各种电子设备中。
[0117]
如图4所示,一种数据查询装置400包括:获取单元401、确定单元402和查找单元403。其中,获取单元401,被配置成获取数据查询时间范围;确定单元402,被配置成确定时间与主键关系表中是否存在与上述数据查询时间范围相对应的至少一个主键组,其中,上述时间与主键关系表为基于待查询数据表中至少一个目标数据生成的表,上述至少一个目标数据为对应时间为至少一个目标时间点的数据;查找单元403,被配置成响应于确定存在上述至少一个主键组,根据上述至少一个主键组,从上述待查询数据表中查找出所需数据集。
[0118]
在一些实施例的一些可选的实现方式中,装置400还可以包括:存储单元(图中未显示)。其中,存储单元可以被配置成:将上述所需数据集进行存储。
[0119]
在一些实施例的一些可选的实现方式中,装置400还可以包括:发送单元(图中未显示)。其中,发送单元可以被配置成:响应于接收到针对上述数据查询时间范围的数据查询请求,将所存储的上述所需数据集发送至数据请求端。
[0120]
在一些实施例的一些可选的实现方式中,装置400中的查找单元403可以进一步被配置成:对于上述至少一个主键组中的每个主键组,执行主键处理步骤:将上述主键组中的数值小的主键减去第一数值,以及将上述主键组中数值大的主键加上第二数值,得到处理后主键组;确定处于两个处理后主键之间的主键集,其中,上述两个处理后主键为上述处理后主键组所包括的两个主键;从上述待查询数据表中查找出与上述主键集相对应的数据集,作为查找数据集;根据所得到的查询数据集组,确定上述所需数据集。
[0121]
在一些实施例的一些可选的实现方式中,上述至少一个目标时间点是基于至少一个时间点确定的时间点,上述至少一个时间点是基于预设时间粒度确定的时间点;以及存储单元可以进一步被配置成:对于上述所需数据集中的每个所需数据,执行键值对数据生成步骤:确定上述所需数据对应的时间点;将上述时间点作为键,上述所需数据作为值,生成针对上述所需数据的键值对数据;将所得到的键值对数据集进行暂时性存储。
[0122]
在一些实施例的一些可选的实现方式中,上述时间与主键关系表通过以下步骤构建:通过预设时间粒度,确定至少一个时间点;根据上述至少一个时间点,从上述待查询数据表中的各个数据对应的各个时间点中筛选出满足预设时间条件的时间点,作为目标时间
点,得到至少一个目标时间点,上述至少一个时间点与上述至少一个目标时间点存在一一对应关系;对于上述至少一个目标时间点中的每个目标时间点,执行时间与主键关系数据生成步骤:确定上述目标时间点对应数据所包括的主键;确定上述目标时间点对应的、上述至少一个时间点中的时间点;根据上述主键和上述时间点,生成针对上述目标时间点对应数据的时间与主键关系数据;根据所得到的时间与主键关系数据集,生成上述时间与主键关系表。
[0123]
在一些实施例的一些可选的实现方式中,上述装置400还包括:查询以及写入单元(图中未显示)。其中,上述查询以及写入单元可以被配置成:响应于确定不存在至少一个主键组,从上述待查询数据表中查询上述至少一个主键组,以及将针对上述至少一个主键组的至少一个时间与主键关系数据组写入上述时间与主键关系表。
[0124]
在一些实施例的一些可选的实现方式中,上述待查询数据表为对上述全量数据表进行分库分表处理后的子数据表。
[0125]
在一些实施例的一些可选的实现方式中,上述全量数据表通过以下步骤分库分表处理:确定上述全量数据表对应的各个字段中的待分库字段和待分表字段;根据上述待分库字段,对上述全量数据表进行分库处理,得到分库数据表集;根据上述待分表字段,对上述分库数据表集中的每个分库数据表进行分表处理,以生成分表后数据表集,得到分表后数据表集组。
[0126]
可以理解的是,该装置400中记载的诸单元与参考图2描述的方法中的各个步骤相对应。由此,上文针对方法描述的操作、特征以及产生的有益效果同样适用于装置400及其中包含的单元,在此不再赘述。
[0127]
下面参考图5,其示出了适于用来实现本公开的一些实施例的电子设备(例如图1中的电子设备101)500的结构示意图。图5示出的电子设备仅仅是一个示例,不应对本公开的实施例的功能和使用范围带来任何限制。
[0128]
如图5所示,电子设备500可以包括处理装置(例如中央处理器、图形处理器等)501,其可以根据存储在只读存储器(rom)502中的程序或者从存储装置508加载到随机访问存储器(ram)503中的程序而执行各种适当的动作和处理。在ram 503中,还存储有电子设备500操作所需的各种程序和数据。处理装置501、rom 502以及ram503通过总线504彼此相连。输入/输出(i/o)接口505也连接至总线504。
[0129]
通常,以下装置可以连接至i/o接口505:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置506;包括例如液晶显示器(lcd)、扬声器、振动器等的输出装置507;包括例如磁带、硬盘等的存储装置508;以及通信装置509。通信装置509可以允许电子设备500与其他设备进行无线或有线通信以交换数据。虽然图5示出了具有各种装置的电子设备500,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。图5中示出的每个方框可以代表一个装置,也可以根据需要代表多个装置。
[0130]
特别地,根据本公开的一些实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的一些实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的一些实施例中,该计算机程序可以通过通信装置509从网络上被下载和安装,或者从
存储装置508被安装,或者从rom 502被安装。在该计算机程序被处理装置501执行时,执行本公开的一些实施例的方法中限定的上述功能。
[0131]
需要说明的是,本公开的一些实施例上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开的一些实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开的一些实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述的任意合适的组合。
[0132]
在一些实施方式中,客户端、服务器可以利用诸如http(hypertext transfer protocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“lan”),广域网(“wan”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
[0133]
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:获取数据查询时间范围;确定时间与主键关系表中是否存在与上述数据查询时间范围相对应的至少一个主键组,其中,上述时间与主键关系表为基于待查询数据表中至少一个目标数据生成的表,上述至少一个目标数据为对应时间为至少一个目标时间点的数据;响应于确定存在上述至少一个主键组,根据上述至少一个主键组,从上述待查询数据表中查找出所需数据集。
[0134]
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的一些实施例的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c ,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)——连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0135]
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代
表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0136]
描述于本公开的一些实施例中的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括:获取单元、确定单元和查找单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,获取单元还可以被描述为“获取数据查询时间范围的单元”。
[0137]
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、片上系统(soc)、复杂可编程逻辑设备(cpld)等等。
[0138]
本公开的一些实施例还提供一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现上述的任一种数据查询方法。
[0139]
以上描述仅为本公开的一些较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开的实施例中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开的实施例中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献