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

数据查询方法、装置、计算机设备和存储介质与流程

2022-12-31 15:51:16 来源:中国专利 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.基于所述数据个数,从所述第一缓存队列的队首开始删除数据。
31.在一个实施例中,所述存储模块,还用于:
32.在删除操作后的所述第一缓存队列中,基于所述差值对各所述队列数据进行移动,得到移动操作后的所述第一缓存队列;
33.将所述第一目标数据存储在移动操作后的所述第一缓存队列。
34.在一个实施例中,所述装置还包括:
35.获取模块,用于基于文件引入操作,获取引入文件;
36.组成模块,用于将所述引入文件中的字段标识以及所述字段标识对应的字段数据,组成引入数据对,并基于所述引入数据对组成引入数据集合;
37.所述提取模块,还用于从所述引入数据集合中提取第一源数据。
38.第三方面,本技术还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
39.从引入文件中提取第一源数据;
40.若第一缓存队列中不存在所述第一源数据匹配的第一目标数据,在数据库中查询所述第一目标数据;
41.将所述第一目标数据存储在存储空间具有限定值的所述第一缓存队列,得到第二缓存队列;
42.当从所述引入文件中提取了第二源数据时,在所述第二缓存队列中查询所述第二源数据匹配的第二目标数据;
43.返回所述第一目标数据以及所述第二目标数据。
44.第四方面,本技术还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
45.从引入文件中提取第一源数据;
46.若第一缓存队列中不存在所述第一源数据匹配的第一目标数据,在数据库中查询所述第一目标数据;
47.将所述第一目标数据存储在存储空间具有限定值的所述第一缓存队列,得到第二缓存队列;
48.当从所述引入文件中提取了第二源数据时,在所述第二缓存队列中查询所述第二源数据匹配的第二目标数据;
49.返回所述第一目标数据以及所述第二目标数据。
50.第五方面,本技术还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
51.从引入文件中提取第一源数据;
52.若第一缓存队列中不存在所述第一源数据匹配的第一目标数据,在数据库中查询所述第一目标数据;
53.将所述第一目标数据存储在存储空间具有限定值的所述第一缓存队列,得到第二缓存队列;
54.当从所述引入文件中提取了第二源数据时,在所述第二缓存队列中查询所述第二源数据匹配的第二目标数据;
55.返回所述第一目标数据以及所述第二目标数据。
56.上述数据查询方法、装置、计算机设备、存储介质和计算机程序产品,从引入文件中提取第一源数据,若第一缓存队列中不存在第一源数据匹配的第一目标数据,在数据库中查询第一目标数据。将第一目标数据存储在存储空间具有限定值的第一缓存队列,得到第二缓存队列。由于第一缓存队列的存储空间不超过限定值,从而可以避免第一缓存队列膨胀的缓存无用的数据,降低了内存以及中央处理器负载,避免由于内存增大和中央处理器负载增加而影响查询速度。并且将查询过的第一目标数据存储在第一缓存队列中,可以在第一缓存队列中对第一目标数据进行复用,从而提高缓存命中率。当从引入文件中提取了第二源数据时,在第二缓存队列中查询第二源数据匹配的第二目标数据。从而可以减少对数据库的查询,降低了数据库的压力,并且在缓存中查询的查询速度较快,进一步提高了查询速度。
附图说明
57.图1为一个实施例中数据查询方法的应用环境图;
58.图2为一个实施例中数据查询方法的流程示意图;
59.图3为一个实施例中引入文件的示意图;
60.图4为一个实施例中缓存队列的示意图;
61.图5为一个实施例中查询第一目标数据方法的流程示意图;
62.图6为一个实施例中存储第二目标数据的示意图;
63.图7为一个实施例中空闲存储单元的示意图;
64.图8为一个实施例中在缓存队列中删除数据的示意图;
65.图9为一个实施例中提取第一源数据方法的流程示意图;
66.图10为一个实施例中数据查询方法的时序图;
67.图11a为一个实施例中数据查询过程中缓存队列的示意图;
68.图11b为一个实施例中中央处理器的使用情况示意图;
69.图12为另一个实施例中数据查询方法的流程示意图;
70.图13为一个实施例中数据查询装置的结构框图;
71.图14为另一个实施例中数据查询装置的结构框图;
72.图15为一个实施例中计算机设备的内部结构图;
73.图16为一个实施例中计算机设备的内部结构图。
具体实施方式
74.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
75.本技术实施例提供的数据查询方法,可以应用于如图1所示的应用环境中。其中,数据库可以存储计算机设备102需要查询的数据。数据库可以集成在计算机设备102上,也可以放在云上或其他网络服务器上。计算机设备102从引入文件中提取第一源数据;若第一缓存队列中不存在第一源数据匹配的第一目标数据,在数据库中查询第一目标数据;将第一目标数据存储在存储空间具有限定值的所述第一缓存队列,得到第二缓存队列;当从引入文件中提取了第二源数据时,在第二缓存队列中查询第二源数据匹配的第二目标数据;返回第一目标数据以及第二目标数据。
76.其中,计算机设备102可以是终端也可以是服务器,终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。
77.服务器可以是独立的物理服务器,也可以是区块链系统中的多个服务节点所组成的服务器集群,各服务节点之间形成组成点对点(p2p,peer to peer)网络,p2p协议是一个运行在传输控制协议(tcp,transmission control protocol)协议之上的应用层协议。此外,服务器也可以是多个物理服务器构成的服务器集群,可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(content delivery network,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器。
78.在一个实施例中,如图2所示,提供了一种数据查询方法,以该方法应用于图1中的计算机设备为例进行说明,包括以下步骤:
79.s202,从引入文件中提取第一源数据。
80.其中,引入文件为用于存储待查询的源数据的文件,可以为文本文件。例如,引入文件可以为电子表格文件、电子文档文件等。源数据为引入文件中记录的数据。例如,源数据可以引入文件中记录的产品标识、生产日期、库存等数据;或者源数据也可以为引入文件中记录的姓名、年龄、籍贯等数据。例如,如图3所示,源数据为引入文件中记录的仓库名称、区县名称、市名称、省份名称和国家名称等数据。第一源数据可以为源数据中的部分数据,
可以为源数据中的一行或者几行数据,或者也可以为源数据中的一列或几列数据,也可以为一行或者一列数据中的一部分。例如,如图3所示,第一源数据可以为引入文件中第一行的“庐江县、合肥市、安徽省”。
81.s204,若第一缓存队列中不存在第一源数据匹配的第一目标数据,在数据库中查询第一目标数据。
82.其中,缓存队列是内存中用于缓存数据的队列。缓存队列中可以包括多个存储单元,每个存储单元中可以存储预设大小的队列数据。例如,每个存储单元中可以存储10比特的数据。例如,每个存储单元中可以存储5字节的数据。例如,如图4所示,缓存队列中包括5个存储单元,第一个存储单元存储了庐江县和庐江县的标识。在开始对第一源数据进行查询时,第一缓存队列中各存储单元的存储内容可以为空或者存储了历史查询所得的目标数据。第一目标数据是与第一源数据匹配的数据,第一目标数据与第一源数据间满足预设的映射关系。例如,第一目标数据是第一源数据的标识。又例如,第一源数据为产品名称,第一目标数据为产品名称对应的产品数量。又例如,第一源数据为单据编码,第一目标数据为单据编码对应的报销时间。
83.在一个实施例中,s204具体包括:计算机设备在第一缓存队列中查询第一源数据匹配的第一目标数据,若不能在第一缓存队列中查询到第一目标数据,在数据库中查询与第一源数据匹配的第一目标数据。
84.s206,将第一目标数据存储在存储空间具有限定值的第一缓存队列,得到第二缓存队列。
85.其中,限定值是根据用户需求预设的数值。例如,限定值可以是5、10或者20等。计算机设备可以根据中央处理器负载、内存占用率、中央处理器的处理速度或者查询任务数量进行调整。例如,当中央处理器负载增大时,计算机设备可以降低限定值的大小。例如,当查询任务数量减少时,计算机设备可以增大限定值的大小。对第一缓存队列的存储空间设置限定值,可以避免第一缓存队列由于膨胀的缓存无用的数据而增大内存以及中央处理器负载。
86.在一个实施例中,s206具体包括:若第一目标数据的数量超过第一缓存队列中空闲存储单元的单元数,在第一缓存队列中删除至少部分队列数据,并将第一目标数据存储在删除操作后的第一缓存队列;若第一目标数据的数量不超过第一缓存队列中空闲存储单元的单元数,将第一目标数据存储在第一缓存队列;其中,第一缓存队列中空闲存储单元的单元数是限定值与第一缓存队列中非空闲存储单元的单元数之间的差值。
87.其中,队列数据是在缓存队列中存储的数据。由于第一缓存队列的存储空间具有限定值,第一缓存队列中空闲存储单元的单元数可能不能满足第一目标数据的存储需求。若第一目标数据的数量超过第一缓存队列中空闲存储单元的单元数,在第一缓存队列中删除至少部分队列数据,使删除操作后的第一缓存队列可以满足第一目标数据的存储需求,然后将第一目标数据存储在删除操作后的第一缓存队列。若第一目标数据的数量不超过第一缓存队列中空闲存储单元的单元数,则无需对第一缓存队列进行删除操作,可直接将第一目标数据存储在第一缓存队列。
88.在一个实施例中,计算机设备获取第一缓存队列中存储的各队列数据的查询时间,计算查询时间与当前时间之间的时间间隔;根据时间间隔在第一缓存队列中删除至少
部分队列数据。例如,计算机设备删除时间间隔大于预设值的队列数据;或者,计算机设备对各队列数据对应的时间间隔进行排序,从排序后的时间间隔中选取排序的名次达到预设名次的目标时间间隔,删除目标时间间隔对应的队列数据。或者,计算机设备删除时间间隔最大的队列数据;或者,计算机设备删除时间间隔大于平均值的队列数据。
89.s208,当从引入文件中提取了第二源数据时,在第二缓存队列中查询第二源数据匹配的第二目标数据。
90.其中,第二源数据可以为源数据中的部分数据,可以为源数据中的一行或者几行数据,或者也可以为源数据中的一列或几列数据,也可以为一行或者一列数据中的一部分。例如,如图3所示,第二源数据为引入文件中“荔湾区、广州市、广东省”。由于第二缓存队列中已经存储了查询所得的第一目标数据,而相邻的两次查询中可能有部分或者全部待查询内容是相同的,在第二缓存队列中能够查询到第二源数据匹配的第二目标数据的概率较高,因此计算机设备在第二缓存队列中查询第二源数据匹配的第二目标数据。由于在缓存队列中进行查询的速度比在数据库中进行查询的速度高,因此,计算机设备在第二缓存队列中查询第二目标数据可以提高查询的速度,并且对第二缓存队列中缓存的数据进行复用,减少访问数据库的次数,从而降低了数据的压力,防止由于频繁访问数据库而导致数据库崩溃。
91.s210,返回第一目标数据以及第二目标数据。
92.如果计算机设备查询到第一目标数据与第二目标数据,则确定查询成功并将第一目标数据与第二目标数据返回至客户端。
93.在一个实施例中,s204之后还包括:若未在数据库中查询到第一目标数据,确定第一源数据为错误数据;拒绝将第一源数据存入第一缓存队列。
94.在一个实施例中,s208之后还包括:若未在第二缓存队列中查询到第二源数据匹配的第二目标数据,在数据库中查询第二源数据匹配的第二目标数据。若未在数据库中查询到第二目标数据,确定第二源数据为错误数据;拒绝将第二源数据存入第二缓存队列。
95.当非法客户端通过引入文件攻击业务系统时,业务系统的计算机设备获取的引入文件中可能包含大量的错误或者不合规的源数据,例如,引入文件中记录的产品名称或者地址等是不存在的,如果直接对引入文件中的源数据进行存储,可能导致缓存队列中存储了大量无效数据,占用大量的存储空间,严重时可导致业务系统无法提供服务,降低了业务系统的可用性。因此,在未能查询到与源数据匹配的目标数据时,计算机设备确定源数据为错误数据,并将源数据丢弃,从而可以对获取的源数据进行过滤,避免导致业务系统不可用。
96.上述实施例中,从引入文件中提取第一源数据,若第一缓存队列中不存在第一源数据匹配的第一目标数据,在数据库中查询第一目标数据。在第一缓存队列中删除至少部分队列数据,并将第一目标数据存储在删除操作后的第一缓存队列,得到第二缓存队列。从而可以限制第一缓存队列的大小,避免第一缓存队列由于膨胀的缓存无用的数据,降低了内存以及中央处理器负载,避免由于内存增大和中央处理器负载增加而影响查询速度。并且将查询过的第一目标数据存储在第一缓存队列中,可以在第一缓存队列中对第一目标数据进行复用,从而提高缓存命中率。当从引入文件中提取了第二源数据时,在第二缓存队列中查询第二源数据匹配的第二目标数据。从而可以减少对数据库的查询,降低了数据库的
压力,并且在缓存中查询的查询速度较快,进一步提高了查询速度。
97.在一个实施例中,如图5所示,s208之后还包括如下步骤:
98.s502,调整第二目标数据在第二缓存队列中的存储位置,得到第三缓存队列。
99.其中,第三缓存队列是对第二缓存队列中第二目标数据的存储位置进行调整后所得的缓存队列。例如,第二缓存队列中包括5个存储单元,第二目标数据存储在存储单元3,将第二目标数据从存储单元3调整到存储单元5,得到第三缓存队列。
100.在一个实施例中,第二目标数据为至少两个;s502具体包括:确定查询到各第二目标数据时的查询时间;根据查询时间,确定各第二目标数据在第二缓存队列中的位置序号;基于位置序号,调整第二目标数据在第二缓存队列中的存储位置。
101.其中,位置序号是缓存队列中存储单元的序号,可以为大于或等于1的正整数。例如,位置序号可以为3,此时第二目标数据存储在第二缓存队列中的第3个存储单元。
102.计算机设备根据查询时间,确定各第二目标数据在第二缓存队列中的位置序号。具体地,计算机设备可以根据查询时间对第二目标数据进行排序,然后按照第二目标数据排列的顺序确定各第二目标数据在第二缓存队列中的位置序号。例如,计算机设备可以根据查询时间的先后,按照降序对第二目标数据进行排序,将查询时间在先的第二目标数据排列在前。计算机设备可以按照第二目标数据排列的顺序,从第二缓存队列中的目标位置开始对第二目标数据进行存储。例如,计算机设备可以从队尾开始对第二目标数据进行存储,将查询时间排在最后的第二目标数据存储在队尾位置。或者,计算机设备也可以从队首开始对第二目标数据进行存储。例如,如图6所示,第二目标数据包括数据1、数据2、数据3,第二缓存队列中有5个存储单元,按照查询时间的先后顺序对第二目标数据进行排列得到数据2、数据3和数据1,则由于数据1是最后查询所得,将数据1存储在第二缓存队列的存储单元5,将数据3存储在第二缓存队列的存储单元4,将数据2存储在第二缓存队列的存储单元3。
103.计算机设备通过调整第二目标数据在第二缓存队列中的存储位置,可以按照查询时间对第二目标数据进行存储,将最新查询到的第二目标数据存储在第二缓存队列中的特定位置,从而可以在对第二缓存队列中的数据进行删除时,按照查询时间选择需要删除的数据,优先删除查询时间与当前时间的间隔最长的数据。
104.s504,当从引入文件中提取了第三源数据时,在第三缓存队列中查询第三源数据匹配的第三目标数据。
105.其中,第三源数据为源数据中的部分数据,可以为引入文件中的一行或者几行数据,或者也可以为引入文件中的一列或者几列数据,或者也可以为引入文件中一行或者一列数据的一部分。
106.在一个实施例中,s504之后还包括:若未在第三缓存队列中查询到第三目标数据,在数据库中查询第三目标数据。
107.s506,向客户端返回第三目标数据。
108.上述实施例中,调整第二目标数据在第二缓存队列中的存储位置,得到第三缓存队列,当从引入文件中提取了第三源数据时,在第三缓存队列中查询第三源数据匹配的第三目标数据;向客户端返回第三目标数据。从而可以通过对第二目标数据的位置调整,将最新查询到的第二目标数据存储在特定位置,从而可以按照存储位置对缓存队列中的数据进
行淘汰,避免由于缓存队列占用过多内存而降低查询速度。
109.在一个实施例中,确定第一缓存队列中空闲存储单元的单元数,以及单元数与第一目标数据的数据量之间的差值。根据差值在第一缓存队列中确定待删除的数据个数。基于数据个数,从第一缓存队列的队首开始删除数据。
110.其中,空闲存储单元为未存储数据的存储单元。例如,如图7所示,第一缓存队列中存储单元5、6、7中未存储数据,为空闲存储单元,空闲存储单元的单元数为3。计算机设备根据差值在第一缓存队列中确定待删除的数据个数,使基于数据个数进行删除操作后的第一缓存队列中空闲存储单元的单元数大于第一目标数据的数据量。例如,计算机设备可以设置待删除的数据个数大于差值,或者计算机设备也可以设置待删除的数据个数等于差值。然后计算机设备基于数据个数,从第一缓存队列的队首开始删除数据,删除数据的个数可以与所确定的待删除的数据个数相同。例如,当计算机设备根据差值确定的待删除的数据个数为5时,计算机设备从第一缓存队列的队首开始删除5个队列数据。
111.在一个实施例中,在删除操作后的第一缓存队列中,基于差值对各队列数据进行移动,得到移动操作后的第一缓存队列;将第一目标数据存储在移动操作后的第一缓存队列。
112.在删除操作后的第一缓存队列中,计算机设备依次移动每个队列数据,每个队列数据移动的步长可以与差值相等。例如,如图8所示,假设差值为2,所确定的待删除的数据个数与差值相同(为2),将第一缓存队列中的数据1和数据2进行删除后,得到删除操作后的第一缓存队列。然后基于差值(2)对各队列数据进行移动,首先将数据3移动2个位置,然后将数据4移动2个位置,得到移动操作后的第一缓存队列。最后将第一目标数据存储在移动操作后的第一缓存队列。计算机设备在对第一缓存队列进行删除操作后,并不是直接将第一目标数据存储在删除操作后的第一缓存队列中,而是对第一缓存队列中的队列数据进行移动,使当前第一缓存队列中的队列数据均向队首移动,将第一缓存队列中已有的队列数据存储在队列的前部,将新查询到的第一目标数据存储在队列的尾部,以在对第一缓存队列中数据进行淘汰时,能够根据数据的存储位置淘汰存储时间较久的队列数据,在降低内存的同时提高了缓存命中率。
113.上述实施例中,计算机设备确定第一缓存队列中空闲存储单元的单元数,以及单元数与第一目标数据的数据量之间的差值。根据差值在第一缓存队列中确定待删除的数据个数。按照数据个数,从第一缓存队列的队首开始删除数据,依次将第一缓存队列中存入时间最久的数据删除,而由于存入时间越久的数据被查询的概率越小,从而可以在减小缓存队列数据量的同时提高缓存命中率。
114.在一个实施例中,如图9所示,s202之前还包括s902-s904,s202具体包括s906。
115.s902,基于文件引入操作,获取引入文件。
116.其中,文件引入操作是用于获取引入文件的操作,可以包括文件引入启动操作、文件选取操作等。具体地,当计算机设备检测到文件引入启动操作时弹出引入窗口,通过引入窗口展示候选引入文件。基于文件选取操作从候选引入文件中选取引入文件。
117.s904,将引入文件中的字段标识以及字段标识对应的字段数据,组成引入数据对,并基于引入数据对组成引入数据集合。
118.其中,引入数据对为字段标识与字段数据组成的键值对,以字段标识为键、且以字
段数据为值。例如,引入数据对为map类型的数据对。例如,引入数据对为“键-》仓库标识,值-》ck0001”;又例如,引入数据对为“键-》产品名称,值-》扫地机器人”。引入数据集合是由引入数据对组成的数据集合。例如,引入数据集合是list结构的数据集合。例如,如图3所示,引入文件中每一行的每个字段组成一个引入数据对,各引入数据对组成引入数据集合《引入数据对1;引入数据对2;引入数据对3;

》。
119.s906,从引入数据集合中提取第一源数据。
120.计算机设备对引入文件进行解析得到引入数据集合之后,通过线程对引入数据集合进行处理,从引入数据集合中提取第一源数据。
121.上述实施例中,基于文件引入操作,获取引入文件。将引入文件中的字段标识以及字段标识对应的字段数据,组成引入数据对,并基于引入数据对组成引入数据集合,并从引入数据集合中提取第一源数据。从而可以将文件格式的数据解析为键值对的数据格式,并根据引入键值对进行查询,提高了数据查询的效率。
122.在一个实施例中,如图10所示,数据查询方法包括如下步骤:
123.s1002,检测文件引入操作,基于文件引入操作获取引入文件。
124.s1004,将所述引入文件中的字段标识以及所述字段标识对应的字段数据,组成引入数据对,并基于所述引入数据对组成引入数据集合,并将引入数据集合封装为数据包。
125.s1006,将引入数据集合传递至缓存队列。
126.s1008,从引入数据集合中提取源数据,并在在缓存队列中查询源数据匹配的目标数据,若查询到目标数据则将目标数据返回至客户端。
127.s1010,若缓存队列中不存在所述源数据匹配的目标数据,在数据库中查询所述目标数据。
128.s1012,将从数据库查询到的目标数据返回至缓存队列。
129.s1014,将目标数据存入缓存队列,以对缓存队列进行更新。
130.s1016,向业务系统的引入窗口返回与源数据匹配的目标数据。
131.s1018,将引入文件中各源数据以及与源数据匹配的目标数据存入数据库。
132.s1020,若在缓存队列或者数据库中查询到目标数据,则确定查询成功,并返回查询成功信息;若在缓存队列或者数据库中均未查询到目标数据,则确定查询失败并返回查询失败信息。
133.在一个实施例中,引入文件为如图3所示的excel文件,缓存队列中有5个存储单元。计算机设备对excel文件进行解析,将excel文件组装为list《map》结构的数据包。首先从数据包中提取第一源数据,第一源数据为引入文件第一行中的“庐江县、合肥市、安徽省”,然后在缓存队列中查询与第一源数据匹配的第一目标数据。如图11a所示,由于当前的缓存队列为空,不能在缓存队列中查询到第一目标数据。因此,查询线程在数据库中查询第一目标数据,得到“庐江县标识、合肥市标识、安徽省标识”,并将第一目标数据存入缓存队列,得到存入第一目标数据后的缓存队列。然后从数据包中提取第二源数据,第二源数据为引入文件第二行中的“荔湾区、广州市、广东省”,由于当前的缓存队列中并未存储与第二源数据匹配的第二目标数据,因此查询线程从数据库中查询第二目标数据,得到“荔湾区标识、广州市标识、广东省标识”,并将第二目标数据存入缓存队列。由于当前缓存队列中仅剩余两个存储单元,没有足够存储空间存储第二目标数据,因此需要在当前的缓存队列中删
除部分队列数据。由于当前缓存队列中空闲存储单元的单元数与第二目标数据的数据量之间的差值为1,将当前缓存队列位置1的存储单元中队列数据删除,并将剩余的队列数据均向队首移动一个存储单元,将第二目标数据存储在移动操作后的缓存队列,存入第二目标数据的缓存队列。接下来,从数据包中提取第三源数据,第三源数据为引入文件第三行中的“荔湾区、广州市、广东省”,并在缓存队列中查询与第三源数据匹配的第三目标数据。由于当前的缓存队列中存在与“荔湾区、广州市、广东省”匹配的目标数据,计算机设备在缓存队列中查询到“荔湾区标识、广州市标识、广东省标识”,并且按照各第三目标数据对应的查询时间重新在缓存队列中进行存储。由于按照查询时间的先后排列的第三目标数据为“荔湾区标识、广州市标识、广东省标识”,因此,计算机设备将“广东省标识”存储在位置5,“广州市标识”存储在位置4,“荔湾区标识”存储在位置3,得到的缓存队列。接下来,从数据包中提取第四源数据,第四源数据为引入文件第四行中的“荔湾区、广州市、广东省”,并在缓存队列中查询与第四源数据匹配的第四目标数据。由于当前的缓存队列中不存在第四目标数据,计算机设备在数据库中进行查询,得到第四目标数据为“黄岛区标识、青岛市标识、山东省标识”,然后将第四目标数据存入缓存队列。由于当前的缓存队列已满,计算机设备从缓存队列的队首开始删除三个队列数据,然后将位置4的队列数据移动至位置1,将位置5的队列数据移动至位置2,并将第四目标数据存入移动后缓存队列,得到存入第四目标数据的缓存队列。接下来,从数据包中提取第五源数据,第五源数据为引入文件第五行中的“崂山区、青岛市、山东省”,并在缓存队列中查询与第五源数据匹配的第五目标数据。由于当前的缓存队列中不存在与“崂山区”匹配的目标数据,因此计算机设备从数据库中查询与“崂山区”匹配的“崂山区标识”,并按照“崂山区标识、青岛市标识、山东省标识”对应的查询时间在缓存队列中进行存储,得到存入第五目标数据的缓存队列。按照本实施例的查询方法,当引入文件中有997行数据时,中央处理器的使用情况如图11b所示。
134.在一个实施例中,如图12所示,数据查询方法包括如下步骤:
135.s1202,基于文件引入操作,获取引入文件。
136.s1204,将引入文件中的字段标识以及字段标识对应的字段数据,组成引入数据对,并基于引入数据对组成引入数据集合,并从引入数据集合中提取第一源数据。
137.s1206,若第一缓存队列中不存在第一源数据匹配的第一目标数据,在数据库中查询第一目标数据。
138.s1208,确定第一缓存队列中空闲存储单元的单元数,以及单元数与第一目标数据的数据量之间的差值,并根据差值在第一缓存队列中确定待删除的数据个数。
139.s1210,基于数据个数,从第一缓存队列的队首开始删除至少部分数据。在删除操作后的第一缓存队列中。
140.s1212,基于差值对各队列数据进行移动,得到移动操作后的第一缓存队列,将第一目标数据存储在移动操作后的第一缓存队列,得到第二缓存队列。
141.s1214,当从引入数据集合中提取了第二源数据时,在第二缓存队列中查询第二源数据匹配的第二目标数据。
142.s1216,确定查询到各第二目标数据时的查询时间,根据查询时间,确定各第二目标数据在第二缓存队列中的位置序号。
143.s1218,基于位置序号,调整第二目标数据在第二缓存队列中的存储位置,得到第
三缓存队列。
144.s1220,当从引入数据集合中提取了第三源数据时,在第三缓存队列中查询第三源数据匹配的第三目标数据。
145.s1222,向客户端返回第一目标数据、第二目标数据以及第三目标数据。
146.上述s1202至s1222的具体内容可以参考上文的具体实现过程。
147.应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
148.基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的数据查询方法的数据查询装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个数据查询装置实施例中的具体限定可以参见上文中对于数据查询方法的限定,在此不再赘述。
149.在一个实施例中,如图13所示,提供了一种数据查询装置,包括:提取模块1302、查询模块1304、存储模块1306和返回模块1308,其中:
150.提取模块1302,用于从引入文件中提取第一源数据;
151.查询模块1304,用于若第一缓存队列中不存在第一源数据匹配的第一目标数据,在数据库中查询第一目标数据;
152.存储模块1306,用于将所述第一目标数据存储在存储空间具有限定值的所述第一缓存队列,得到第二缓存队列;
153.查询模块1304,还用于当从引入文件中提取了第二源数据时,在第二缓存队列中查询第二源数据匹配的第二目标数据;
154.返回模块1308,用于返回第一目标数据以及第二目标数据。
155.上述实施例中,从引入文件中提取第一源数据,若第一缓存队列中不存在第一源数据匹配的第一目标数据,在数据库中查询第一目标数据。将第一目标数据存储在存储空间不超过限定值的第一缓存队列,得到第二缓存队列。由于第一缓存队列的存储空间不超过限定值,从而可以避免第一缓存队列膨胀的缓存无用的数据,降低了内存以及中央处理器负载,避免由于内存增大和中央处理器负载增加而影响查询速度。并且将查询过的第一目标数据存储在第一缓存队列中,可以在第一缓存队列中对第一目标数据进行复用,从而提高缓存命中率。当从引入文件中提取了第二源数据时,在第二缓存队列中查询第二源数据匹配的第二目标数据。从而可以减少对数据库的查询,降低了数据库的压力,并且在缓存中查询的查询速度较快,进一步提高了查询速度。
156.在一个实施例中,所述存储模块1306,还用于:
157.若第一目标数据的数量超过第一缓存队列中空闲存储单元的单元数,在第一缓存队列中删除至少部分队列数据,并将第一目标数据存储在删除操作后的第一缓存队列;
158.若第一目标数据的数量不超过第一缓存队列中空闲存储单元的单元数,将第一目
标数据存储在第一缓存队列;其中,第一缓存队列中空闲存储单元的单元数是限定值与第一缓存队列中非空闲存储单元的单元数之间的差值。
159.在一个实施例中,存储模块1306,还用于:
160.确定第一缓存队列中空闲存储单元的单元数,以及单元数与第一目标数据的数据量之间的差值;
161.根据差值在第一缓存队列中确定待删除的数据个数;
162.基于数据个数,从第一缓存队列的队首开始删除数据。
163.在一个实施例中,如图14所示,装置还包括:
164.调整模块1310,用于调整第二目标数据在第二缓存队列中的存储位置,得到第三缓存队列;
165.查询模块1304,还用于当从引入文件中提取了第三源数据时,在第三缓存队列中查询第三源数据匹配的第三目标数据;
166.返回模块1308,还用于向客户端返回第三目标数据。
167.在一个实施例中,第二目标数据为至少两个;调整模块1310,还用于:
168.确定查询到各第二目标数据时的查询时间;
169.根据查询时间,确定各第二目标数据在第二缓存队列中的位置序号;
170.基于位置序号,调整第二目标数据在第二缓存队列中的存储位置。
171.在一个实施例中,存储模块1306,还用于:
172.在删除操作后的第一缓存队列中,基于差值对各队列数据进行移动,得到移动操作后的第一缓存队列;
173.将第一目标数据存储在移动操作后的第一缓存队列。
174.在一个实施例中,装置还包括:
175.获取模块1312,用于基于文件引入操作,获取引入文件;
176.组成模块1314,用于将引入文件中的字段标识以及字段标识对应的字段数据,组成引入数据对,并基于引入数据对组成引入数据集合;
177.提取模块1302,还用于从引入数据集合中提取第一源数据。
178.上述数据查询装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
179.在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图15所示。该计算机设备包括处理器、存储器、输入/输出接口(input/output,简称i/o)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据查询数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据查询方法。
180.在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构
图可以如图16所示。该计算机设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过wifi、移动蜂窝网络、nfc(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种数据查询方法。该计算机设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置,显示屏可以是液晶显示屏或电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
181.本领域技术人员可以理解,图15、16中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
182.在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
183.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各方法实施例中的步骤。
184.在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
185.需要说明的是,本技术所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
186.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(reram)、磁变存储器(magnetoresistive random access memory,mram)、铁电存储器(ferroelectric random access memory,fram)、相变存储器(phase change memory,pcm)、石墨烯存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器等。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,
不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
187.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
188.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。
再多了解一些

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

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

相关文献