本申请实施例涉及计算机,尤其涉及一种业务数据总值查询方法、装置、设备、存储介质以及产品。
背景技术:
1、目前,业务数据查询系统可以向用户提供查询用户历史数据的功能,在查询处理过程中,会涉及到需要汇总一个时间段内库表数据的计算需求,例如,业务流水总额、业务成本统计等。在需要汇总数据的时间段较长的情况下,例如,需要计算按月为单位的数据总值以及未结束的本月的数据总值,以及,在用户体量较大和每个用户的数据量较多的情况下,会对系统性能产生一定的挑战。由于数据都会持久化存储在数据库中,一次查询需要从数据库获取较多数据,会增加数据库压力,因而,会设置良好的缓存系统进行支撑。
2、相关技术中,在进行业务数据查询时,在每次缓存未命中的情况下,会直接向数据库请求汇总数据,由于数据库本身计算能力较差,依赖于数据库计算能力的高并发请求会导致整个数据库集群的性能变差,容易因高耗时导致数据库的响应速度变慢,在记录历史数据的数据库表可能被不同的业务系统使用的情况下,使得所有数据库表的读写请求的响应延迟会增大,影响整个数据库集群对应的其他业务。针对采用另外设置一套数据源的异步离线统计系统进行业务数据的查询处理的方案,其需要单独设置异步离线统计系统,使得查询到的数据相对实际情况有一定的延迟,实现成本较高。
技术实现思路
1、本申请实施例提供了一种业务数据总值查询方法、装置、设备、存储介质以及产品,解决了相关技术中依赖于数据库计算能力的高并发请求会导致整个数据库集群的性能变差,使得所有数据库表的读写请求的响应延迟会增大,影响整个数据库集群对应的其他业务,以及设置离线统计系统导致成本过高的问题,实现了有效减少需要查询的数据量,降低数据库压力,同时避免直接向数据库请求汇总数据导致响应速度变慢,有效维护数据库性能,减少对于其它并发查询的影响,并且有效结合缓存中的历史计算结果减少计算量,提高总值查询请求的响应速度,优化用户体验。
2、第一方面,本申请实施例提供了一种业务数据总值查询方法,该方法包括:
3、在接收到客户端发送的包含查询条件的总值查询请求的情况下,基于所述查询条件中的查询时间粒度确定总值查询的起始时间戳,在缓存中查询是否存储有符合所述查询条件以及所述起始时间戳的第一键值对,所述第一键值对的键值包括第一历史总值以及第一历史时间戳;
4、在所述缓存中存储有所述第一键值对的情况下,在第一时间范围内对数据库进行满足所述查询条件的分批数据查询,得到多个第一行记录,所述第一时间范围的开始时间以及结束时间分别为所述第一历史时间戳以及所述总值查询请求的发起时间戳;
5、将所述多个第一行记录中的目标字段值进行累加得到第一增量值,向所述客户端发送所述第一增量值以及所述第一历史总值相加后的第一计算结果。
6、第二方面,本申请实施例还提供了一种业务数据总值查询装置,该装置包括:
7、键值对查询模块,配置为在接收到客户端发送的包含查询条件的总值查询请求的情况下,基于所述查询条件中的查询时间粒度确定总值查询的起始时间戳,在缓存中查询是否存储有符合所述查询条件以及所述起始时间戳的第一键值对,所述第一键值对的键值包括第一历史总值以及第一历史时间戳;
8、行记录查询模块,配置为在所述缓存中存储有所述第一键值对的情况下,在第一时间范围内对数据库进行满足所述查询条件的分批数据查询,得到多个第一行记录,所述第一时间范围的开始时间以及结束时间分别为所述第一历史时间戳以及所述总值查询请求的发起时间戳;
9、总值结果发送模块,配置为将所述多个第一行记录中的目标字段值进行累加得到第一增量值,向所述客户端发送所述第一增量值以及所述第一历史总值相加后的第一计算结果。
10、第三方面,本申请实施例还提供了一种业务数据总值查询设备,该设备包括:
11、一个或多个处理器;
12、存储装置,配置为存储一个或多个程序,
13、当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本申请实施例所述的业务数据总值查询方法。
14、第四方面,本申请实施例还提供了一种存储计算机可执行指令的非易失性存储介质,所述计算机可执行指令在由计算机处理器执行时配置为执行本申请实施例所述的业务数据总值查询方法。
15、第五方面,本申请实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中,设备的至少一个处理器从计算机可读存储介质读取并执行计算机程序,使得设备执行本申请实施例所述的业务数据总值查询方法。
16、本申请实施例中,通过在接收到客户端发送的包含查询条件的总值查询请求的情况下,基于查询条件中的查询时间粒度确定总值查询的起始时间戳,在缓存中查询是否存储有符合查询条件以及起始时间戳的第一键值对,第一键值对的键值包括第一历史总值以及第一历史时间戳;在缓存中存储有第一键值对的情况下,在第一时间范围内对数据库进行满足查询条件的分批数据查询,得到多个第一行记录,第一时间范围的开始时间以及结束时间分别为第一历史时间戳以及总值查询请求的发起时间戳;将多个第一行记录中的目标字段值进行累加得到第一增量值,向客户端发送第一增量值以及第一历史总值相加后的第一计算结果。上述方案中,通过查询缓存中是否存储有匹配查询条件的第一键值对,可以确定缓存中记录的历史总值数据是否覆盖部分或全部的需要查询的时间段;在命中缓存的情况下,通过从数据库查询历史时间戳到该总值查询请求的发起时间戳的数据,有效减少需要查询的数据量,降低数据库压力;通过对数据库进行分批数据查询得到数据行后,再进行汇总累加,避免直接向数据库请求汇总数据导致的响应速度变慢,优化一次性查询导致数据量过大的问题,有效维护数据库性能,减少对于其它并发查询的影响;通过向客户端返回第一增量值以及第一历史总值相加后的第一计算结果,结合缓存中已存储的第一历史总值减少计算量,提高总值查询请求的响应速度,优化用户体验。
1.一种业务数据总值查询方法,其特征在于,包括:
2.根据权利要求1所述的业务数据总值查询方法,其特征在于,还包括:
3.根据权利要求2所述的业务数据总值查询方法,其特征在于,所述查询条件还包括用户标识以及业务类型,在所述向所述客户端发送所述第一总值之后,还包括:
4.根据权利要求1所述的业务数据总值查询方法,其特征在于,在所述向所述客户端发送所述第一增量值以及所述第一历史总值相加后的第一计算结果之后,还包括:
5.根据权利要求1所述的业务数据总值查询方法,其特征在于,在所述向所述客户端发送所述第一增量值以及所述第一历史总值相加后的第一计算结果之后,还包括:
6.根据权利要求1所述的业务数据总值查询方法,其特征在于,所述查询条件还包括待查询时段,所述方法还包括:
7.根据权利要求6所述的业务数据总值查询方法,其特征在于,还包括:
8.根据权利要求7所述的业务数据总值查询方法,其特征在于,在所述向所述客户端发送所述第三增量值以及所述第二历史总值相加后的第三计算结果之后,还包括:
9.一种业务数据总值查询装置,其特征在于,包括:
10.一种业务数据总值查询设备,所述设备包括:一个或多个处理器;存储装置,配置为存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现权利要求1-8中任一项所述的业务数据总值查询方法。
11.一种存储计算机可执行指令的非易失性存储介质,所述计算机可执行指令在由计算机处理器执行时配置为执行权利要求1-8中任一项所述的业务数据总值查询方法。
12.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-8中任一项所述的业务数据总值查询方法。