数据查询方法及装置制造方法及图纸

技术编号:15724536 阅读:101 留言:0更新日期:2017-06-29 10:29
本申请实施例提供了一种数据查询方法及装置,用以解决现有的数据库查询方式存在的处理能力有限,无法满足用户的需求的问题。方法包括:业务服务器接收用户终端发送的第一查询请求,所述第一查询请求中包含表达式,所述表达式用于表示业务逻辑且引用至少一个字段;从预先缓存的表达式与字段值之间的对应关系中,查找所述第一查询请求中包含的表达式对应的字段值,其中,表达式对应的字段值为数据表中该表达式引用的各字段下的字段值;利用查找到的字段值执行所述第一查询请求中包含的表达式,得到执行结果;将所述执行结果携带在第一查询响应中发送给所述用户终端。

【技术实现步骤摘要】
数据查询方法及装置
本申请涉及计算机
,尤其涉及一种数据查询方法及装置。
技术介绍
数据库是按照数据结构来组织、存储和管理数据的仓库,其中集合了各种数据表。可以利用查询请求(如查询语句)对数据表中的字段进行查询、插入、删除和修改,以及对引用数据表中的字段的表达式进行计算。在利用数据库进行的业务处理时,可以将该业务的业务逻辑用表达式表示,表达式中引用业务逻辑所涉及的数据在数据库中所属的字段,以及可以将业务逻辑涉及的数据需要满足的条件用字段需满足的条件进行表示。此时,对于事先能够确认涉及的海量数据需要满足的条件的业务逻辑,现有的数据查询方式中,通常采用数据预备的方式,即业务服务器预先从用于实现业务逻辑的表达式中解析出字段,从数据库中取出符合业务参数值的字段下的字段值,利用取出的字段值执行所述表达式,得到执行结果,之后回流到数据库中。当业务服务器从数据库查询所述确认涉及的数据需要满足的条件的业务逻辑时,数据库将之前回流的数据作为查询结果返回给业务服务器。对于无法预知涉及的海量数据需要满足的条件的业务逻辑,现有的数据查询方式中,通常采用延迟告知用户的手段,通知用户计算可能会消耗N小时,N小时候会将结果推给用户。这是因为,对于海量数据,超过千万条甚至超过亿条的数据需要从数据库读取,这将对数据库造成极大压力。同时,由于网络传输及IO消耗,耗时极为严重,过亿条的数据读取往往会数十分钟甚至数小时,读取之后还需要耗费一定的时间进行计算,这根本无法达到页面级响应的要求。由上述分析可知,现有的查询方式处理关于业务逻辑的查询时,处理能力有限,无法满足用户的需求。
技术实现思路
本申请实施例提供一种数据查询方法及装置方法,用以解决现有的数据库查询方式存在的处理能力有限,无法满足用户的需求的问题。一种数据查询方法,包括:业务服务器接收用户终端发送的第一查询请求,所述第一查询请求中包含表达式,所述表达式用于表示业务逻辑且引用至少一个字段;从预先缓存的表达式与字段值之间的对应关系中,查找所述第一查询请求中包含的表达式对应的字段值,其中,表达式对应的字段值为数据表中该表达式引用的各字段下的字段值;利用查找到的字段值执行所述第一查询请求中包含的表达式,得到执行结果;将所述执行结果携带在第一查询响应中发送给所述用户终端。一种数据查询方法,包括:向业务服务器发送第一查询请求,所述第一查询请求中包含表达式,所述表达式用于实现业务逻辑且引用至少一个字段;接收所述业务服务器返回的第一查询响应,所述第一查询响应中携带有业务服务器利用预先建立的表达式与字段值之间的对应关系,查找所述第一查询请求中包含的表达式对应的字段值,以及利用查找到的字段值执行所述第一查询请求中包含的表达式,得到的执行结果,其中,表达式对应的字段值为数据表中该表达式引用的各字段下的字段值。一种数据查询装置,包括:接收模块,用于接收用户终端发送的第一查询请求,所述第一查询请求中包含表达式,所述表达式用于表示业务逻辑且引用至少一个字段;查找模块,用于从预先缓存的表达式与字段值之间的对应关系中,查找所述第一查询请求中包含的表达式对应的字段值,其中,表达式对应的字段值为数据表中该表达式引用的各字段下的字段值;执行模块,用于利用查找到的字段值执行所述第一查询请求中包含的表达式,得到执行结果;发送模块,用于将所述执行结果携带在第一查询响应中发送给所述用户终端。一种数据查询装置,包括:发送模块,用于向业务服务器发送第一查询请求,所述第一查询请求中包含表达式,所述表达式用于实现业务逻辑且引用至少一个字段;接收模块,用于接收所述业务服务器返回的第一查询响应,所述第一查询响应中携带有业务服务器利用预先建立的表达式与字段值之间的对应关系,查找所述第一查询请求中包含的表达式对应的字段值,以及利用查找到的字段值执行所述第一查询请求中包含的表达式,得到的执行结果,其中,表达式对应的字段值为数据表中该表达式引用的各字段下的字段值。在本申请实施例的方案中,预先缓存表达式与字段值之间的对应关系,在查询时,直接从缓存的对应关系中查询第一查询请求中包含的表达式对应的字段值,之后进行第一查询请求中包含的表达式的执行,也即进行业务逻辑的执行,绕开了从数据库的海量数据中查询表达式引用的字段对应的数据,因此,降低了执行表达式时对数据库带来的压力以及网络传输资源的消耗,并且减少了引用字段的查询以及字段下的数据的网络传输的耗时,使得执行结果可以在页面级响应时间内返回给用户终端,满足了用户的需求。附图说明图1为本申请实施例一提供的数据查询方法的流程图;图2为本申请实施例二提供的数据查询方法的流程图;图3为本申请实施例二提供的数据处理过程的框图;图4为本申请实施例三提供的数据查询装置的结构示意图;图5为本申请实施例四提供的数据查询装置的结构示意图。具体实施方式以下结合说明书附图对本申请的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本申请,并不用于限定本申请。并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。实施例一如图1所示,其为本申请实施例一提供的数据查询方法的流程图,包括以下步骤:步骤101:业务服务器接收用户终端发送的第一查询请求,所述第一查询请求中包含表达式,所述表达式用于表示业务逻辑且引用至少一个字段;上述字段为数据库的数据表中的字段。所述第一查询请求中可以包括条件信息,也可以不包括条件信息,其中条件信息为第一查询请求中包含的表达式引用的字段需满足的条件;由于这里用表达式表示了业务逻辑,因此,这里字段需满足的条件也即为业务逻辑涉及的数据需要满足的条件。在不包括条件信息时,表明业务逻辑设计的数据是表达式中引用的字段下的所有数据。下面通过举例对步骤101进行说明:假设数据库的数据表A(tableA)中存储了商品编号、好评率、关注度、差评率、收藏率等字段以及各字段下的字段值,业务逻辑为商品受用户喜爱程度,用于表示喜爱程度的表达式为(好评率+收藏率)*常数;则用户终端可以利用SQL(StructuredQueryLanguage,结构化查询语言)语句向业务服务器发送不包括条件信息的第一查询请求,即select(好评率+收藏率)*常数;此时业务服务器即可接收到select(好评率+收藏率)*常数;用户终端也可以向业务服务器发送包含条件信息的第一查询请求,即select(好评率+收藏率)*常数where好评率=“指定范围值1”and收藏率=“指定范围值2”,这里的指定范围值1是指好评率字段的列值为指定范围内的值,指定范围值2是指好评率字段的列值为指定范围内的值。步骤102:从预先缓存的表达式与字段值之间的对应关系中,查找所述第一查询请求中包含的表达式对应的字段值,其中,表达式对应的字段值为数据表中该表达式引用的各字段下的字段值;由于业务服务器提供给用户终端查询的业务逻辑是有限的,用户终端可以在提供的业务逻辑中选择一种或多种业务逻辑进行查询,因此,本步骤102中,预先将各个业务逻辑用表达式来表示,建立并缓存表达式与表达式引用的字段下的字段值之间的对应关系;这里,建立的对应关系通常是表达式与表达式引用的字段下的所有字段值之间的对应关系。这是因为,用户终端查询的本文档来自技高网...
数据查询方法及装置

