CN106897280A - 数据查询方法及装置 - Google Patents

数据查询方法及装置 Download PDF

Info

Publication number
CN106897280A
CN106897280A CN201510954580.2A CN201510954580A CN106897280A CN 106897280 A CN106897280 A CN 106897280A CN 201510954580 A CN201510954580 A CN 201510954580A CN 106897280 A CN106897280 A CN 106897280A
Authority
CN
China
Prior art keywords
expression formula
field value
inquiry request
field
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201510954580.2A
Other languages
English (en)
Other versions
CN106897280B (zh
Inventor
郝佳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cainiao Smart Logistics Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201510954580.2A priority Critical patent/CN106897280B/zh
Publication of CN106897280A publication Critical patent/CN106897280A/zh
Application granted granted Critical
Publication of CN106897280B publication Critical patent/CN106897280B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24539Query rewriting; Transformation using cached or materialised query results

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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

Description

数据查询方法及装置
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据查询方法及装置。
背景技术
数据库是按照数据结构来组织、存储和管理数据的仓库,其中集合了各种数据表。可以利用查询请求(如查询语句)对数据表中的字段进行查询、插入、删除和修改,以及对引用数据表中的字段的表达式进行计算。
在利用数据库进行的业务处理时,可以将该业务的业务逻辑用表达式表示,表达式中引用业务逻辑所涉及的数据在数据库中所属的字段,以及可以将业务逻辑涉及的数据需要满足的条件用字段需满足的条件进行表示。
此时,对于事先能够确认涉及的海量数据需要满足的条件的业务逻辑,现有的数据查询方式中,通常采用数据预备的方式,即业务服务器预先从用于实现业务逻辑的表达式中解析出字段,从数据库中取出符合业务参数值的字段下的字段值,利用取出的字段值执行所述表达式,得到执行结果,之后回流到数据库中。当业务服务器从数据库查询所述确认涉及的数据需要满足的条件的业务逻辑时,数据库将之前回流的数据作为查询结果返回给业务服务器。
对于无法预知涉及的海量数据需要满足的条件的业务逻辑,现有的数据查询方式中,通常采用延迟告知用户的手段,通知用户计算可能会消耗N小时,N小时候会将结果推给用户。这是因为,对于海量数据,超过千万条甚至超过亿条的数据需要从数据库读取,这将对数据库造成极大压力。同时,由于网络传输及IO消耗,耗时极为严重,过亿条的数据读取往往会数十分钟甚至数小时,读取之后还需要耗费一定的时间进行计算,这根本无法达到页面级响应的要求。
由上述分析可知,现有的查询方式处理关于业务逻辑的查询时,处理能力有限,无法满足用户的需求。
发明内容
本申请实施例提供一种数据查询方法及装置方法,用以解决现有的数据库查询方式存在的处理能力有限,无法满足用户的需求的问题。
一种数据查询方法,包括:
业务服务器接收用户终端发送的第一查询请求,所述第一查询请求中包含表达式,所述表达式用于表示业务逻辑且引用至少一个字段;
从预先缓存的表达式与字段值之间的对应关系中,查找所述第一查询请求中包含的表达式对应的字段值,其中,表达式对应的字段值为数据表中该表达式引用的各字段下的字段值;
利用查找到的字段值执行所述第一查询请求中包含的表达式,得到执行结果;
将所述执行结果携带在第一查询响应中发送给所述用户终端。
一种数据查询方法,包括:
向业务服务器发送第一查询请求,所述第一查询请求中包含表达式,所述表达式用于实现业务逻辑且引用至少一个字段;
接收所述业务服务器返回的第一查询响应,所述第一查询响应中携带有业务服务器利用预先建立的表达式与字段值之间的对应关系,查找所述第一查询请求中包含的表达式对应的字段值,以及利用查找到的字段值执行所述第一查询请求中包含的表达式,得到的执行结果,其中,表达式对应的字段值为数据表中该表达式引用的各字段下的字段值。
一种数据查询装置,包括:
接收模块,用于接收用户终端发送的第一查询请求,所述第一查询请求中包含表达式,所述表达式用于表示业务逻辑且引用至少一个字段;
查找模块,用于从预先缓存的表达式与字段值之间的对应关系中,查找所述第一查询请求中包含的表达式对应的字段值,其中,表达式对应的字段值为数据表中该表达式引用的各字段下的字段值;
执行模块,用于利用查找到的字段值执行所述第一查询请求中包含的表达式,得到执行结果;
发送模块,用于将所述执行结果携带在第一查询响应中发送给所述用户终端。
一种数据查询装置,包括:
发送模块,用于向业务服务器发送第一查询请求,所述第一查询请求中包含表达式,所述表达式用于实现业务逻辑且引用至少一个字段;
接收模块,用于接收所述业务服务器返回的第一查询响应,所述第一查询响应中携带有业务服务器利用预先建立的表达式与字段值之间的对应关系,查找所述第一查询请求中包含的表达式对应的字段值,以及利用查找到的字段值执行所述第一查询请求中包含的表达式,得到的执行结果,其中,表达式对应的字段值为数据表中该表达式引用的各字段下的字段值。
在本申请实施例的方案中,预先缓存表达式与字段值之间的对应关系,在查询时,直接从缓存的对应关系中查询第一查询请求中包含的表达式对应的字段值,之后进行第一查询请求中包含的表达式的执行,也即进行业务逻辑的执行,绕开了从数据库的海量数据中查询表达式引用的字段对应的数据,因此,降低了执行表达式时对数据库带来的压力以及网络传输资源的消耗,并且减少了引用字段的查询以及字段下的数据的网络传输的耗时,使得执行结果可以在页面级响应时间内返回给用户终端,满足了用户的需求。
附图说明
图1为本申请实施例一提供的数据查询方法的流程图;
图2为本申请实施例二提供的数据查询方法的流程图;
图3为本申请实施例二提供的数据处理过程的框图;
图4为本申请实施例三提供的数据查询装置的结构示意图;
图5为本申请实施例四提供的数据查询装置的结构示意图。
具体实施方式
以下结合说明书附图对本申请的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本申请,并不用于限定本申请。并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
实施例一
如图1所示,其为本申请实施例一提供的数据查询方法的流程图,包括以下步骤:
步骤101:业务服务器接收用户终端发送的第一查询请求,所述第一查询请求中包含表达式,所述表达式用于表示业务逻辑且引用至少一个字段;
上述字段为数据库的数据表中的字段。
所述第一查询请求中可以包括条件信息,也可以不包括条件信息,其中条件信息为第一查询请求中包含的表达式引用的字段需满足的条件;由于这里用表达式表示了业务逻辑,因此,这里字段需满足的条件也即为业务逻辑涉及的数据需要满足的条件。
在不包括条件信息时,表明业务逻辑设计的数据是表达式中引用的字段下的所有数据。
下面通过举例对步骤101进行说明:
假设数据库的数据表A(table A)中存储了商品编号、好评率、关注度、差评率、收藏率等字段以及各字段下的字段值,业务逻辑为商品受用户喜爱程度,用于表示喜爱程度的表达式为(好评率+收藏率)*常数;
则用户终端可以利用SQL(Structured Query Language,结构化查询语言)语句向业务服务器发送不包括条件信息的第一查询请求,即select(好评率+收藏率)*常数;
此时业务服务器即可接收到select(好评率+收藏率)*常数;
用户终端也可以向业务服务器发送包含条件信息的第一查询请求,即select(好评率+收藏率)*常数where好评率=“指定范围值1”and收藏率=“指定范围值2”,这里的指定范围值1是指好评率字段的列值为指定范围内的值,指定范围值2是指好评率字段的列值为指定范围内的值。
步骤102:从预先缓存的表达式与字段值之间的对应关系中,查找所述第一查询请求中包含的表达式对应的字段值,其中,表达式对应的字段值为数据表中该表达式引用的各字段下的字段值;
由于业务服务器提供给用户终端查询的业务逻辑是有限的,用户终端可以在提供的业务逻辑中选择一种或多种业务逻辑进行查询,因此,本步骤102中,预先将各个业务逻辑用表达式来表示,建立并缓存表达式与表达式引用的字段下的字段值之间的对应关系;
这里,建立的对应关系通常是表达式与表达式引用的字段下的所有字段值之间的对应关系。这是因为,用户终端查询的业务逻辑(表达式)是可以确定的,但是,由于各个用户终端的需求不同,查询的业务逻辑涉及到字段下的具体哪些字段值(数据)可能是千差万别的,相应的结果也会千差万别,这也是现有技术无法使用数据回流技术来满足用户的需求的原因,这里缓存表达式引用的字段下的所有字段值,便于后续满足不同用户终端的需求。
由于表达式对应的字段值的数据量较大,因此,可以用表达式命名字段值文件的名称或作为字段值文件名称的一部分来表明表达式和字段值的对应关系。
字段值的具体存储方式可以以二级制格式进行存储,以行进行区分;假设“好评率”下的字段值为60%、95%、70%......70%;“收藏率”下的字段值为80%、78%、30%......75%;则二进制文件中存储的数据可以为:
在第一查询请求中包括条件信息时,执行步骤102之后,还需要利用所述第一查询请求中包含的条件信息,对查找到的字段值进行过滤,获得满足所述条件信息的字段值;
沿用步骤101中的例子,假设指定范围值1和指定范围2均为100-100000,则这里查找缓存的对应关系中表达式(好评率+收藏率)*常数对应的字段值为“好评率”和“收藏率”这两个字段下的字段值;然后从“好评率”这一字段下选择列值在100-100000的字段值,以及从“收藏率”这一字段下选择列值在100-100000的字段值。
具体的,可以通过以下三个步骤建立表达式与字段值之间的对应关系:
第一步:接收第二查询请求,所述第二查询请求中包含表达式和数据表标识,所述第二查询请求中包含的表达式引用至少一个字段,所述数据表标识所表示的数据表中包含所述第二查询请求中包含的表达式所引用的字段;
若需要建立的表达式与字段值之间的对应关系为(好评率+收藏率)*常数与“好评率”下的字段值和“收藏率”下的字段值,则上述第一步中,第二查询请求使用的查询语句可以为:
select(好评率+收藏率)*常数from table A
第二步:利用所述第二查询请求中包含的表达式和所述数据表标识,从数据库中获取第二查询请求中包含的表达式所引用的字段下的字段值;
上述第二查询请求中包含的数据表标识表示的数据表,包含了第二查询请求中包含表达式引用的字段,以及字段下的字段值;因此,可以直接利用数据表标识从数据库中查找表达式所引用的字段下的字段值;
这里的第二步具体包括以下步骤1)至步骤3):
步骤1):解析所述第二查询请求中包含的表达式所引用的字段;
步骤1)的具体实现可以为:将所述第二查询请求中包含的表达式中包含的字符与所述数据表标识所表示的数据表中包含的字段进行匹配;将匹配成功的字符作为所述第二查询请求中包含的表达式所引用的字段。
步骤2):从数据库中查找所述数据表标识所表示的数据表;
步骤3):从查找到的数据表中获取解析出的字段下的字段值。
第三步:建立从数据库中获取的字段值与第二查询请求中包含的表达式之间的对应关系。
在针对每一业务逻辑,利用上述三个步骤步骤建立了表示该业务逻辑的表达式和字段值之间的对应关系之后,可以将对应关系保存在业务服务器的本地缓存中。对于海量数据而言,还可以将对应关系保存在缓存集群中。
建立了上述对应关系之后,将上述对应关系直接存储在缓存集群或者本地缓存中,实际读取中尽管降低了数据库的压力,加快了业务服务器对用户终端的查询响应速度,然而,无论是存放到本地文件系统中或者放到缓存中一旦读取都会消耗极大的IO资源或网络资源。以测试数据为例,三个整数(int)类型的字段数据量一亿条的导出备份数据大小超过1G,那么,1G大小无论是存放到本地文件系统中或者放到缓存中一旦读取都会消耗极大的IO资源或网络资源。
为了减少IO资源或网络资源的消耗,本申请实施例采用数据分割以及数据压缩的手段,在上述第二步之后,下述第三步之前,还将从数据库中获取的字段值进行切割;对切割后得到的字段值进行压缩,得到字段值压缩包;
具体分割时,通常可以将每千万条数据为一个分割体,如上述1G文件,将会被分割成10个分割体,分割后每个分割体大小为百兆左右。同时,对分隔体采用压缩算法(例如:LZ4极速压缩算法进行压缩,LZ4单核的压缩速度超过400MB/s,单核的解压速度超过1GB/s),压缩后的文件分割体在1M左右,并将分割体存入缓存集群中。此时,上述第三步建立的对应关系具体为:字段值压缩包与所述第二查询请求中包含的表达式之间的对应关系。
步骤103:利用查找到的字段值执行所述第一查询请求中包含的表达式,得到执行结果;
这里,若步骤102中获得的是满足所述条件信息的字段值,则此时,本步骤103具体为:利用获得的满足所述条件信息的字段值,执行所述第一查询请求中包含的表达式,得到执行结果。
此外,考虑到获得的满足所述条件信息的字段值的数据量较大,为了快速地利用获得的字段值执行所述第一查询请求中包含的表达式,业务服务器可以将查找到的字段值以流的方式输入流式(Storm)处理集群;由然后由Storm处理集群来对所述表达式进行处理,也即进行业务逻辑的处理,之后所述服务器将所述流式处理集群输出的作为所述第一查询请求中包含的表达式的执行结果。
若获得的满足所述条件信息的字段值为字段值压缩包,则Storm处理集群在进行数据逻辑处理之前还需要先对数据进行恢复(也即解压缩处理)。将恢复后的数据以数据流形式喷出,以便于进行数据逻辑处理,这一过程详见图2所示。
这里,若用户终端的条件信息中还包含排序(升序及降序)以及取排列在前N位的执行结果,则还可以对所述执行结果进行排序,从排序后的执行结果中取出排列在前N位的执行结果。
步骤104:将所述执行结果携带在第一查询响应中发送给所述用户终端。
此外,在本申请实施例中,考虑到每个数据库中的数据是实时变化的,因此,为了提高返回给对用户终端的查询响应的准确性,还需要对已经缓存的对应关系进行更新。具体为,业务服务器根据配置的对应关系更新时刻,在所述对应关系更新时刻到来时,重新从数据库中获取第二查询请求中包含的表达式所引用的字段下的字段值;利用重新获取的字段值更新建立的所述对应关系。也即,当配置的对应关系更新时刻到来时,执行上述步骤第一步至第三步,以更新表达式对应的字段值。
并且,配置对应关系更新时刻的方法可以为配置某一具体时刻作为对应关系更新时刻,也可以为配置某个周期,则业务服务器将每个周期结束的时刻作为对应关系更新时刻。
需要说明的是,在第一查询语句中不包含条件信息时,由于业务逻辑是确定的,因此,也可以采用背景技术中的事先把表达式的值计算出来,将计算结果回流到数据库中,在接收到第一查询语句时,直接将回流到数据库中的计算结果返回给用户终端。但对于本申请的方案而言,不论第一查询语句中是否包含条件信息,均不需要进行数据回流操作,直接利用缓存的所述对应关系,即可较快地获取业务逻辑的执行结果,在页面级响应时间内将查询结果返回给用户。
在本申请实施例一的方案中,业务服务器预先缓存用于表示业务逻辑的表达式和字段值之间的对应关系,也即提前从数据库中读出了各表达式引用的字段下的字段值,并对读出的字段值进行了切割以及压缩,以降低真正计算时候带来的数据库压力及网络传输消耗,此外,还配合实时计算框架(Storm处理集群)来做大数据量的实时计算来达到高速计算,较大程度上提高了业务服务器的处理能,使得执行结果可以在页面级响应时间内返回给用户终端,满足了用户的需求。
以上实施例一从业务服务器的角度描述了本申请的数据查询方法,下面通过实施二的方案从用户终端角度描述本申请的数据查询方法。
实施例二
如图3所示,其为本申请实施例二提供的数据查询方法的流程图,包括以下步骤:
步骤301:向业务服务器发送第一查询请求,所述第一查询请求中包含表达式,所述表达式用于实现业务逻辑且引用至少一个字段;
步骤302:接收所述业务服务器返回的第一查询响应,所述第一查询响应中携带有业务服务器利用预先建立的表达式与字段值之间的对应关系,查找所述第一查询请求中包含的表达式对应的字段值,以及利用查找到的字段值执行所述第一查询请求中包含的表达式,得到的执行结果,其中,表达式对应的字段值为数据表中该表达式引用的各字段下的字段值。
本申请实施二的数据查询方法与实施例一仅是描述角度的不同,具体实现细节参见实施例一的描述,这里不再赘述。
实施例三
如图4所示,其为本申请实施例三提供的数据查询装置的结构示意图,包括:接收模块41、查找模块42、执行模块43和发送模块44,其中:
接收模块41,用于接收用户终端发送的第一查询请求,所述第一查询请求中包含表达式,所述表达式用于表示业务逻辑且引用至少一个字段;
查找模块42,用于从预先缓存的表达式与字段值之间的对应关系中,查找所述第一查询请求中包含的表达式对应的字段值,其中,表达式对应的字段值为数据表中该表达式引用的各字段下的字段值;
执行模块43,用于利用查找到的字段值执行所述第一查询请求中包含的表达式,得到执行结果;
发送模块44,用于将所述执行结果携带在第一查询响应中发送给所述用户终端。
较佳的,所述第一查询请求中还包括条件信息,该条件信息为第一查询请求中包含的表达式引用的字段需满足的条件;
所述装置还包括:
过滤模块45,用于从预先缓存的表达式与字段值之间的对应关系中,查找所述第一查询请求中包含的达式对应的字段值之后,利用查找到的字段值执行所述第一查询请求中包含的表达式,得到执行结果之前,利用所述第一查询请求中包含的条件信息,对查找到的字段值进行过滤,获得满足所述条件信息的字段值;
所述执行模块43,具体用于利用获得的满足所述条件信息的字段值,执行所述第一查询请求中包含的表达式,得到执行结果。
较佳的,所述装置还包括:
对应关系建立模块46,用于通过以下方式建立表达式与字段值之间的对应关系:接收第二查询请求,所述第二查询请求中包含表达式和数据表标识,所述第二查询请求中包含的表达式引用至少一个字段,所述数据表标识所表示的数据表中包含所述第二查询请求中包含的表达式所引用的字段;利用所述第二查询请求中包含的表达式和所述数据表标识,从数据库中获取第二查询请求中包含的表达式所引用的字段下的字段值;建立从数据库中获取的字段值与第二查询请求中包含的表达式之间的对应关系。
较佳的,所述对应关系建立模块46,具体用于解析所述第二查询请求中包含的表达式所引用的字段;从数据库中查找所述数据表标识所表示的数据表;从查找到的数据表中获取解析出的字段下的字段值。
较佳的,所述对应关系建立模块46,还用于在利用所述第二查询请求中包含的表达式和所述数据表标识,从数据库中获取第二查询请求中包含的表达式所引用的字段下的字段值之后,建立从数据库中获取的字段值与第二查询请求中包含的表达式之间的对应关系之前,将从数据库中获取的字段值进行切割;对切割后得到的字段值进行压缩,得到字段值压缩包;
所述对应关系建立模块46,具体用于建立所述字段值压缩包与所述第二查询请求中包含的表达式之间的对应关系。
较佳的,所述对应关系建立模块46,还用于根据配置的对应关系更新时刻,在所述对应关系更新时刻到来时,重新从数据库中获取第二查询请求中包含的表达式所引用的字段下的字段值;利用重新获取的字段值更新建立的所述对应关系。
较佳的,所述执行模块43,具体用于将查找到的字段值以流的方式输入流式处理集群;将所述流式处理集群输出的作为所述第一查询请求中包含的表达式的执行结果。
本申请实施例三的具体细节的实现,可参见实施例一的描述,这里不再赘述。
实施例四
如图5所示,其为本申请实施例四提供的数据查询装置的结构示意图,包括:发送模块51和接收模块52,其中:
发送模块51,用于向业务服务器发送第一查询请求,所述第一查询请求中包含表达式,所述表达式用于实现业务逻辑且引用至少一个字段;
接收模块52,用于接收所述业务服务器返回的第一查询响应,所述第一查询响应中携带有业务服务器利用预先建立的表达式与字段值之间的对应关系,查找所述第一查询请求中包含的表达式对应的字段值,以及利用查找到的字段值执行所述第一查询请求中包含的表达式,得到的执行结果,其中,表达式对应的字段值为数据表中该表达式引用的各字段下的字段值。
本申请实施例四的具体细节的实现,可参见实施例一及实施例二的描述,这里不再赘述。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明实施例可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式实现。基于这样的理解,本发明实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中终端中的模块可以按照实施例描述进行分布于实施例的终端中,也可以进行相应变化位于不同于本实施例的一个或多个终端中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (16)

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

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510954580.2A CN106897280B (zh) 2015-12-17 2015-12-17 数据查询方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510954580.2A CN106897280B (zh) 2015-12-17 2015-12-17 数据查询方法及装置

