数据查询方法、装置、设备及存储介质制造方法及图纸

技术编号:35700458 阅读:13 留言:0更新日期:2022-11-23 14:54
本申请提供一种数据查询方法、装置、设备及存储介质,涉及数据查询技术领域。该方法包括:接收前端设备发送的数据查询请求;根据所述数据查询请求,确定多个数据查询任务,以及多个线程中每个线程对应的数据查询任务;采用所述多个线程,分别对预设应用的数据日志执行对应的数据查询任务;若所述多个线程中存在执行超时的第一目标线程,则采用第一预设线程对所述第一目标线程执行对应的数据查询任务得到的第一目标数据进行监测;将所述多个线程中执行完毕的第二目标线程执行的对应数据查询任务得到的第二目标数据返回至所述前端设备。相对于现有技术,避免了前端设备收到的数据不完整的问题。完整的问题。完整的问题。

【技术实现步骤摘要】
数据查询方法、装置、设备及存储介质


[0001]本申请涉及数据处理
,具体而言,涉及一种数据查询方法、装置、设备及存储介质。

技术介绍

[0002]在大型业务系统的开发中,经常会遇到亿级、十亿级以上的海量数据查询情况,而由于数据量大的原因,可能会导致业务接口的响应速度变慢,从而影响用户的体验感,因此就需要优化接口的响应效率。而由于业务的复杂性,一个接口内部可能会涉及到多个不同的数据库查询,在这种情况下,接口的查询效率一般取决于内部响应最慢的那条查询语句,而如果那条查询特别慢,就会导致接口响应速度变慢,从而最终影响前端页面的用户操作体验感。
[0003]为了解决上述问题,现有技术提出了一种基于多线程的查询方案。这种方案开启多个线程来执行接口中的数据查询逻辑,系统根据某种算法将不同的查询逻辑分配给多个线程执行,接口最终的执行时间取决于最慢的那个线程。但是当执行速度最慢的那个线程卡死的时候,为了不让前端发起的请求响应超时,接口会设置一个最长等待时间,当到达这个时间限制时,接口不会再等待那个线程,而是直接把已获取到的查询结果返回给前端。
[0004]但是这样的查询方法,若存在某个线程执行超时的情况时,不会继续等待执行超时的线程,导致前端收到的数据不是完整的。

技术实现思路