【技术保护点】
一种数据查询方法,其特征在于,包括:业务服务器接收用户终端发送的第一查询请求,所述第一查询请求中包含表达式,所述表达式用于表示业务逻辑且引用至少一个字段;从预先缓存的表达式与字段值之间的对应关系中,查找所述第一查询请求中包含的表达式对应的字段值,其中,表达式对应的字段值为数据表中该表达式引用的各字段下的字段值;利用查找到的字段值执行所述第一查询请求中包含的表达式,得到执行结果;将所述执行结果携带在第一查询响应中发送给所述用户终端。

【技术特征摘要】
1.一种数据查询方法,其特征在于,包括:业务服务器接收用户终端发送的第一查询请求,所述第一查询请求中包含表达式,所述表达式用于表示业务逻辑且引用至少一个字段;从预先缓存的表达式与字段值之间的对应关系中,查找所述第一查询请求中包含的表达式对应的字段值,其中,表达式对应的字段值为数据表中该表达式引用的各字段下的字段值;利用查找到的字段值执行所述第一查询请求中包含的表达式,得到执行结果;将所述执行结果携带在第一查询响应中发送给所述用户终端。2.如权利要求1所述的方法,其特征在于,所述第一查询请求中还包括条件信息,该条件信息为第一查询请求中包含的表达式引用的字段需满足的条件;从预先缓存的表达式与字段值之间的对应关系中,查找所述第一查询请求中包含的达式对应的字段值之后,利用查找到的字段值执行所述第一查询请求中包含的表达式,得到执行结果之前,所述方法还包括:利用所述第一查询请求中包含的条件信息,对查找到的字段值进行过滤,获得满足所述条件信息的字段值;利用查找到的字段值执行所述第一查询请求中包含的表达式,得到执行结果,具体为:利用获得的满足所述条件信息的字段值,执行所述第一查询请求中包含的表达式,得到执行结果。3.如权利要求1或2所述的方法,其特征在于,通过以下方式建立表达式与字段值之间的对应关系:接收第二查询请求,所述第二查询请求中包含表达式和数据表标识,所述第二查询请求中包含的表达式引用至少一个字段,所述数据表标识所表示的数据表中包含所述第二查询请求中包含的表达式所引用的字段;利用所述第二查询请求中包含的表达式和所述数据表标识,从数据库中获取第二查询请求中包含的表达式所引用的字段下的字段值;建立从数据库中获取的字段值与第二查询请求中包含的表达式之间的对应关系。4.如权利要求3所述的方法,其特征在于,利用所述第二查询请求中包含的表达式和所述数据表标识,从数据库中获取第二查询请求中包含的表达式所引用的字段下的字段值,具体包括:解析所述第二查询请求中包含的表达式所引用的字段;从数据库中查找所述数据表标识所表示的数据表;从查找到的数据表中获取解析出的字段下的字段值。5.如权利要求3所述的方法,其特征在于,利用所述第二查询请求中包含的表达式和所述数据表标识,从数据库中获取第二查询请求中包含的表达式所引用的字段下的字段值之后,建立从数据库中获取的字段值与第二查询请求中包含的表达式之间的对应关系之前,所述方法还包括:将从数据库中获取的字段值进行切割;对切割后得到的字段值进行压缩,得到字段值压缩包;建立从数据库中获取的字段值与第二查询请求中包含的表达式之间的对应关系,具体为:建立所述字段值压缩包与所述第二查询请求中包含的表达式之间的对应关系。6.如权利要求3所述的方法,其特征在于,所述方法还包括:根据配置的对应关系更新时刻,在所述对应关系更新时刻到来时,重新从数据库中获取第二查询请求中包含的表达式所引用的字段下的字段值;利用重新获取的字段值更新建立的所述对应关系。7.如权利要求1所述的方法,其特征在于,利用查找到的字段值执行所述第一查询请求中包含的表达式,得到执行结果,包括:将查找到的字段值以流的方式输入流式处理集群;将所述流式处理集群输出的作为所述第一查询请求中包含的表达式的执行结果。8.一种数据查询方法,其特征在于,包括:向业务服务器发送第一查询请求,所述第一查询请求中包含表达式,所述表达式用于实现业务逻辑且引用至少一个字段;接收所述业务服务器返回的第一查询响应,所述第一查询响应中携带有业务服务器利用预先建立的表达式与字段值之间的对应关系,查找所述第一查询请求中包含的表达式对应的字段值,以及利用查找到的字段值执行所述第一查询请求中包含的表达式,得到的执行结果,其中,表达式对应的字段值...

【专利技术属性】
技术研发人员:郝佳
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

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

1