查询数据的方法、装置和计算机设备与流程

文档序号:24688884发布日期:2021-04-16 09:55阅读:70来源:国知局
查询数据的方法、装置和计算机设备与流程

1.本申请涉及大数据领域,特别是涉及到查询数据的方法、装置和计算机设备。


背景技术:

2.因关系型数据库能保证数据的完整性及持久化,并能提供复杂sql语句的查询,所以目前大部分系统提供数据实时查询接口均依赖于关系型数据库,如oracle、db2等。但是关系型数据的查询方式存在明显的缺点,即每次调用均需经过服务方和数据库建立数据连接、数据查询以及释放连接等操作,对于高并发且低延时要求的基表服务业务场景,直接连接关系型数据库获取数据,无法满足业务要求。


技术实现要素:

3.本申请的主要目的为提供查询数据的,旨在解决现有直接连接关系型数据库获取数据无法满足低时延业务要求的技术问题。
4.本申请提出一种查询数据的方法,包括:
5.获取指定前端设备发送的查询字段,其中,所述指定前端设备属于系统中所有前端设备中的任一个;
6.判断中间数据器件中是否存在与所述查询字段对应的数据信息,其中,所述中间数据器件连接于关系型数据库和各前端设备之间,所述中间数据器件包括文件系统或java虚拟机;
7.若是,则将从所述文件系统或java虚拟机中获取与所述查询字段对应的数据信息,通过所述中间数据器件将所述数据信息发送至所述指定前端设备;
8.若否,则建立所述指定前端设备与所述关系型数据库的数据链接,并从所述关系型数据库获取与所述查询字段对应的数据信息。
9.优选地,所述中间数据器件一一对应部署于各所述前端设备中,所述中间数据器件包括java虚拟机,各所述前端设备通过一一对应的各所述java虚拟机连接redis服务器,redis服务器上部署关系型数据库,各所述前端设备的基表数据相同,所述将从所述文件系统或java虚拟机中获取与所述查询字段对应的数据信息,通过所述中间数据器件将所述数据信息发送至所述指定前端设备的步骤之前,包括:
10.判断是否到达预设的对账时间段;
11.若是,则从各所述java虚拟机中获取缓存的基表数据;
12.判断各所述java虚拟机中缓存的基表数据是否相同;
13.若否,则确定基表数据存在差异异常的指定java虚拟机,其中,所述指定java虚拟机属于所有java虚拟机中的任意一台;
14.控制所述指定java虚拟机连接所述关系型数据库;
15.从所述关系型数据库获取数据,更新所述指定java虚拟机的基表数据,至所有java虚拟机的基表数据一致。
16.优选地,所述从所述关系型数据库获取数据,更新所述指定java虚拟机的基表数据的步骤,包括:
17.获取筛选数据的条件参数;
18.通过与所述关系型数据库连接的redis服务器,从所述关系型数据库中筛选与所述条件参数对应的数据;
19.将与所述条件参数对应的数据,返回至所述指定java虚拟机进行缓存更新。
20.优选地,所述条件参数包括数据被调用的历史频率,所述从所述关系型数据库中筛选与所述条件参数对应的数据的步骤,包括:
21.获取当前时刻各数据分别对应的第一调用频率,以及所述当前时刻的前一时刻各数据分别对应的第二调用频率;
22.根据所述第一调用频率以及所述第二调用频率,通过指定计算公式分别计算各数据对应的热点权重值,其中,所述指定计算公式为r(s
t+1
)=a[sgn(a

s
t
)]+b[sgn(a

s
t+1
)],r(s
t+1
)为当前时刻指定数据对应的热点权重值,a,b为平衡常数0≤a≤1、0≤b≤1,sgn()为符号函数,a为当前时刻各数据分别对应的第一调用频率的最大值,s
t
为所述指定数据对应的第一调用频率,s
t+1
为所述指定数据对应的第二调用频率,所述指定数据为全量数据中的任一数据;
[0023]
将各数据对应的热点权重值,按照由大到小进行降序排序;
[0024]
将所述降序排序中排序靠前的指定数量的数据,作为与所述条件参数对应的数据。
[0025]
优选地,所述将所述降序排序中排序靠前的指定数量的数据,作为与所述条件参数对应的数据的步骤之后,包括:
[0026]
统计与所述条件参数对应的数据中,每个数据分别对应的单位时间内的调用频次;
[0027]
将单位时间内调用频次大于或等于第一预设值的第一数据,均分至第一数量的redis服务器上;
[0028]
将单位时间内调用频次小于所述第一预设值的第二数据,均分至第二数量的redis服务器上,其中,所述第二数量小于所述第一数量。
[0029]
优选地,所述中间数据器件一一对应部署于各所述前端设备中,所述中间数据器件包括java虚拟机,各所述前端设备通过一一对应的各所述java虚拟机连接redis服务器,redis服务器上部署关系型数据库,各所述前端设备的基表数据相同,所述将从所述文件系统或java虚拟机中获取与所述查询字段对应的数据信息,通过所述中间数据器件将所述数据信息发送至所述指定前端设备的步骤之前,包括:
[0030]
判断指定移动终端的地理位置是否发生更改;
[0031]
若是,则从redis服务器上获取更改后的地理位置对应的推送数据;
[0032]
将所述推送数据按照时间顺序进行排序,形成时序数据列;
[0033]
将所述时序数据列中,距离当前时刻预设时间差内的数据存入所述指定移动终端对应的java虚拟机上。
[0034]
优选地,所述中间数据器件一一对应部署于各所述前端设备中,所述中间数据器件包括文件系统,各所述前端设备通过所述文件系统连接关系型数据库,所述将从所述文
件系统或java虚拟机中获取与所述查询字段对应的数据信息,通过所述中间数据器件将所述数据信息发送至所述指定前端设备的步骤之前,包括:
[0035]
获取所述文件系统中的缓存数据,以及缓存数据的共有特征参数;
[0036]
根据所述共有特征参数的类别,将所述缓存数据分类成各存储基表;
[0037]
根据单次查询的批次数据量,对各所述存储基表进行存储文件划分;
[0038]
依据各所述存储文件的id以及各所述存储文件分别对应的共有特征参数,建立各所述存储文件分别对应的分词索引。
[0039]
本申请还提供了一种查询数据的装置,包括:
[0040]
第一获取模块,用于获取指定前端设备发送的查询字段,其中,所述指定前端设备属于系统中所有前端设备中的任一个;
[0041]
第一判断模块,用于判断中间数据器件中是否存在与所述查询字段对应的数据信息,其中,所述中间数据器件连接于关系型数据库和各前端设备之间,所述中间数据器件包括文件系统或java虚拟机;
[0042]
发送模块,用于若存在与所述查询字段对应的数据信息,则将从所述文件系统或java虚拟机中获取与所述查询字段对应的数据信息,通过所述中间数据器件将所述数据信息发送至所述指定前端设备;
[0043]
第二获取模块,用于若不存在与所述查询字段对应的数据信息,则建立所述指定前端设备与所述关系型数据库的数据链接,并从所述关系型数据库获取与所述查询字段对应的数据信息。
[0044]
本申请还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
[0045]
本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法的步骤。
[0046]
本申请通过将关系型数据库中查询到的数据缓存至中间数据器件,前端设备直接从中间数据器件上获取数据,支持高并发的基表服务业务场景,且有效满足低延时要求。
附图说明
[0047]
图1本申请一实施例的查询数据的方法流程示意图;
[0048]
图2本申请一实施例的查询数据的系统流程示意图;
[0049]
图3本申请一实施例的计算机设备内部结构示意图。
具体实施方式
[0050]
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
[0051]
参照图1,本申请一实施例的查询数据的方法,包括:
[0052]
s1:获取指定前端设备发送的查询字段,其中,所述指定前端设备属于系统中所有前端设备中的任一个;
[0053]
s2:判断中间数据器件中是否存在与所述查询字段对应的数据信息,其中,所述中
间数据器件连接于关系型数据库和各前端设备之间,所述中间数据器件包括文件系统或java虚拟机;
[0054]
s3:若是,则将从所述文件系统或java虚拟机中获取与所述查询字段对应的数据信息,通过所述中间数据器件将所述数据信息发送至所述指定前端设备;
[0055]
s4:若否,则建立所述指定前端设备与所述关系型数据库的数据链接,并从所述关系型数据库获取与所述查询字段对应的数据信息。
[0056]
本申请通过在前端设备和关系型数据库中设置缓存数据的中间数据器件,实现数据的高并发请求场景。上述中间数据器件包括但不限于文件系统或java虚拟机。通过将前端设备经常访问的热点数据存放于中间数据器件中,前端设备在运行中可直接通过访问中间数据器件,即可获得相应的数据,避免多频次的连接关系型数据库,降低时延提高反馈时效性。上述数据信息包括但不限于基表数据。
[0057]
本申请通过将关系型数据库中查询到的数据缓存至中间数据器件,前端设备直接从中间数据器件上获取数据,支持高并发的基表服务业务场景,且有效满足低延时要求。
[0058]
进一步地,所述中间数据器件一一对应部署于各所述前端设备中,所述中间数据器件包括java虚拟机,各所述前端设备通过一一对应的各所述java虚拟机连接redis服务器,redis服务器上部署关系型数据库,各所述前端设备的基表数据相同,所述将从所述文件系统或java虚拟机中获取与所述查询字段对应的数据信息,通过所述中间数据器件将所述数据信息发送至所述指定前端设备的步骤s3之前,包括:
[0059]
s31:判断是否到达预设的对账时间段;
[0060]
s32:若是,则从各所述java虚拟机中获取缓存的基表数据;
[0061]
s33:判断各所述java虚拟机中缓存的基表数据是否相同;
[0062]
s34:若否,则确定基表数据存在差异异常的指定java虚拟机,其中,所述指定java虚拟机属于所有java虚拟机中的任意一台;
[0063]
s35:控制所述指定java虚拟机连接所述关系型数据库;
[0064]
s36:从所述关系型数据库获取数据,更新所述指定java虚拟机的基表数据,至所有java虚拟机的基表数据一致。
[0065]
本申请实施例的中间数据器件包括java虚拟机,即jvm(java virtual machine,java虚拟机),各所述前端设备一一对应部署一jvm,jvm连接于redis,redis上部署关系型数据库。先根据前端设备的历史访问数据,将热点数据从关系型数据库中取出,并分布式存放在redis服务器上,然后根据前端设备传送的查询字段在redis服务器上获取对应的查询数据。
[0066]
本申请实施例中的应用场景包括机房、权限核验系统等前端设备上,要求各前端设备的jvm的基表数据均相同,所以在jvm的基表数据系统上设置了实时对账系统,每隔固定时间段自发启动对账系统,以保证所有java虚拟机的基表数据保持一致。
[0067]
进一步地,所述从所述关系型数据库获取数据,更新所述指定java虚拟机的基表数据的步骤s36,包括:
[0068]
s361:获取筛选数据的条件参数;
[0069]
s362:通过与所述关系型数据库连接的redis服务器,从所述关系型数据库中筛选与所述条件参数对应的数据;
[0070]
s363:将与所述条件参数对应的数据,返回至所述指定java虚拟机进行缓存更新。
[0071]
本申请实施例中,若发现某个jvm的基表数据与其他jvm的基表数据不同,则判定该jvm的基表数据发生遗漏或异常,需重新从redis服务器中获取相应的数据进行更新。上述数据更新过程与jvm获取初始数据的过程和原理相同,均是根据筛选数据的条件参数,直接从redis服务器中获取相应的数据。上述条件参数包括但不限于时间、基表数据类型等。上述基表数据类型包括但不限于城市基表、节假日基表、个人信息基表等。
[0072]
进一步地,所述条件参数包括数据被调用的历史频率,所述从所述关系型数据库中筛选与所述条件参数对应的数据的步骤s362,包括:
[0073]
s3621:获取当前时刻各数据分别对应的第一调用频率,以及所述当前时刻的前一时刻各数据分别对应的第二调用频率;
[0074]
s3622:根据所述第一调用频率以及所述第二调用频率,通过指定计算公式分别计算各数据对应的热点权重值,其中,所述指定计算公式为r(s
t+1
)=a[sgn(a

s
t
)]+b[sgn(a

s
t+1
)],r(s
t+1
)为当前时刻指定数据对应的热点权重值,a,b为平衡常数0≤a≤1、0≤b≤1,sgn()为符号函数,a为当前时刻各数据分别对应的第一调用频率的最大值,s
t
为所述指定数据对应的第一调用频率,s
t+1
为所述指定数据对应的第二调用频率,所述指定数据为全量数据中的任一数据;
[0075]
s3623:将各数据对应的热点权重值,按照由大到小进行降序排序;
[0076]
s3624:将所述降序排序中排序靠前的指定数量的数据,作为与所述条件参数对应的数据。
[0077]
本申请实施例中,由于jvm的内存容量限制,对于存储于jvm的数据进行合理筛选,基于数据的历史调用频率对存放于redis服务器中的全量数据进行了分析,筛选满足前端设备的热点数据。本申请实施例根据相邻两个时刻的调用频率以及全量数据中最大的调用频率计算每个数据的热点权重值,热点权重值越大,表明该数据越是前端设备运行中最有可能调用的数据,并将热点权重值比较高的数据作为热点数据存放入前端设备的jvm中,以保证存储前端设备运行的效用最高的数据,且提高调用效率。
[0078]
本申请其他实施例中,存入前端设备的jvm中的热点数据,可根据实际的业务场景进行自主设定。举例地,对于数据量较大的城市基表,根据热点权重值筛选后的数据仍然较大,可再根据城市级别属性进行热点数据的二次筛选,比如只筛选满足热点权重值要求的城市级别大于三级以上的数据。上述城市级别属性级别由高到低依次为省、市、县、乡和村,城市级别大于三级以上的数据,即只选县以上的数据。
[0079]
进一步地,所述将所述降序排序中排序靠前的指定数量的数据,作为与所述条件参数对应的数据的步骤s3624之后,包括:
[0080]
s3625:统计与所述条件参数对应的数据中,每个数据分别对应的单位时间内的调用频次;
[0081]
s3626:将单位时间内调用频次大于或等于第一预设值的第一数据,均分至第一数量的redis服务器上;
[0082]
s3627:将单位时间内调用频次小于所述第一预设值的第二数据,均分至第二数量的redis服务器上,其中,所述第二数量小于所述第一数量。
[0083]
本申请实施例中,对于从关系型数据库中获取的全量数据,存储于redis服务器上
时,通过数据偏量分布存储的数据分片技术,提高数据并发调用的效率。数据偏量分布存储值对于单位时间内高频调用的数据分布在更多的redis服务器上。举例地,前端设备a每分钟调用100次数据a1,前端设备b每分钟调用10次b1,a1数据的调用频率要大于b1,通过把a1数据放在更多的redis服务器机器上以供查询,相对而言,b1数据只需存放在少量redis服务器机器上即可。
[0084]
进一步地,所述中间数据器件一一对应部署于各所述前端设备中,所述中间数据器件包括java虚拟机,各所述前端设备通过一一对应的各所述java虚拟机连接redis服务器,redis服务器上部署关系型数据库,各所述前端设备的基表数据相同,所述将从所述文件系统或java虚拟机中获取与所述查询字段对应的数据信息,通过所述中间数据器件将所述数据信息发送至所述指定前端设备的步骤s3之前,包括:
[0085]
s301:判断指定移动终端的地理位置是否发生更改;
[0086]
s302:若是,则从redis服务器上获取更改后的地理位置对应的推送数据;
[0087]
s303:将所述推送数据按照时间顺序进行排序,形成时序数据列;
[0088]
s304:将所述时序数据列中,距离当前时刻预设时间差内的数据存入所述指定移动终端对应的java虚拟机上。
[0089]
本申请实施例适用于前端设备中携带不同基表数据的移动终端,可根据移动终端实时处于的地理位置,实时更新jvm内的热点数据,以满足更具有时效性的数据调用。比如根据地理位置定位实时推送热点数据,不仅兼顾地理位置,且需考量时间段。将最新时间更新的、与该定位地理位置相关的数据作为热点数据。且根据时间的推移,实时增加新增数据,同时删除时间过期的数据,在满足移动终端实时调用数据的同时,合理管理缓存热点数据的数据池。
[0090]
进一步地,所述中间数据器件一一对应部署于各所述前端设备中,所述中间数据器件包括文件系统,各所述前端设备通过所述文件系统连接关系型数据库,所述将从所述文件系统或java虚拟机中获取与所述查询字段对应的数据信息,通过所述中间数据器件将所述数据信息发送至所述指定前端设备的步骤s3之前,包括:
[0091]
s311:获取所述文件系统中的缓存数据,以及缓存数据的共有特征参数;
[0092]
s312:根据所述共有特征参数的类别,将所述缓存数据分类成各存储基表;
[0093]
s313:根据单次查询的批次数据量,对各所述存储基表进行存储文件划分;
[0094]
s314:依据各所述存储文件的id以及各所述存储文件分别对应的共有特征参数,建立各所述存储文件分别对应的分词索引。
[0095]
本申请实施例中,调用大批量数据时,jvm的有限内存不能满足要求,中间数据器件更改为文件系统,摒弃了redis服务器和jvm,使数据调用更及时,时延更小,且无需进行数据一致性校验。通过在文件系统中创建elasticsearch搜索引擎,使得缓存数据可无限扩展。
[0096]
本申请实施例中,根据共有特征参数实现缓存数据分类,上述共有特征参数包括但不限于城市名、节假日、身份证号、手机号码等,也通过不同的共有特征参数创建不同类型的数据基表。且为了提高数据搜索定位的便利性,对缓存数据进行分文件、分区域存放,并建立分词索引进行快速定位。举例地,如文件1里包括“身份证号”、“张三(姓名)”等分词索引,通过查询身份证号个人信息时,便能快速以该身份证号定位该用户的全部个人信息。
上述单次查询的批次数据量,指数据批次调用量,跟内存相关。举例地,单次查询的批次数据量为1m,可限于将存储文件设定为不大于1m。通过切分为大小合适的存储文件,可节省内存使用空间且提高查询效率。
[0097]
参照图2,本申请一实施例的查询数据的装置,包括:
[0098]
第一获取模块1,用于获取指定前端设备发送的查询字段,其中,所述指定前端设备属于系统中所有前端设备中的任一个;
[0099]
第一判断模块2,用于判断中间数据器件中是否存在与所述查询字段对应的数据信息,其中,所述中间数据器件连接于关系型数据库和各前端设备之间,所述中间数据器件包括文件系统或java虚拟机;
[0100]
发送模块3,用于若存在与所述查询字段对应的数据信息,则将从所述文件系统或java虚拟机中获取与所述查询字段对应的数据信息,通过所述中间数据器件将所述数据信息发送至所述指定前端设备;
[0101]
第二获取模块4,用于若不存在与所述查询字段对应的数据信息,则建立所述指定前端设备与所述关系型数据库的数据链接,并从所述关系型数据库获取与所述查询字段对应的数据信息。
[0102]
本申请实施例的的相关解释适用对应方法部分的实例解释,不赘述。
[0103]
进一步地,所述中间数据器件一一对应部署于各所述前端设备中,所述中间数据器件包括java虚拟机,各所述前端设备通过一一对应的各所述java虚拟机连接redis服务器,redis服务器上部署关系型数据库,各所述前端设备的基表数据相同,查询数据的装置,包括:
[0104]
第二判断模块,用于判断是否到达预设的对账时间段;
[0105]
第三获取模块,用于若到达预设的对账时间段,则从各所述java虚拟机中获取缓存的基表数据;
[0106]
第三判断模块,用于判断各所述java虚拟机中缓存的基表数据是否相同;
[0107]
确定模块,用于若不相同,则确定基表数据存在差异异常的指定java虚拟机,其中,所述指定java虚拟机属于所有java虚拟机中的任意一台;
[0108]
控制模块,用于控制所述指定java虚拟机连接所述关系型数据库;
[0109]
更新模块,用于从所述关系型数据库获取数据,更新所述指定java虚拟机的基表数据,至所有java虚拟机的基表数据一致。
[0110]
进一步地,更新模块,包括:
[0111]
获取单元,用于获取筛选数据的条件参数;
[0112]
筛选单元,用于通过与所述关系型数据库连接的redis服务器,从所述关系型数据库中筛选与所述条件参数对应的数据;
[0113]
返回单元,用于将与所述条件参数对应的数据,返回至所述指定java虚拟机进行缓存更新。
[0114]
进一步地,筛选单元,包括:
[0115]
获取子单元,用于获取当前时刻各数据分别对应的第一调用频率,以及所述当前时刻的前一时刻各数据分别对应的第二调用频率;
[0116]
计算子单元,用于根据所述第一调用频率以及所述第二调用频率,通过指定计算
公式分别计算各数据对应的热点权重值,其中,所述指定计算公式为r(s
t+1
)=a[sgn(a

s
t
)]+b[sgn(a

s
t+1
)],r(s
t+1
)为当前时刻指定数据对应的热点权重值,a,b为平衡常数0≤a≤1、0≤b≤1,sgn()为符号函数,a为当前时刻各数据分别对应的第一调用频率的最大值,s
t
为所述指定数据对应的第一调用频率,s
t+1
为所述指定数据对应的第二调用频率,所述指定数据为全量数据中的任一数据;
[0117]
排序子单元,用于将各数据对应的热点权重值,按照由大到小进行降序排序;
[0118]
作为子单元,用于将所述降序排序中排序靠前的指定数量的数据,作为与所述条件参数对应的数据。
[0119]
进一步地,筛选单元,包括:
[0120]
统计子单元,用于统计与所述条件参数对应的数据中,每个数据分别对应的单位时间内的调用频次;
[0121]
第一均分子单元,用于将单位时间内调用频次大于或等于第一预设值的第一数据,均分至第一数量的redis服务器上;
[0122]
第二均分子单元,用于将单位时间内调用频次小于所述第一预设值的第二数据,均分至第二数量的redis服务器上,其中,所述第二数量小于所述第一数量。
[0123]
进一步地,所述中间数据器件一一对应部署于各所述前端设备中,所述中间数据器件包括java虚拟机,各所述前端设备通过一一对应的各所述java虚拟机连接redis服务器,redis服务器上部署关系型数据库,各所述前端设备的基表数据相同,查询数据的装置,包括:
[0124]
第四判断模块,用于判断指定移动终端的地理位置是否发生更改;
[0125]
第四获取模块,用于若地理位置发生更改,则从redis服务器上获取更改后的地理位置对应的推送数据;
[0126]
排序模块,用于将所述推送数据按照时间顺序进行排序,形成时序数据列;
[0127]
存入模块,用于将所述时序数据列中,距离当前时刻预设时间差内的数据存入所述指定移动终端对应的java虚拟机上。
[0128]
进一步地,所述中间数据器件一一对应部署于各所述前端设备中,所述中间数据器件包括文件系统,各所述前端设备通过所述文件系统连接关系型数据库,查询数据的装置,包括:
[0129]
第五获取模块,用于获取所述文件系统中的缓存数据,以及缓存数据的共有特征参数;
[0130]
分类模块,用于根据所述共有特征参数的类别,将所述缓存数据分类成各存储基表;
[0131]
划分模块,用于根据单次查询的批次数据量,对各所述存储基表进行存储文件划分;
[0132]
建立模块,用于依据各所述存储文件的id以及各所述存储文件分别对应的共有特征参数,建立各所述存储文件分别对应的分词索引。
[0133]
参照图3,本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存
储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储查询数据的过程需要的所有数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现查询数据的方法。
[0134]
上述处理器执行上述查询数据的方法,包括:获取指定前端设备发送的查询字段,其中,所述指定前端设备属于系统中所有前端设备中的任一个;判断中间数据器件中是否存在与所述查询字段对应的数据信息,其中,所述中间数据器件连接于关系型数据库和各前端设备之间,所述中间数据器件包括文件系统或java虚拟机;若是,则将从所述文件系统或java虚拟机中获取与所述查询字段对应的数据信息,通过所述中间数据器件将所述数据信息发送至所述指定前端设备;若否,则建立所述指定前端设备与所述关系型数据库的数据链接,并从所述关系型数据库获取与所述查询字段对应的数据信息。
[0135]
上述计算机设备,通过将关系型数据库中查询到的数据缓存至中间数据器件,前端设备直接从中间数据器件上获取数据,支持高并发的基表服务业务场景,且有效满足低延时要求。
[0136]
在一个实施例中,中间数据器件一一对应部署于各所述前端设备中,所述中间数据器件包括java虚拟机,各所述前端设备通过一一对应的各所述java虚拟机连接redis服务器,redis服务器上部署关系型数据库,各所述前端设备的基表数据相同,上述处理器将从所述文件系统或java虚拟机中获取与所述查询字段对应的数据信息,通过所述中间数据器件将所述数据信息发送至所述指定前端设备的步骤之前,包括:判断是否到达预设的对账时间段;若是,则从各所述java虚拟机中获取缓存的基表数据;判断各所述java虚拟机中缓存的基表数据是否相同;若否,则确定基表数据存在差异异常的指定java虚拟机,其中,所述指定java虚拟机属于所有java虚拟机中的任意一台;控制所述指定java虚拟机连接所述关系型数据库;从所述关系型数据库获取数据,更新所述指定java虚拟机的基表数据,至所有java虚拟机的基表数据一致。
[0137]
在一个实施例中,上述处理器从所述关系型数据库获取数据,更新所述指定java虚拟机的基表数据的步骤,包括:获取筛选数据的条件参数;通过与所述关系型数据库连接的redis服务器,从所述关系型数据库中筛选与所述条件参数对应的数据;将与所述条件参数对应的数据,返回至所述指定java虚拟机进行缓存更新。
[0138]
在一个实施例中,所述条件参数包括数据被调用的历史频率,上述处理器从所述关系型数据库中筛选与所述条件参数对应的数据的步骤,包括:获取当前时刻各数据分别对应的第一调用频率,以及所述当前时刻的前一时刻各数据分别对应的第二调用频率;根据所述第一调用频率以及所述第二调用频率,通过指定计算公式分别计算各数据对应的热点权重值,其中,所述指定计算公式为r(s
t+1
)=a[sgn(a

s
t
)]+b[sgn(a

s
t+1
)],r(s
t+1
)为当前时刻指定数据对应的热点权重值,a,b为平衡常数0≤a≤1、0≤b≤1,sgn()为符号函数,a为当前时刻各数据分别对应的第一调用频率的最大值,s
t
为所述指定数据对应的第一调用频率,s
t+1
为所述指定数据对应的第二调用频率,所述指定数据为全量数据中的任一数据;将各数据对应的热点权重值,按照由大到小进行降序排序;将所述降序排序中排序靠前的指定数量的数据,作为与所述条件参数对应的数据。
[0139]
在一个实施例中,上述处理器将所述降序排序中排序靠前的指定数量的数据,作为与所述条件参数对应的数据的步骤之后,包括:统计与所述条件参数对应的数据中,每个数据分别对应的单位时间内的调用频次;将单位时间内调用频次大于或等于第一预设值的第一数据,均分至第一数量的redis服务器上;将单位时间内调用频次小于所述第一预设值的第二数据,均分至第二数量的redis服务器上,其中,所述第二数量小于所述第一数量。
[0140]
在一个实施例中,所述中间数据器件一一对应部署于各所述前端设备中,所述中间数据器件包括java虚拟机,各所述前端设备通过一一对应的各所述java虚拟机连接redis服务器,redis服务器上部署关系型数据库,各所述前端设备的基表数据相同,上述处理器将从所述文件系统或java虚拟机中获取与所述查询字段对应的数据信息,通过所述中间数据器件将所述数据信息发送至所述指定前端设备的步骤之前,包括:判断指定移动终端的地理位置是否发生更改;若是,则从redis服务器上获取更改后的地理位置对应的推送数据;将所述推送数据按照时间顺序进行排序,形成时序数据列;将所述时序数据列中,距离当前时刻预设时间差内的数据存入所述指定移动终端对应的java虚拟机上。
[0141]
在一个实施例中,所述中间数据器件一一对应部署于各所述前端设备中,所述中间数据器件包括文件系统,各所述前端设备通过所述文件系统连接关系型数据库,上述处理器将从所述文件系统或java虚拟机中获取与所述查询字段对应的数据信息,通过所述中间数据器件将所述数据信息发送至所述指定前端设备的步骤之前,包括:获取所述文件系统中的缓存数据,以及缓存数据的共有特征参数;根据所述共有特征参数的类别,将所述缓存数据分类成各存储基表;根据单次查询的批次数据量,对各所述存储基表进行存储文件划分;依据各所述存储文件的id以及各所述存储文件分别对应的共有特征参数,建立各所述存储文件分别对应的分词索引。
[0142]
本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定。
[0143]
本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现查询数据的方法,包括:获取指定前端设备发送的查询字段,其中,所述指定前端设备属于系统中所有前端设备中的任一个;判断中间数据器件中是否存在与所述查询字段对应的数据信息,其中,所述中间数据器件连接于关系型数据库和各前端设备之间,所述中间数据器件包括文件系统或java虚拟机;若是,则将从所述文件系统或java虚拟机中获取与所述查询字段对应的数据信息,通过所述中间数据器件将所述数据信息发送至所述指定前端设备;若否,则建立所述指定前端设备与所述关系型数据库的数据链接,并从所述关系型数据库获取与所述查询字段对应的数据信息。
[0144]
上述计算机可读存储介质,通过将关系型数据库中查询到的数据缓存至中间数据器件,前端设备直接从中间数据器件上获取数据,支持高并发的基表服务业务场景,且有效满足低延时要求。
[0145]
在一个实施例中,中间数据器件一一对应部署于各所述前端设备中,所述中间数据器件包括java虚拟机,各所述前端设备通过一一对应的各所述java虚拟机连接redis服务器,redis服务器上部署关系型数据库,各所述前端设备的基表数据相同,上述处理器将从所述文件系统或java虚拟机中获取与所述查询字段对应的数据信息,通过所述中间数据器件将所述数据信息发送至所述指定前端设备的步骤之前,包括:判断是否到达预设的对
账时间段;若是,则从各所述java虚拟机中获取缓存的基表数据;判断各所述java虚拟机中缓存的基表数据是否相同;若否,则确定基表数据存在差异异常的指定java虚拟机,其中,所述指定java虚拟机属于所有java虚拟机中的任意一台;控制所述指定java虚拟机连接所述关系型数据库;从所述关系型数据库获取数据,更新所述指定java虚拟机的基表数据,至所有java虚拟机的基表数据一致。
[0146]
在一个实施例中,上述处理器从所述关系型数据库获取数据,更新所述指定java虚拟机的基表数据的步骤,包括:获取筛选数据的条件参数;通过与所述关系型数据库连接的redis服务器,从所述关系型数据库中筛选与所述条件参数对应的数据;将与所述条件参数对应的数据,返回至所述指定java虚拟机进行缓存更新。
[0147]
在一个实施例中,所述条件参数包括数据被调用的历史频率,上述处理器从所述关系型数据库中筛选与所述条件参数对应的数据的步骤,包括:获取当前时刻各数据分别对应的第一调用频率,以及所述当前时刻的前一时刻各数据分别对应的第二调用频率;根据所述第一调用频率以及所述第二调用频率,通过指定计算公式分别计算各数据对应的热点权重值,其中,所述指定计算公式为r(s
t+1
)=a[sgn(a

s
t
)]+b[sgn(a

s
t+1
)],r(s
t+1
)为当前时刻指定数据对应的热点权重值,a,b为平衡常数0≤a≤1、0≤b≤1,sgn()为符号函数,a为当前时刻各数据分别对应的第一调用频率的最大值,s
t
为所述指定数据对应的第一调用频率,s
t+1
为所述指定数据对应的第二调用频率,所述指定数据为全量数据中的任一数据;将各数据对应的热点权重值,按照由大到小进行降序排序;将所述降序排序中排序靠前的指定数量的数据,作为与所述条件参数对应的数据。
[0148]
在一个实施例中,上述处理器将所述降序排序中排序靠前的指定数量的数据,作为与所述条件参数对应的数据的步骤之后,包括:统计与所述条件参数对应的数据中,每个数据分别对应的单位时间内的调用频次;将单位时间内调用频次大于或等于第一预设值的第一数据,均分至第一数量的redis服务器上;将单位时间内调用频次小于所述第一预设值的第二数据,均分至第二数量的redis服务器上,其中,所述第二数量小于所述第一数量。
[0149]
在一个实施例中,所述中间数据器件一一对应部署于各所述前端设备中,所述中间数据器件包括java虚拟机,各所述前端设备通过一一对应的各所述java虚拟机连接redis服务器,redis服务器上部署关系型数据库,各所述前端设备的基表数据相同,上述处理器将从所述文件系统或java虚拟机中获取与所述查询字段对应的数据信息,通过所述中间数据器件将所述数据信息发送至所述指定前端设备的步骤之前,包括:判断指定移动终端的地理位置是否发生更改;若是,则从redis服务器上获取更改后的地理位置对应的推送数据;将所述推送数据按照时间顺序进行排序,形成时序数据列;将所述时序数据列中,距离当前时刻预设时间差内的数据存入所述指定移动终端对应的java虚拟机上。
[0150]
在一个实施例中,所述中间数据器件一一对应部署于各所述前端设备中,所述中间数据器件包括文件系统,各所述前端设备通过所述文件系统连接关系型数据库,上述处理器将从所述文件系统或java虚拟机中获取与所述查询字段对应的数据信息,通过所述中间数据器件将所述数据信息发送至所述指定前端设备的步骤之前,包括:获取所述文件系统中的缓存数据,以及缓存数据的共有特征参数;根据所述共有特征参数的类别,将所述缓存数据分类成各存储基表;根据单次查询的批次数据量,对各所述存储基表进行存储文件划分;依据各所述存储文件的id以及各所述存储文件分别对应的共有特征参数,建立各所
述存储文件分别对应的分词索引。
[0151]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双速据率sdram(ssrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
[0152]
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
[0153]
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1