[0005]本申请的目的在于,针对上述现有技术中的不足,提供一种数据查询方法、装置、设备及存储介质,以解决现有技术中前端设备收到的数据不完整的问题。
[0006]为实现上述目的,本申请实施例采用的技术方案如下:
[0007]第一方面,本申请一实施例提供了一种数据查询方法,所述方法包括:
[0008]接收前端设备发送的数据查询请求;
[0009]根据所述数据查询请求,确定多个数据查询任务,以及多个线程中每个线程对应的数据查询任务;
[0010]采用所述多个线程,分别对预设应用的数据日志执行对应的数据查询任务;
[0011]若所述多个线程中存在执行超时的第一目标线程,则采用第一预设线程对所述第一目标线程执行对应的数据查询任务得到的第一目标数据进行监测;
[0012]将所述多个线程中执行完毕的第二目标线程执行的对应数据查询任务得到的第二目标数据返回至所述前端设备。
[0013]可选地,所述采用第一预设线程对所述第一目标线程执行对应的数据查询任务得到的第一目标数据进行监测之前,所述方法还包括:
[0014]将所述第一目标线程的任务类传递至所述第一预设线程。
[0015]可选地,所述方法还包括:
[0016]若所述第一预设线程监测到所述第一目标线程执行完毕,则采用所述第一预设线程将监测到的所述第一目标数据存储至预设数据库中,以使得所述前端设备采用第二预设线程轮询所述预设数据库,以获取所述第一目标数据。
[0017]可选地,若所述第一目标线程的数量为多个,则所述采用所述第一预设线程将监测到的所述第一目标数据存储至预设数据库中,包括:
[0018]采用所述第一预设线程,对多个第一目标数据进行排序后,存储至所述预设数据库中,每个第一目标数据为一个第一目标线程执行对应数据查询任务得到的数据。
[0019]可选地,所述数据查询请求包括:查询范围、所述查询范围对应的分析单位以及指标项;所述根据所述数据查询请求,确定多个数据查询任务,以及多个线程中每个线程对应的数据查询任务,包括:
[0020]根据所述分析单位,对所述查询范围进行拆分,得到多个子查询范围;
[0021]根据所述多个子查询范围以及所述指标项,分别生成所述多个数据查询任务;
[0022]将所述多个数据查询任务分配至所述多个线程。
[0023]可选地,若所述查询范围为:时间范围,所述分析单位为单位时间;所述根据所述分析单位,对所述查询范围进行拆分,得到多个子查询范围,包括:
[0024]根据所述单位时间,对所述时间范围进行拆分,得到多个时间区间,所述多个子查询范围为所述多个时间区间。
[0025]可选地,若所述查询范围为:数据维度范围,所述分析单位为单位维度;所述根据所述分析单位,对所述查询范围进行拆分,得到多个子查询范围,包括:
[0026]根据所述单位维度,对所述数据维度范围进行拆分,得到多个子维度,所述多个子查询范围为所述多个子维度。
[0027]可选地,所述数据维度范围为:应用场景维度、平台维度、地区维度、以及渠道维度中任一维度的范围。
[0028]可选地,所述采用第一预设线程对所述第一目标线程执行对应数据查询任务得到的第一目标数据进行监测之前,所述方法还包括:
[0029]采用预先开启的检测器,检测所述多个线程是否存在执行超时;
[0030]若所述多个线程中存在执行超时的所述第一目标线程,开启所述第一预设线程。
[0031]第二方面,本申请另一实施例提供了一种数据查询装置,所述装置包括:接收模块、确定模块、查询模块、监测模块和返回模块,其中:
[0032]所述接收模块,用于接收前端设备发送的数据查询请求;
[0033]所述确定模块,用于根据所述数据查询请求,确定多个数据查询任务,以及多个线程中每个线程对应的数据查询任务;
[0034]所述查询模块,用于采用所述多个线程,分别对预设应用的数据日志执行对应的数据查询任务;
[0035]所述监测模块,用于若所述多个线程中存在执行超时的第一目标线程,则采用第一预设线程对所述第一目标线程执行对应的数据查询任务得到的第一目标数据进行监测;
[0036]所述返回模块,用于将所述多个线程中执行完毕的第二目标线程执行的对应数据查询任务得到的第二目标数据返回至所述前端设备。
[0037]可选地,所述装置还包括:发送模块,用于将所述第一目标线程的任务类传递至所
述第一预设线程。
[0038]可选地,所述装置还包括:存储模块,用于若所述第一预设线程监测到所述第一目标线程执行完毕,则采用所述第一预设线程将监测到的所述第一目标数据存储至预设数据库中,以使得所述前端设备采用第二预设线程轮询所述预设数据库,以获取所述第一目标数据。
[0039]可选地,所述存储模块,具体用于采用所述第一预设线程,对多个第一目标数据进行排序后,存储至所述预设数据库中,每个第一目标数据为一个第一目标线程执行对应数据查询任务得到的数据。
[0040]可选地,所述装置还包括:拆分模块、生成模块和分配模块,其中:
[0041]所述拆分模块,用于根据所述分析单位,对所述查询范围进行拆分,得到多个子查询范围;
[0042]所述生成模块,用于根据所述多个子查询范围以及所述指标项,分别生成所述多个数据查询任务;
[0043]所述分配模块,用于将所述多个数据查询任务分配至所述多个线程。
[0044]可选地,若所述查询范围为:时间范围,所述分析单位为单位时间;所述拆分模块,具体用于根据所述单位时间,对所述时间范本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据查询方法,其特征在于,所述方法包括:接收前端设备发送的数据查询请求;根据所述数据查询请求,确定多个数据查询任务,以及多个线程中每个线程对应的数据查询任务;采用所述多个线程,分别对预设应用的数据日志执行对应的数据查询任务;若所述多个线程中存在执行超时的第一目标线程,则采用第一预设线程对所述第一目标线程执行对应的数据查询任务得到的第一目标数据进行监测;对所述多个线程中执行完毕的第二目标线程,将其执行对应的数据查询任务得到的第二目标数据返回至所述前端设备。2.如权利要求1所述的方法,其特征在于,所述采用第一预设线程对所述第一目标线程执行对应的数据查询任务得到的第一目标数据进行监测之前,所述方法还包括:将所述第一目标线程的任务类传递至所述第一预设线程。3.如权利要求2所述的方法,其特征在于,所述方法还包括:若所述第一预设线程监测到所述第一目标线程执行完毕,则采用所述第一预设线程将监测到的所述第一目标数据存储至预设数据库中,以使得所述前端设备采用第二预设线程轮询所述预设数据库,以获取所述第一目标数据。4.如权利要求3所述的方法,其特征在于,若所述第一目标线程的数量为多个,则所述采用所述第一预设线程将监测到的所述第一目标数据存储至预设数据库中,包括:采用所述第一预设线程,对多个第一目标数据进行排序后,存储至所述预设数据库中,每个第一目标数据为一个第一目标线程执行对应数据查询任务得到的数据。5.如权利要求1所述的方法,其特征在于,所述数据查询请求包括:查询范围、所述查询范围对应的分析单位以及指标项;所述根据所述数据查询请求,确定多个数据查询任务,以及多个线程中每个线程对应的数据查询任务,包括:根据所述分析单位,对所述查询范围进行拆分,得到多个子查询范围;根据所述多个子查询范围以及所述指标项,分别生成所述多个数据查询任务;将所述多个数据查询任务分配至所述多个线程。6.如权利要求5所述的方法,其特征在于,若所述查询范围为:时间范围,所述分析单位为单位时间;所述根据所述分析单位,对所述查询范围进行拆分,得到多个子查询范围,包括:根据所述单位时间,对所述时间范围进行拆分,得到多个...

【专利技术属性】
技术研发人员:柴铭
申请(专利权)人:网易杭州网络有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1