Publications (2)

Publication Number Publication Date
CN106897280A true CN106897280A (zh) 2017-06-27
CN106897280B CN106897280B (zh) 2020-07-14

Family

ID=59188649

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510954580.2A Active CN106897280B (zh) 2015-12-17 2015-12-17 数据查询方法及装置

Country Status (1)

Country Link
CN (1) CN106897280B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107391764A (zh) * 2017-08-31 2017-11-24 江西博瑞彤芸科技有限公司 业务数据查询方法
CN108897796A (zh) * 2018-06-12 2018-11-27 平安科技(深圳)有限公司 一种业务系统调用influxdb数据库的方法、存储介质和服务器
CN109376173A (zh) * 2018-11-08 2019-02-22 郑州云海信息技术有限公司 一种数据查询方法、装置、电子设备及存储介质
CN110196862A (zh) * 2018-02-27 2019-09-03 财付通支付科技有限公司 一种数据场景构造方法、装置、服务器与系统
CN110955686A (zh) * 2019-12-02 2020-04-03 秒针信息技术有限公司 数据多维交叉处理方法、装置、电子设备及存储介质
CN111460298A (zh) * 2020-03-31 2020-07-28 深圳市酷开网络科技有限公司 业务数据处理方法、装置、计算机设备和存储介质
CN112307489A (zh) * 2020-06-24 2021-02-02 神州融安科技(北京)有限公司 字符显示方法、装置、电子设备及计算机可读存储介质

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101021856A (zh) * 2006-10-11 2007-08-22 鲍东山 分布式语音检索系统
CN102456030A (zh) * 2010-10-22 2012-05-16 北大方正集团有限公司 一种信息查询的方法、装置及系统
CN102521416A (zh) * 2011-12-28 2012-06-27 用友软件股份有限公司 数据关联查询方法和数据关联查询装置
CN102918534A (zh) * 2010-06-10 2013-02-06 惠普发展公司,有限责任合伙企业 查询管道
CN103577590A (zh) * 2013-11-12 2014-02-12 北京润乾信息系统技术有限公司 一种数据查询方法和系统
CN104111948A (zh) * 2013-04-19 2014-10-22 北大方正集团有限公司 信息查询方法及系统
CN104504158A (zh) * 2015-01-19 2015-04-08 浪潮(北京)电子信息产业有限公司 一种快速更新业务的内存缓存的方法和设备
CN104699748A (zh) * 2014-12-19 2015-06-10 深圳市燃气集团股份有限公司 一种展示不固定列报表的方法及其系统
CN104915450A (zh) * 2015-07-01 2015-09-16 武汉大学 一种基于HBase的大数据存储与检索方法及系统
CN104951467A (zh) * 2014-03-28 2015-09-30 阿里巴巴集团控股有限公司 统计方法及装置
CN105224560A (zh) * 2014-06-20 2016-01-06 腾讯科技(北京)有限公司 缓存数据的查找方法和装置

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101021856A (zh) * 2006-10-11 2007-08-22 鲍东山 分布式语音检索系统
CN102918534A (zh) * 2010-06-10 2013-02-06 惠普发展公司,有限责任合伙企业 查询管道
CN102456030A (zh) * 2010-10-22 2012-05-16 北大方正集团有限公司 一种信息查询的方法、装置及系统
CN102521416A (zh) * 2011-12-28 2012-06-27 用友软件股份有限公司 数据关联查询方法和数据关联查询装置
CN104111948A (zh) * 2013-04-19 2014-10-22 北大方正集团有限公司 信息查询方法及系统
CN103577590A (zh) * 2013-11-12 2014-02-12 北京润乾信息系统技术有限公司 一种数据查询方法和系统
CN104951467A (zh) * 2014-03-28 2015-09-30 阿里巴巴集团控股有限公司 统计方法及装置
CN105224560A (zh) * 2014-06-20 2016-01-06 腾讯科技(北京)有限公司 缓存数据的查找方法和装置
CN104699748A (zh) * 2014-12-19 2015-06-10 深圳市燃气集团股份有限公司 一种展示不固定列报表的方法及其系统
CN104504158A (zh) * 2015-01-19 2015-04-08 浪潮(北京)电子信息产业有限公司 一种快速更新业务的内存缓存的方法和设备
CN104915450A (zh) * 2015-07-01 2015-09-16 武汉大学 一种基于HBase的大数据存储与检索方法及系统

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107391764A (zh) * 2017-08-31 2017-11-24 江西博瑞彤芸科技有限公司 业务数据查询方法
CN110196862A (zh) * 2018-02-27 2019-09-03 财付通支付科技有限公司 一种数据场景构造方法、装置、服务器与系统
CN108897796A (zh) * 2018-06-12 2018-11-27 平安科技(深圳)有限公司 一种业务系统调用influxdb数据库的方法、存储介质和服务器
CN108897796B (zh) * 2018-06-12 2023-07-14 平安科技(深圳)有限公司 一种业务系统调用influxdb数据库的方法、存储介质和服务器
CN109376173A (zh) * 2018-11-08 2019-02-22 郑州云海信息技术有限公司 一种数据查询方法、装置、电子设备及存储介质
CN110955686A (zh) * 2019-12-02 2020-04-03 秒针信息技术有限公司 数据多维交叉处理方法、装置、电子设备及存储介质
CN111460298A (zh) * 2020-03-31 2020-07-28 深圳市酷开网络科技有限公司 业务数据处理方法、装置、计算机设备和存储介质
CN112307489A (zh) * 2020-06-24 2021-02-02 神州融安科技(北京)有限公司 字符显示方法、装置、电子设备及计算机可读存储介质
CN112307489B (zh) * 2020-06-24 2024-03-22 神州融安科技(北京)有限公司 字符显示方法、装置、电子设备及计算机可读存储介质

Also Published As

Publication number Publication date
CN106897280B (zh) 2020-07-14

Similar Documents

Publication Publication Date Title
CN106897280A (zh) 数据查询方法及装置
CN107291785A (zh) 一种数据查找方法及装置
CN106528787B (zh) 一种基于海量数据多维分析的查询方法及装置
CN102761627B (zh) 基于终端访问统计的云网址推荐方法及系统及相关设备
CN107391502B (zh) 时间间隔的数据查询方法、装置及索引构建方法、装置
CN104715039A (zh) 基于硬盘和内存的列式存储和查询方法及设备
CN105956148A (zh) 资源信息的推荐方法和装置
CN108628898B (zh) 数据入库的方法、装置和设备
CN106156037B (zh) 数据处理方法、装置及系统
CN101963965A (zh) 基于搜索引擎的文档索引方法、数据查询方法及服务器
CN104021125A (zh) 一种搜索引擎排序的方法、系统以及一种搜索引擎
CN105335368A (zh) 一种产品聚类方法及装置
CN114327857A (zh) 操作数据处理方法、装置、计算机设备和存储介质
CN103036697A (zh) 一种多维度数据去重方法及系统
CN104346347A (zh) 数据存储方法、装置、服务器及系统
CN103064887B (zh) 一种推荐信息的方法和设备
CN107844536B (zh) 应用程序选择的方法、装置和系统
CN112527836B (zh) 一种基于t-box平台的大数据查询方法
KR101955376B1 (ko) 비공유 아키텍처 기반의 분산 스트림 처리 엔진에서 관계형 질의를 처리하는 방법, 이를 수행하기 위한 기록 매체 및 장치
WO2017065795A1 (en) Incremental update of a neighbor graph via an orthogonal transform based indexing
CN104123393A (zh) 一种短信文本的分类方法和系统
CN105528463B (zh) 一种搜索引擎的索引数据加载方法和装置
Chen et al. Sorting local descriptors for lowbit rate mobile visual search
US11709798B2 (en) Hash suppression
CN103324640B (zh) 一种确定搜索结果文档的方法、装置和设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20180418

Address after: Four story 847 mailbox of the capital mansion of Cayman Islands, Cayman Islands, Cayman

Applicant after: CAINIAO SMART LOGISTICS HOLDING Ltd.

Address before: Cayman Islands Grand Cayman capital building, a four storey No. 847 mailbox

Applicant before: ALIBABA GROUP HOLDING Ltd.

GR01 Patent grant
GR01 Patent grant