CN112199577B - 一种数据查询方法、装置及电子设备 - Google Patents

一种数据查询方法、装置及电子设备 Download PDF

Info

Publication number
CN112199577B
CN112199577B CN202011424430.8A CN202011424430A CN112199577B CN 112199577 B CN112199577 B CN 112199577B CN 202011424430 A CN202011424430 A CN 202011424430A CN 112199577 B CN112199577 B CN 112199577B
Authority
CN
China
Prior art keywords
data
original
query
target
conditional expressions
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.)
Active
Application number
CN202011424430.8A
Other languages
English (en)
Other versions
CN112199577A (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.)
Zhejiang Koubei Network Technology Co Ltd
Original Assignee
Zhejiang Koubei Network Technology Co 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 Zhejiang Koubei Network Technology Co Ltd filed Critical Zhejiang Koubei Network Technology Co Ltd
Priority to CN202011424430.8A priority Critical patent/CN112199577B/zh
Publication of CN112199577A publication Critical patent/CN112199577A/zh
Application granted granted Critical
Publication of CN112199577B publication Critical patent/CN112199577B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9532Query formulation
    • 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/242Query formulation
    • G06F16/2433Query languages
    • 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
    • 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

Landscapes

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

Abstract

本申请提供一种数据查询方法,包括:获取客户端发送的数据查询请求消息,数据查询请求消息包括数据查询条件信息;根据数据查询条件信息,生成可被数据库识别的与数据查询条件信息对应的原始查询语句。在原始查询语句表示需要将多个全量数据表进行拼接操作的情况下,将原始查询语句转换为可被数据库识别的与数据查询条件信息对应的目标查询语句。目标查询语句中进行数据拼接操作的多个数据表中包含非全量数据表。因此,可以减少进行数据拼接操作的计算次数,降低数据表中的数据拼接操作时间,从而节省数据查询的查询时间,提高数据查询效率,获取数据查询结果。

Description

一种数据查询方法、装置及电子设备
技术领域
本申请涉及信息技术处理领域,具体涉及一种数据查询方法。本申请同时涉及一种数据查询装置、电子设备及存储介质,另一种数据查询方法、装置、电子设备及存储介质。
背景技术
随着互联网技术的不断发展,将互联网技术应用于日常生活的需求越来越广泛,例如,线上购物,线上点餐等。服务端根据客户端发送的针对各种标签的数据查询条件,生成对应的数据查询语句,并向数据库发送该查询语句,数据库识别查询语句后,进行查询操作,获取满足用户需求的查询结果数据。
现有技术中,以线上购物为例,服务端针对用户常用的各种标签选择建立了标签数据库,由于用户的标签数据库中包含的标签种类,以及底层标签数据量级较大,属于千亿级别。而且一般情况下,用户在客户端一次输入的标签选项偏多,过于复杂,并且用户选择的数据标签分散于标签数据库的多个数据表中,例如,年龄标签属于基本属性数据表,颜色标签属于偏好习惯数据表。因此,在服务端根据用户提出的数据查询条件生成的数据查询语句,表示需要将多个数据表进行全量数据的拼接操作的情况下,由于多个数据表进行全量拼接操作导致的计算次数偏大,导致拼接操作造成的操作时间偏长,从而降低数据查询的查询效率,难以获取数据查询结果。
发明内容
本申请实施例提供一种数据查询方法,以解决现有技术中由于数据查询语句中存在将多个数据表进行全量拼接操作而导致拼接操作时间偏长,从而降低数据查询的查询效率,难以获取数据查询结果的问题。本申请同时涉及一种数据查询装置、电子设备及存储介质,另一种数据查询方法、装置、电子设备及存储介质。
本申请实施例提供一种数据查询方法,包括:获取客户端发送的数据查询请求消息,所述数据查询请求消息包括数据查询条件信息;根据所述数据查询条件信息,生成可被数据库识别的与所述数据查询条件信息对应的原始查询语句;如果所述原始查询语句表示需要将多个全量数据表进行拼接操作,则将所述原始查询语句转换为可被数据库识别的与所述数据查询条件信息对应的目标查询语句,所述目标查询语句表示进行拼接的多个数据表中至少有一个数据表为非全量数据表;根据所述目标查询语句进行数据查询操作,获得与所述数据查询条件信息对应的数据查询结果;向所述客户端返回所述数据查询结果。
可选的,所述将所述原始查询语句转换为可被数据库识别的与所述数据查询条件信息对应的目标查询语句,包括:按照所述原始查询语句表示的原始条件表达式之间的逻辑关系以及原始条件表达式中的原始子条件表达式之间的逻辑关系,对所述原始子条件表达式进行重组处理,获得目标条件表达式,所述目标条件表达式表示分属于不同原始条件表达式的原始子条件表达式之间的逻辑关系,所述原始条件表达式是所述原始查询语句包括的条件表达式;根据仅针对一个数据表的目标条件表达式生成用于表示对数据表进行拼接操作的数据表拼接操作语句;根据所述数据表拼接操作语句以及除所述仅针对一个数据表的目标条件表达式之外的其他目标条件表达式之间的逻辑关系,生成所述目标查询语句。
可选的,所述按照所述原始查询语句表示的原始条件表达式之间的逻辑关系以及原始条件表达式中的原始子条件表达式之间的逻辑关系,对所述原始子条件表达式进行重组处理,获得目标条件表达式,包括:按照所述原始查询语句表示的所述原始条件表达式之间的逻辑关系以及原始条件表达式中的原始子条件表达式之间的逻辑关系,确定分属于不同原始条件表达式的原始子条件表达式之间的逻辑关系;根据所述分属于不同原始条件表达式的原始子条件表达式之间的逻辑关系,对原始子条件表达式进行重组处理,获得目标条件表达式以及目标条件表达式之间的逻辑关系。
可选的,所述根据所述分属于不同原始条件表达式的原始子条件表达式之间的逻辑关系,对原始子条件表达式进行重组处理,获得目标条件表达式以及目标条件表达式之间的逻辑关系,包括:根据所述分属于不同原始条件表达式的原始子条件表达式之间的逻辑关系,针对所述分属于不同原始条件表达式的原始子条件表达式之间进行逻辑运算处理,获得逻辑运算处理结果;根据所述逻辑运算处理结果,获得目标条件表达式以及目标条件表达式之间的逻辑关系。
可选的,任意两个原始条件表达式之间的逻辑关系为逻辑和关系或者逻辑或关系,任意两个原始子条件表达式之间的逻辑关系为逻辑和关系或者逻辑或关系,分属于不同原始条件表达式的任意两个原始子条件表达式之间的逻辑关系为逻辑和关系或者逻辑或关系,任意两个其他目标条件表达式之间的逻辑关系为逻辑和关系或者逻辑或关系。
可选的,所述根据仅针对一个数据表的目标条件表达式生成用于表示对数据表进行拼接操作的数据表拼接操作语句,包括:如果至少一个目标条件表达式是仅针对一个数据表的条件表达式,则将所述仅针对一个数据表的条件表达式作为选定目标条件表达式,将所述选定目标条件表达式所针对的数据表作为选定数据表,根据所述选定目标条件表达式和所述选定数据表的信息生成用于表示将目标数据表与其他数据表进行拼接操作的数据表拼接操作语句,所述目标数据表是根据所述选定目标条件表达式对所述选定数据表中的数据进行筛选操作后得到的数据表。
可选的,所述数据表拼接操作语句包括用于表示将所述选定目标条件表达式作为所述选定数据表中的数据筛选条件的第一子语句以及在第一子语句基础上生成的用于表示将所述选定数据表的信息与所述其他数据表的信息进行拼接操作的子语句。
可选的,所述选定目标条件表达式中的所有子条件表达式都是针对所述选定数据表的子条件表达式。
可选的,所述其他数据表是所述原始查询语句中的原始条件表达式中的原始子条件表达式针对的除所述选定数据表之外的数据表。
可选的,所述根据所述目标查询语句进行数据查询操作,获得与所述数据查询条件信息对应的数据查询结果,包括:将所述目标查询语句提供给目标数据库,所述目标数据库存储有所述原始查询语句中的原始条件表达式中的原始子条件表达式所针对的数据表;获得所述目标数据库返回的与所述目标查询语句对应的数据查询结果。
可选的,所述多个全量数据表为两个全量数据表或三个全量数据表。
可选的,所述数据查询条件信息包括针对对象标签信息的数据筛选条件信息。
本申请另一实施例,还提供一种数据查询方法,包括:向服务端发送数据查询请求消息,所述数据查询请求消息包括数据查询条件信息;获得所述服务端返回的与所述数据查询条件信息对应的数据查询结果,所述数据查询结果是根据可被数据库识别的与所述数据查询条件信息对应的目标查询语句进行数据查询操作所获得的数据查询结果,所述目标查询语句是将原始查询语句转换后得到的查询语句,所述原始查询语句是根据所述数据查询条件信息生成的可被数据库识别的与所述数据查询条件信息对应的查询语句,所述原始查询语句表示需要进行将多个全量数据表进行拼接的操作,所述目标查询语句表示进行拼接的多个数据表中至少有一个数据表为非全量数据表。
可选的,所述数据查询条件信息包括针对对象标签信息的数据筛选条件信息;所述方法还包括:响应于检测到针对对象标签信息的数据筛选条件信息的设置操作,生成所述数据查询条件信息。
可选的,所述多个全量数据表为两个全量数据表或三个全量数据表。
本申请另一实施例,还提供一种数据查询装置,包括:数据查询请求消息获取单元,用于获取客户端发送的数据查询请求消息,所述数据查询请求消息包括数据查询条件信息;原始查询语句生成单元,用于根据所述数据查询条件信息,生成可被数据库识别的与所述数据查询条件信息对应的原始查询语句;目标查询语句生成单元,用于如果所述原始查询语句表示需要将多个全量数据表进行拼接操作,则将所述原始查询语句转换为可被数据库识别的与所述数据查询条件信息对应的目标查询语句,所述目标查询语句表示进行拼接的多个数据表中至少有一个数据表为非全量数据表;数据查询结果获取单元,用于根据所述目标查询语句进行数据查询操作,获得与所述数据查询条件信息对应的数据查询结果;数据查询结果发送单元,用于向所述客户端返回所述数据查询结果。
可选的,所述目标查询语句生成单元,包括目标条件表达式生成单元,数据表拼接操作语句生成单元,目标查询语句生成子单元;所述目标条件表达式生成单元,用于按照所述原始查询语句表示的原始条件表达式之间的逻辑关系以及原始条件表达式中的原始子条件表达式之间的逻辑关系,对所述原始子条件表达式进行重组处理,获得目标条件表达式,所述目标条件表达式表示分属于不同原始条件表达式的原始子条件表达式之间的逻辑关系,所述原始条件表达式是所述原始查询语句包括的条件表达式;所述数据表拼接操作语句生成单元,用于根据仅针对一个数据表的目标条件表达式生成用于表示对数据表进行拼接操作的数据表拼接操作语句;所述目标查询语句生成子单元,用于根据所述数据表拼接操作语句以及除所述仅针对一个数据表的目标条件表达式之外的其他目标条件表达式之间的逻辑关系,生成所述目标查询语句。
可选的,所述目标条件表达式生成单元,包括第一逻辑关系单元,第二逻辑关系单元;所述第一逻辑关系单元,用于按照所述原始查询语句表示的所述原始条件表达式之间的逻辑关系以及原始条件表达式中的原始子条件表达式之间的逻辑关系,确定分属于不同原始条件表达式的原始子条件表达式之间的逻辑关系;所述第二逻辑关系单元,用于根据所述分属于不同原始条件表达式的原始子条件表达式之间的逻辑关系,对原始子条件表达式进行重组处理,获得目标条件表达式以及目标条件表达式之间的逻辑关系。
可选的,所述第二逻辑关系单元,包括逻辑运算处理结果单元和目标条件表达式生成子单元;所述逻辑运算处理结果单元,用于根据所述分属于不同原始条件表达式的原始子条件表达式之间的逻辑关系,针对所述分属于不同原始条件表达式的原始子条件表达式之间进行逻辑运算处理,获得逻辑运算处理结果;所述目标条件表达式生成子单元,用于根据所述逻辑运算处理结果,获得目标条件表达式以及目标条件表达式之间的逻辑关系。
可选的,任意两个原始条件表达式之间的逻辑关系为逻辑和关系或者逻辑或关系,任意两个原始子条件表达式之间的逻辑关系为逻辑和关系或者逻辑或关系,分属于不同原始条件表达式的任意两个原始子条件表达式之间的逻辑关系为逻辑和关系或者逻辑或关系,任意两个其他目标条件表达式之间的逻辑关系为逻辑和关系或者逻辑或关系。
可选的,所述数据表拼接操作语句生成单元,具体用于如果至少一个目标条件表达式是仅针对一个数据表的条件表达式,则将所述仅针对一个数据表的条件表达式作为选定目标条件表达式,将所述选定目标条件表达式所针对的数据表作为选定数据表,根据所述选定目标条件表达式和所述选定数据表的信息生成用于表示将目标数据表与其他数据表进行拼接操作的数据表拼接操作语句,所述目标数据表是根据所述选定目标条件表达式对所述选定数据表中的数据进行筛选操作后得到的数据表。
可选的,所述数据表拼接操作语句包括用于表示将所述选定目标条件表达式作为所述选定数据表中的数据筛选条件的第一子语句以及在第一子语句基础上生成的用于表示将所述选定数据表的信息与所述其他数据表的信息进行拼接操作的子语句。
可选的,所述选定目标条件表达式中的所有子条件表达式都是针对所述选定数据表的子条件表达式。
可选的,所述其他数据表是所述原始查询语句中的原始条件表达式中的原始子条件表达式针对的除所述选定数据表之外的数据表。
可选的,所述数据查询结果获取单元,具体用于将所述目标查询语句提供给目标数据库,所述目标数据库存储有所述原始查询语句中的原始条件表达式中的原始子条件表达式所针对的数据表;获得所述目标数据库返回的与所述目标查询语句对应的数据查询结果。
可选的,所述多个全量数据表为两个全量数据表或三个全量数据表。
可选的,所述数据查询条件信息包括针对对象标签信息的数据筛选条件信息。
本申请另一实施例,还提供一种数据查询装置,包括:数据查询请求消息发送单元,用于向服务端发送数据查询请求消息,所述数据查询请求消息包括数据查询条件信息;数据查询结果获取单元,用于获得所述服务端返回的与所述数据查询条件信息对应的数据查询结果,所述数据查询结果是根据可被数据库识别的与所述数据查询条件信息对应的目标查询语句进行数据查询操作所获得的数据查询结果,所述目标查询语句是将原始查询语句转换后得到的查询语句,所述原始查询语句是根据所述数据查询条件信息生成的可被数据库识别的与所述数据查询条件信息对应的查询语句,所述原始查询语句表示需要进行将多个全量数据表进行拼接的操作,所述目标查询语句表示进行拼接的多个数据表中至少有一个数据表为非全量数据表。
可选的,所述数据查询条件信息包括针对对象标签信息的数据筛选条件信息;所述装置还包括:数据查询条件消息生成单元,用于响应于检测到针对对象标签信息的数据筛选条件信息的设置操作,生成所述数据查询条件信息。
可选的,所述多个全量数据表为两个全量数据表或三个全量数据表。
本申请另一实施例,还提供一种电子设备,包括:处理器;以及存储器,用于存储计算机方法的程序,所述程序在被所述处理器读取执行时执行上述任意一种方法。
本申请另一实施例,还提供一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述程序被执行时实现上述任意一种方法。
与现有技术相比,本申请具有以下优点:
本申请提供一种数据查询方法,包括:获取客户端发送的数据查询请求消息,所述数据查询请求消息包括数据查询条件信息;根据所述数据查询条件信息,生成可被数据库识别的与所述数据查询条件信息对应的原始查询语句;如果所述原始查询语句表示需要将多个全量数据表进行拼接操作,则将所述原始查询语句转换为可被数据库识别的与所述数据查询条件信息对应的目标查询语句,所述目标查询语句表示进行拼接的多个数据表中至少有一个数据表为非全量数据表;根据所述目标查询语句进行数据查询操作,获得与所述数据查询条件信息对应的数据查询结果;向所述客户端返回所述数据查询结果。
本申请提供的上述信息查询方法,在原始查询语句表示需要将多个全量数据表进行拼接操作的情况下,将原始查询语句转换为目标查询语句。目标查询语句中进行数据拼接操作的多个数据表中包含非全量数据表。因此,可以减少进行数据拼接操作的计算次数,降低数据表中的数据拼接操作时间,从而节省数据查询的查询时间,提高数据查询效率,获取数据查询结果。
附图说明
图1a为本申请实施例中用于生成原始查询语句的实现原理的示意图。
图1b为本申请实施例中用于生成目标查询语句的实现原理的示意图。
图2为本申请第一实施例中提供的一种数据查询方法的流程图。
图3为本申请第一实施例中提供的生成目标查询语句的示意图。
图4为本申请第二实施例中提供的另一种数据查询方法的流程图。
图5为本申请第三实施例中提供的一种数据查询装置的流程图。
图6为本申请第四实施例中提供的另一种数据查询装置的流程图。
图7为本申请第五实施例中提供的一种电子设备的示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
为了更清楚地展示本申请实施例提供的数据查询方法,首先介绍本申请实施例提供的数据查询方法的原理。以下描述所涉及的实施例是用来解释说明方法原理,不是实际使用的限定。
本实施例以线上购物为例,并参照图1a和图1b介绍服务端根据客户端发送的数据查询请求信息,获取其中的数据查询条件信息,生成查询语句,根据查询语句完成数据查询操作的方法原理,以提高数据查询效率。
首先,客户端获取用户提交的数据查询条件信息,例如,年龄在35岁以上并且属于会员,或者年龄在30岁以下并且不属于会员。客户端将用户提交的数据查询条件信息发送给服务端,服务端分析该数据查询条件信息,在数据库中查询年龄标签和会员标签,其中,年龄标签(以A代表)存储于数据表a中,会员标签(以B代表)存储于数据表b中,服务端根据数据查询条件和标签数据所存储的数据表,生成如下查询语句,称作原始查询语句:
Select*
from tableA a JOIN tableB b
on a_xxxx=b_xxxx
where
(a.age>35and b is_member=1)
or
(a.age<30and b is_member=0)
其中,
Select*
from tableA a JOIN tableB b
on a_xxxx=b_xxxx
是指将数据a和数据表b进行全量数据的拼接操作,得到a_xxxx=b_xxxx,获取一个拼接完成后的数据表。
其中,
where
(a.age>35and b is_member=1)
or
(a.age<30and b is_member=0)
表示数据查询条件,根据该数据查询条件在数据表a和数据表b拼接完成后的数据中查询符合数据查询条件的数据查询结果。
其中,(a.age>35and b is_member=1)为原始条件表达式1;其中,“a.age>35”为原始子条件表达式1,“b is_member=1”为原始子条件表达式2,“and”表示原始子条件表达式1和原始子条件表达式2之间的逻辑关系为逻辑和的关系,因此,(a.age>35and b is_member=1)代表数据查询结果需要同时满足年龄大于35和属于会员的两个条件。
(a.age<30and b is_member=0)为原始条件表达式2。其中,“a.age<30”为原始子条件表达式3,“b is_member=0”为原始子条件表达式4,“and”表示原始子条件表达式3和原始子条件表达式4之间的逻辑关系为逻辑和的关系,因此,(a.age<30and b is_member=0)代表数据查询结果需要同时满足年龄小于30和不属于会员的两个条件。
“or”表示原始条件表达式1和原始条件表达式2之间的逻辑关系为逻辑或的关系。因此,上述数据查询条件表示将符合(a.age>35and b is_member=1)或者(a.age<30and bis_member=0)这两个条件中的一个条件的数据查询结果作为目标数据查询结果。
其次,根据上述的数据查询条件中包含的原始条件表达式以及原始条件表达式之间的逻辑关系,原始子条件表达式以及原始子条件表达式之间的逻辑关系,如果将上述四个原始子条件表达式看作四个节点,则上述数据查询条件可以抽象呈二叉树形式,如图1a所示。在图1a中,根节点为OR条件,每一个原始子条件表达式为一个叶子节点,叶子节点A1和叶子节点A2表示的是数据表a中的两个原始子条件表达式,包括原始子条件表达式1(a.age>35)和原始子条件表达式3(a.age<30)。叶子节点B1和叶子节点B2表示的是数据表b中的两个原始子条件表达式,包括原始子条件表达式2(b is_member=1)和原始子条件表达式4(b is_member=0)。分别将A1和B1采用and关联,获得子树1,A2和B2采用and关联,获得子树2,再将子树1和子树2用or关联起来。由此可知,该原始查询语句的执行顺序为:首先将数据表a和数据表b的数据进行全量数据的拼接(join)操作,获得拼接操作后的数据表,在该拼接操作后的数据表中,根据上述数据查询条件进行数据查询得到数据查询结果。例如,假设数据表a包括10万行数据,数据表b包括10万行数据,则将数据表a和数据表b进行拼接操作需要消耗100亿次计算。
再次,根据上述数据查询语句中的各种条件表达式之间的逻辑关系以及二叉树,可以将数据查询语句转换为逻辑表达式,具体的,将上述每一个叶子节点所查询的数据当作一个数据集,则A1,A2,B1和B2四个叶子节点代表的四个数据集可以用如下逻辑表达式1表示:
(A1∩B1)∪(A2∩B2)
上述逻辑表达式1是将上述数据查询语句中的数据查询条件采用数学集合逻辑表达式展示,其中,A1∩B1代表将将A1和B1采用and关联获得子树1,A2∩B2代表将A2和B2采用and关联获得子树2,(A1∩B1)∪(A2∩B2)代表将子树1和子树2采用or关联起来。根据上述逻辑表达式1中集合的结合律,可以将上述逻辑表达式1进行如下运算,获得逻辑表达式2:
(A1∩B1)∪(A2∩B2)
=[A1∪(A2∩B2)]∩[B1∪(A2∩B2)]
=(A1∪A2)∩(A1∪B2)∩(A2∪B1)∩(B1∪B2)。
因此,经过上述数学运算,将逻辑表达式1(A1∩B1)∪(A2∩B2)转换为逻辑表达式2(A1∪A2)∩(A1∪B2)∩(A2∪B1)∩(B1∪B2)。同理,逻辑表达式2代表的示意图如图1b所示,在图1b中,包括8个叶子节点,4个子树,分别为子树1(A1∪A2),子树2(A1∪B2),子树3(A2∪B1)和子树4(B1∪B2)。将4个根节点采用and关联,每个根节点下的两个叶子节点采用or关联。由图1b可知,子树1中包含的两个过滤条件分别为A1和A2,其均属于数据表a;子树4中包含的两个过滤条件分别为B1和B2,其均属于数据表b。上述逻辑表达式2表示将4个子树采用and关联,也就是对(A1∪A2)、(A1∪B2)、(A2∪B1)和(B1∪B2)取交集,结合上述实施例可知,最终查询到的数据查询结果为同时满足(A1∪A2)、(A1∪B2)、(A2∪B1)和(B1∪B2)的对象。相应的,将上述逻辑表达式2转换为对应的新的数据查询语句为:
Select*
from tableA a JOIN tableB b
On a_xxxx=b_xxxx
where
(a.age>35or a.age<30)
and
(b is_member=1or b is_member=0)
and
(a.age>35or b is_member=0)
and
(a.age<30or b is_member=1)。
根据上述逻辑表达式2和新的数据查询语句可知,
(A1∪A2)对应新的条件表达式1(a.age>35or a.age<30);
(A1∪B2)对应新的条件表达式2(a.age>35or b is_member=0);
(A2∪B1)对应新的条件表达式3(a.age<30or b is_member=1);
(B1∪B2)对应新的条件表达式4(b is_member=1or b is_member=0)。
并且,新的条件表达式1,新的条件表达式2,新的条件表达式3和新的条件表达式4之间的逻辑关系为“逻辑和”的关系。也就是说,根据新的查询语句进行查询操作,最终查询到的数据查询结果为同时满足上述四个新的条件表达式的对象。
根据上述新的数据查询语句可知,新的条件表达式1(a.age>35or a.age<30)是仅针对数据表a进行操作的数据操作语句,根据该条件表达式对数据表a进行筛选操作后,获取的新的数据表,可称作临时表c。可见,临时表c中的数据属于数据表a中符合条件(a.age>35or a.age<30)的数据,因此,数据表a为全量数据表,数据c为非全量数据表。
新的条件表达式4(b is_member=1or b is_member=0)是仅针对数据表b进行操作的数据操作语句,根据该条件表达式对数据表b进行筛选操作后,获取的新的数据表,可称作临时表d。可见,临时表d中的数据属于数据表b中符合条件(b is_member=1or b is_member=0)的数据。
因此,可以将新的条件表达式1和新的条件表达式4做谓词下推到子查询中,具体来说,首先件新的条件表达式1作为针对数据表a进行筛选操作的选定条件表达式1,获取临时表c,新的条件表达式4作为针对数据表b进行筛选操作的选定条件表达式2,获取临时表d。基于此,将上述新的查询语句转换为目标查询语句,如下:
Figure GDA0002916484120000101
根据上述目标查询语句可知,该目标查询语句的执行顺序如下:
首先,根据选定条件表达式1(age>35or where age<30)对数据表a进行筛选操作,将符合筛选条件部分的数据作为临时表c,同时根据选定条件表达式2(is_member=1oris_member=0)对数据表b进行筛选操作,将符合筛选条件部分的数据作为临时表d,因此,上述临时表c中的数据小于等于数据表a中的全量数据,临时表d中的数据小于等于数据表b中的全量数据;然后,将临时表c和临时表d的数据进行拼接(join)操作,得到数据表e;最后,在数据表e中按照目标查询条件“(a.age<30and b is_member=1)And(a.age>35and bis_member=0)”进行数据查询操作,获取最终符合目标查询条件的数据查询结果。按照上述目标查询语句的执行顺序,使得最终得到的数据查询结果同时满足上述四个新的条件表达式。
综上可知,将原始查询语句转换为目标查询语句,目标查询语句中的多个数据表中至少存在一个非全量数据表,具体的,假设临时表c从数据表a的10万数据中筛选得到了5万数据,临时表d从数据表b的10万数据中筛选得到了5万数据,将临时表c和临时表d进行拼接操作时,拼接的计算次数是25亿次,相比于按照原始查询语句中拼接的计算次数为100亿次,减少了75%的计算次数。
因此,将上述数据查询方法应用于实际生产场景中,将原始查询语句转换为目标查询语句,目标查询语句中进行数据拼接操作的多个数据表中包含非全量数据表。因此,可以减少进行数据拼接操作的计算次数,降低数据表中的数据拼接操作的时间,从而节省数据查询的查询时间,提高数据查询效率,获取数据查询结果。
将上述原理方法结合到线上购物中,用户在线上购物APP中进行购物的过程中,通过在购物页面中圈选一系列的数据标签,获取与数据标签对应的数据查询结果。其实,用户在购物页面圈选数据标签,每个数据标签包含用户选择的条件,例如,年龄大于35岁,同时是会员。服务端预存了包含各种数据标签的用户数据标签库,用户数据标签库中包括大量的数据表,例如,用户基本属性数据表,消费行为数据表,偏好习惯数据表等待。每个数据表中都存储有一个或者多个数据标签。例如,年龄标签存储于数据表a中,会员标签存储于数据表b。服务端根据用户圈选的数据标签,生成可被数据库识别的数据查询语句,该数据查询语句表示需要将数据标签所对应的数据表进行全量数据的数据拼接操作。因此,根据数据查询语句,首先将数据表a和数据表b进行拼接操作,根据用户圈选的数据标签及对应的数据标签条件,在拼接操作后的数据表进行数据查询,获得符合用户需求的数据查询结果。根据该数据查询语句对用户圈选的数据标签所在的数据表进行全量数据的拼接操作时,由于用户数据标签库中包含的底层标签数据量较大,属于千亿级别,因此,将多个数据表进行全量拼接操作的次数偏多,导致拼接操作造成的操作时间偏长,从而降低数据查询的查询效率,难以获取数据查询结果。
因此,本申请实施例提供一种数据查询方法,根据用户提交数据查询条件,生成原始查询语句,在原始查询语句表示需要将多个全量数据表进行拼接操作的情况下,将原始查询语句转换为目标查询语句。目标查询语句中进行数据拼接操作的多个数据表中包含非全量数据表。因此,可以减少对多个数据表进行数据拼接操作的计算次数,降低数据表中的数据拼接操作的时间,从而节省数据查询的查询时间,提高数据查询效率,获取数据查询结果。以下通过具体实施例进行具体描述。
第一实施例
本申请第一实施例中提供一种数据查询方法,具体流程如图2所示。以下结合图2进行说明。以下描述所涉及的实施例是用来解释说明方法原理,不是实际使用的限定。图2所示的数据查询方法,包括:步骤S201至步骤S205。
如图2所示,在步骤S201中,获取客户端发送的数据查询请求消息,所述数据查询请求消息包括数据查询条件信息。
本步骤S201用于接收客户端发送的数据查询请求消息,主要是获取数据查询请求消息中的数据查询条件信息,为步骤202中根据数据查询条件信息生成原始查询语句做准备。
所谓数据查询请求消息,是指用户在客户端输入数据查询条件信息,客户端根据数据查询条件信息生成的、并向服务端发送的请求获取与数据查询条件信息对应的消息。
所谓数据查询条件信息包括针对对象标签信息的数据筛选条件信息。对应标签信息是指用于描述用户的基本属性、消费行为和偏好习惯等的标签信息。例如,本申请实施例中,以标签管理中心的年龄和会员两个标签信息进行说明,用户输入的数据查询条件信息为,年龄在35岁以上并且属于会员,或者,年龄在30岁以下并且不属于会员。
如图2所示,在步骤S202中,根据所述数据查询条件信息,生成可被数据库识别的与所述数据查询条件信息对应的原始查询语句。
本步骤S202用于根据由客户端发送的数据查询条件信息,转换为数据库可以识别的数据查询条件,根据数据查询条件生成原始查询语句,以根据原始查询语句进行数据查询操作。
所谓原始查询语句,也称作数据库查询语句,例如,SQL(Structured QueryLanguage,结构化查询语言),根据客户端提供的数据查询条件生成的数据查询语句。
例如,将数据查询条件信息“年龄在35岁以上并且属于会员,或者,年龄在30岁以下并且不属于会员”转换为如下数据查询条件:
where
(a.age>35and b is_member=1)
or
(a.age<30and b is_member=0)
将上述数据查询条件作为原始查询条件,其中,(a.age>35and b is_member=1)和(a.age<30and b is_member=0)分别为原始条件表达式1和原始条件表达式2;“a.age>35”、“b is_member=1”、“a.age<30”、“b is_member=0”分别为原始子条件表达式1、原始子条件表达式2、原始子条件表达式3和原始子条件表达式4。其中,“or”表示原始条件表达式1和原始条件表达式2之间的逻辑关系为“逻辑或”的关系,其表示,最终查询结果符合原始条件表达式1或者原始条件表达式2的查询条件。“and”表示“逻辑和”的逻辑关系,其表示,当最终查询结果符合原始条件表达式1的查询条件,则需要同时满足原始子条件表达式1和原始子条件表达式2的查询条件;当最终查询结果符合原始条件表达式2的查询条件,则需要同时满足原始子条件表达式3和原始子条件表达式4的查询条件。
由于原始数据查询条件中的年龄和会员分别存储于数据库的数据表a和数据表b中,因此,根据该原始数据查询条件生成原始查询语句时,首先需要将数据表a和数据表b的全量数据进行拼接,在此基础上,根据上述原始查询条件进行查询操作。因此,原始查询语句是由表示对数据表a和数据表b的全量数据的拼接操作的操作语句和原始查询条件组成的,原始查询语句具体如下:
Select*
from tableA a JOIN tableB b
on a_xxxx=b_xxxx
where
(a.age>35and b is_member=1)
or
(a.age<30and b is_member=0)。
其中,“Select*from tableA a JOIN tableB b on a_xxxx=b_xxxx”代表对数据表a的全量数据和数据表b的全量数据进行拼接操作的拼接操作语句。上述原始查询语句表示,数据库可以根据该原始查询语句执行对应的查询操作,获得与原始查询语句对应的数据查询结果。例如,根据上述原始查询语句,数据库在数据表a和数据表b进行全量数据拼接操作后得到的合并数据表中,获取满足“年龄在35岁以上并且属于会员”或者“年龄在30岁以下并且不属于会员”的原始查询条件的查询结果数据。
由于上述原始查询语句中需要将数据表a和数据表b进行全量数据的拼接操作,这种操作拼接操作次数过于庞大,而影响原始查询语句的操作效率,使得获取查询结构数据的效率减低。例如,数据表a中包含10万个数据,数据表b中包含10万个数据,将数据表a和数据表b进行拼接操作的次数为100亿万次。
如图2所示,在步骤S203中,如果所述原始查询语句表示需要将多个全量数据表进行拼接操作,则将所述原始查询语句转换为可被数据库识别的与所述数据查询条件信息对应的目标查询语句,所述目标查询语句表示进行拼接的多个数据表中至少有一个数据表为非全量数据表。
本步骤S203适用于在原始查询语句中的数据表均为全量数据表,并且需要将多个全量数据表进行拼接操作的情况下,对需要将多个全量数据表进行拼接操作的原始查询语句进行优化操作,获取目标查询语句,该目标查询语句中进行拼接操作的多个数据表中至少有一个数据表为非全量数据表。
本步骤S203中的优选实施例下,所述多个全量数据表为两个全量数据表或三个全量数据表。
如果原始查询语句表示将两个全量数据表进行拼接操作,则需要将该原始查询语句进行优化操作,获取目标查询语句,其中,优化后的目标查询语句中进行拼接操作的两个数据表中至少有一个数据表为非全量数据表。
继续沿用上述例子进行以下说明。
所谓全量数据表是指数据表中的所有数据与其他全量数据表的数据进行拼接操作的数据表。
例如,
Select*
from tableA a JOIN tableB b
on a_xxxx=b_xxxx
将数据表a中的所有数据与数据表b中的所有数据进行拼接操作,数据表a和数据表b均是全量数据表。
所谓非全量数据表是指将全量数据表按照某个筛选条件进行筛选后的包含部分数据的数据表。
例如,
select*from tableA
where age>35or age<30
将数据表a中的所有数据按照“age>35or age<30”的筛选条件筛选后得到的部分数据组成的数据表c,成为非全量数据表。
所述拼接操作,是指Join,对数据库中的两个或者两个以上的数据表进行连接,合并等操作。
例如,
Select*
from tableA a JOIN tableB b
on a_xxxx=b_xxxx
将数据表a中的数据A和数据表b中的数据表B进行合并操作,获取一个同时包含数据A和数据B的数据表,以供后续对拼接后的数据表进行筛选操作。
例如,
Figure GDA0002916484120000141
on a_xxxx=b_xxxx
上述目标查询语句中表示进行拼接操作的两个数据表,至少存在一个数据表为非全量数据表,例如,数据表a经过筛选后得到的临时表c即为非全量数据表。
上述原始查询语句中,对数据表a和数据表b的全量数据进行拼接操作,基于上述例子中提到的拼接次数为100亿次,拼接次数过于庞大。而目标查询语句中,假设临时表c中数据A为5万数据,数据表b经过“is_member=1or is_member=0”筛选条件后得到的临时表d中数据B为5万数据,则将临时表c和临时表d进行拼接操作的次数为25亿次,拼接次数明显减小。
因此,为了降低两个数据表进行全量数据的拼接操作次数,本步骤将原始查询语句转换为目标查询语句,目标查询语句中进行数据拼接操作的数据表中包含非全量数据表,减少了数据拼接的计算次数,以达到提高获取数据查询结果的查询效率。
为了将原始查询语句转换为目标查询语句,本申请实施例通过如下方法进行转换,请参考图3,其为本申请实施例提供的目标查询语句的获取方法,包括:步骤S301至步骤S303。
如图3所示,在步骤S301中,按照所述原始查询语句表示的原始条件表达式之间的逻辑关系以及原始条件表达式中的原始子条件表达式之间的逻辑关系,对所述原始子条件表达式进行重组处理,获得目标条件表达式,所述目标条件表达式表示分属于不同原始条件表达式的原始子条件表达式之间的逻辑关系,所述原始条件表达式是所述原始查询语句包括的条件表达式。
本步骤S301,通过对原始查询语句中的原始子条件表达式进行重组处理,将原始条件表达式转换为目标条件表达式。
所谓逻辑关系是指,原始条件表达式之间与原始子条件表达式之间的关系。任意两个原始条件表达式之间的逻辑关系为逻辑和关系或者逻辑或关系,任意两个原始子条件表达式之间的逻辑关系为逻辑和关系或者逻辑或关系,分属于不同原始条件表达式的任意两个原始子条件表达式之间的逻辑关系为逻辑和关系或者逻辑或关系,任意两个其他目标条件表达式之间的逻辑关系为逻辑和关系或者逻辑或关系。
其中,按照所述原始查询语句表示的原始条件表达式之间的逻辑关系以及原始条件表达式中的原始子条件表达式之间的逻辑关系,对所述原始子条件表达式进行重组处理,获得目标条件表达式,包括如下两个步骤:
第一步:按照所述原始查询语句表示的所述原始条件表达式之间的逻辑关系以及原始条件表达式中的原始子条件表达式之间的逻辑关系,确定分属于不同原始条件表达式的原始子条件表达式之间的逻辑关系。
根据上述步骤S202中,原始查询语句表示的原始条件表达式1和原始条件表达式2之间的逻辑关系为“or”,也就是“逻辑或”的关系;原始子条件表达式1和原始子条件表达式2之间的逻辑关系为“and”,也就是“逻辑和”的关系;原始子条件表达式3和原始子条件表达式4之间的逻辑关系为“and”,也就是“逻辑和”的关系。因此,将上述原始条件表达式及其之间的逻辑关系采用数学符号“∪”和“∩”表示,通过直译的方式,得到原始查询语句对应的原始逻辑表达式为(A1∩B1)∪(A2∩B2)。
在(A1∩B1)∪(A2∩B2)中,A1代表原始子条件表达式1“a.age>35”,B1代表原始子条件表达式2“b is_member=1”,A2代表原始子条件表达式3“a.age<30”,B2代表原始子条件表达式4“b is_member=0”。(A1∩B1)代表的是原始条件表达式1“(a.age>35and b is_member=1)”的逻辑表达式,其中的“∩”表示原始子条件表达式1“a.age>35”和原始子条件表达式2“b is_member=1”之间为“and”的逻辑关系,也就是,取交集的意思;相应的,(A2∩B2)代表的是原始条件表达式2“(a.age<30and b is_member=0)”的逻辑表达式,其中的“∩”表示原始子条件表达式3“a.age<30”和原始子条件表达式4“b is_member=0”之间为“and”的逻辑关系,也就是,取交集的意思;其次,“∪”表示原始条件表达式1与原始条件表达式2之间为“or”的逻辑关系,也就是,取并集的意思。
上述即为原始条件表达式以及原始子条件表达式之间的逻辑关系,其分别表示了原始子条件表达式1和原始子条件表达式2之间的逻辑关系,原始子条件表达式3和原始子条件表达式4之间的逻辑关系;A1和B1属于同一个原始条件表达式,A2和B2属于同一个原始条件表达式。此处对各原始子条件表达式进行重组,是基于原始条件表达式1和原始条件表达式2之间的原始逻辑表达式(A1∩B1)∪(A2∩B2)根据集合的结合律进行逻辑运算处理,获得新的逻辑表达式,其具体的推导过程为:
(A1∩B1)∪(A2∩B2)
=[A1∪(A2∩B2)]∩[B1∪(A2∩B2)]
=(A1∪A2)∩(A1∪B2)∩(A2∪B1)∩(B1∪B2)
上述转换后形成的新的逻辑表达式,表示分属于不同原始条件表达式的原始子条件表达式之间的逻辑关系,即新的子逻辑表达式1(A1∪A2),新的子逻辑表达式2(A1∪B2),新的子逻辑表达式3(A2∪B1)和新的子逻辑表达式4(B1∪B2),并且上述四个新的子逻辑表达式之间的逻辑关系为“and”,也就是“逻辑和”的关系。
其中,
(A1∪A2)对应新的条件表达式1(a.age>35or a.age<30),表示的是原始子条件表达式1和原始子条件表达式3之间的逻辑关系;
(A1∪B2)对应新的条件表达式2(a.age>35or b is_member=0),表示的是原始子条件表达式1和原始子条件表达式4之间的逻辑关系;
(A2∪B1)对应新的条件表达式3(a.age<30or b is_member=1),表示的是原始子条件表达式2和原始子条件表达式3之间的逻辑关系;
(B1∪B2)对应新的条件表达式4(b is_member=1or b is_member=0),表示的是原始子条件表达式3和原始子条件表达式4之间的逻辑关系。
上述四个新的条件表达式分别表示了分属于不同原始条件表达式的原始子条件表达式之间的逻辑关系。根据上述新的逻辑表达式以及其对应的新的条件表达式,可以得到如下的新的查询语句:
Select*
from tableA a JOIN tableB b
on a_xxxx=b_xxxx
where
(a.age>35or a.age<30)
and
(b is_member=1or b is_member=0)
and
(a.age>35or b is_member=0)
and
(a.age<30or b is_member=1)。
第二步:根据所述分属于不同原始条件表达式的原始子条件表达式之间的逻辑关系,对原始子条件表达式进行重组处理,获得目标条件表达式以及目标条件表达式之间的逻辑关系。
具体的,根据所述分属于不同原始条件表达式的原始子条件表达式之间的逻辑关系,针对所述分属于不同原始条件表达式的原始子条件表达式之间进行逻辑运算处理,获得逻辑运算处理结果;根据所述逻辑运算处理结果,获得目标条件表达式以及目标条件表达式之间的逻辑关系。
上述新的逻辑表达式(A1∪A2)∩(A1∪B2)∩(A2∪B1)∩(B1∪B2)即是分属于不同原始条件表达式的原始子条件表达式之间的逻辑关系,分别是,原始子条件表达式1和原始子条件表达式3之间,原始子条件表达式1和原始子条件表达式4之间,原始子条件表达式2和原始子条件表达式3之间,原始子条件表达式3和原始子条件表达式4之间的逻辑关系。并且,上述新的逻辑表达式是在原始逻辑表达式(A1∩B1)∪(A2∩B2)的基础上,对原始子条件表达式1,原始子条件表达式2,原始子条件表达式3和原始子条件表达式4进行逻辑运算处理获得的逻辑运算结果。
其中,上述新的逻辑表达式中各个新的条件表达式之间的逻辑关系即代表目标查询语句中各目标条件表达式之间的逻辑关系,即为“and”,也就是“逻辑和”的关系,其代表的是,根据(A1∪A2)∩(A1∪B2)∩(A2∪B1)∩(B1∪B2)获取到的查询结果需要同时满足上述四个新的条件表达式。
相应的,
目标条件表达式1为(a.age>35or a.age<30);
目标条件表达式2为(a.age>35or b is_member=0);
目标条件表达式3为(a.age<30or b is_member=1);
目标条件表达式4为(b is_member=1or b is_member=0)。
在步骤S302中,根据仅针对一个数据表的目标条件表达式生成用于表示对数据表进行拼接操作的数据表拼接操作语句。
具体的,如果至少一个目标条件表达式是仅针对一个数据表的条件表达式,则将所述仅针对一个数据表的条件表达式作为选定目标条件表达式,将所述选定目标条件表达式所针对的数据表作为选定数据表,根据所述选定目标条件表达式和所述选定数据表的信息生成用于表示将目标数据表与其他数据表进行拼接操作的数据表拼接操作语句,所述目标数据表是根据所述选定目标条件表达式对所述选定数据表中的数据进行筛选操作后得到的数据表。
根据上述步骤S301中获取的新的查询语句中各目标条件表达式可知,目标条件表达式1为(a.age>35or a.age<30),以及目标条件表达式4为(b is_member=1or b is_member=0)属于仅针对一个数据表的条件表达式,因此,目标条件表达式1和目标条件表达式4可分别称作选定目标条件表达式1和选定目标条件表达式2。
将该选定目标条件表达式1(a.age>35or a.age<30)针对的数据表作为选定数据表a。
相应的,将该选定目标条件表达式2(b is_member=1or b is_member=0)针对的数据表作为选定数据表b。
因此,根据选定目标条件表达式1和选定数据表a的信息生成用于表示将目标数据表与其他数据表进行拼接操作的数据表拼接操作语句1,具体如下:
Figure GDA0002916484120000181
根据选定目标条件表达式2和选定数据表b的信息生成用于表示将目标数据表与其他数据表进行拼接操作的数据表拼接操作语句2,具体如下:
Figure GDA0002916484120000182
Figure GDA0002916484120000191
所述数据表拼接操作语句包括用于表示将所述选定目标条件表达式作为所述选定数据表中的数据筛选条件的第一子语句以及在第一子语句基础上生成的用于表示将所述选定数据表的信息与所述其他数据表的信息进行拼接操作的子语句。具体的,例如,数据表拼接操作语句1,包括:将选定目标条件表达式1(a.age>35or a.age<30)作为选定数据表a中的数据筛选条件的第一子语句,以及在第一子语句基础上生成的用于表示将选定数据表a的信息与其他数据表的信息进行拼接操作的子语句,例如,
Figure GDA0002916484120000192
所述选定目标条件表达式中的所有子条件表达式都是针对所述选定数据表的子条件表达式。例如,选定目标条件表达式1(a.age>35or a.age<30)中的子条件表达式1“a.age>35”和子条件表达式2“a.age<30”都是针对选段数据表a的子条件表达式,其均是表示对选定数据表a进行筛选操作的子条件表达式。
所述其他数据表是所述原始查询语句中的原始条件表达式中的原始子条件表达式针对的除所述选定数据表之外的数据表。
所述目标数据表是根据所述选定目标条件表达式对所述选定数据表中的数据进行筛选操作后得到的数据表。因此,根据选定目标条件表达式1对选定数据表a进行筛选操作后获得的数据表为目标数据表c。相应的,根据选定目标条件表达式2对选定数据表b进行筛选操作后获得的数据表为目标数据表d。
在步骤S303中,根据所述数据表拼接操作语句以及除所述仅针对一个数据表的目标条件表达式之外的其他目标条件表达式之间的逻辑关系,生成所述目标查询语句。
继续沿用上述例子,数据表拼接操作语句为:
Figure GDA0002916484120000193
Figure GDA0002916484120000201
其他目标条件表达式包括目标条件表达式2(a.age>35or b is_member=0)和目标条件表达式3(a.age<30or b is_member=1),并且两者之间的逻辑关系为“and”,也就是“和”的关系。
基于数据表拼接操作语句以及除所述仅针对一个数据表的目标条件表达式之外的其他目标条件表达式之间的逻辑关系,生成的目标查询语如下:
Figure GDA0002916484120000202
其中,(select*from tableA where age>35or age<30)a表示采用选定目标条件表达式1(a.age>35or a.age<30)对选定数据表a进行筛选操作,其筛选操作后获得的数据表为目标数据表,称作目标数据表c。
(select*from tableB where is_member=1or is_member=0)b表示采用选定目标条件表达式2(b is_member=1or b is_member=0)对选定数据表b进行筛选操作,其筛选操作后获得的数据表为目标数据表,称作目标数据表d。
其中,
where
(a.age<30or b is_member=1)
And
(a.age>35or b is_member=0)
表示目标查询条件,其中,(a.age<30or b is_member=1)表示目标条件表达式3,(a.age>35or b is_member=0)表示目标条件表达式2,并且目标条件表达式2和目标条件表达式3的逻辑关系为“and”,也就是,“逻辑和”的关系。
以上即为本申请第一实施例,将原始查询语句转换为目标查询语句,目标查询语句中包含非全量数据表,因此,可以减少对多个数据表进行数据拼接操作的计算次数,降低数据表中的数据拼接操作的时间,从而节省数据查询的查询时间,提高数据查询效率,获取数据查询结果。
如图2所示,在步骤S204中,根据所述目标查询语句进行数据查询操作,获得与所述数据查询条件信息对应的数据查询结果。
具体的,将所述目标查询语句提供给目标数据库,所述目标数据库存储有所述原始查询语句中的原始条件表达式中的原始子条件表达式所针对的数据表;获得所述目标数据库返回的与所述目标查询语句对应的数据查询结果。
根据步骤S203中得到的目标查询语句,数据库识别后的执行顺序为:首先将选定数据表a按照选定目标条件表达式1(a.age>35or a.age<30)进行筛选后,得到目标数据表c;同时将选定数据表b按照选定目标条件表达式2(b is_member=1or b is_member=0)进行筛选后,得到目标数据表d;然后,将目标数据表c和目标数据表d进行拼接操作,得到数据表e,按照上述目标查询条件对数据表e进行查询操作,获得与所述数据查询条件信息对应的数据查询结果。
如图2所示,在步骤S205中,向所述客户端返回所述数据查询结果。
以上即为本申请第一实施例提供的数据查询方法,获取客户端发送的数据查询请求消息,所述数据查询请求消息包括数据查询条件信息;根据所述数据查询条件信息,生成可被数据库识别的与所述数据查询条件信息对应的原始查询语句;如果所述原始查询语句表示需要将多个全量数据表进行拼接操作,则将所述原始查询语句转换为可被数据库识别的与所述数据查询条件信息对应的目标查询语句,所述目标查询语句表示进行拼接的多个数据表中至少有一个数据表为非全量数据表;根据所述目标查询语句进行数据查询操作,获得与所述数据查询条件信息对应的数据查询结果;向所述客户端返回所述数据查询结果。目标查询语句中进行数据拼接操作的多个数据表中包含非全量数据表。因此,可以减少对多个数据表进行数据拼接操作的计算次数,降低数据表中的数据拼接操作的时间,从而节省数据查询的查询时间,提高数据查询效率,获取数据查询结果。
第二实施例
与本申请第一实施例提供的数据查询方法相对应的,本申请第二实施例还提供了另一种数据查询方法,本申请第二实施例中执行所述数据查询方法的执行主体可以是与本申请第一实施例中的执行主体服务端对应的客户端,相关之处参见第一实施例的部分说明即可。下述描述第二实施例仅仅是示意性的。
请参照图4,其为本申请第二实施例中提供的另一种数据查询方法的流程图。图4所示的数据查询方法,包括:步骤S401至步骤S402。
在步骤S401中,向服务端发送数据查询请求消息,所述数据查询请求消息包括数据查询条件信息。
本申请第二实施例中,步骤S401用于向服务端发送数据查询请求消息。
所谓数据查询请求消息,是指用户在客户端输入数据查询条件信息,客户端根据数据查询条件信息生成的、并向服务端发送的请求获取与数据查询条件信息对应的消息。
所谓数据查询条件信息包括针对对象标签信息的数据筛选条件信息。对应标签信息是指用于描述用户的基本属性、消费行为和偏好习惯等的标签信息。例如,本申请实施例中,以标签管理中心的年龄和会员两个标签进行说明,用户输入的数据查询条件信息为,年龄在35岁以上并且属于会员,或者,年龄在30岁以下并且不属于会员。
可选的,所述方法还包括:响应于检测到针对对象标签信息的数据筛选条件信息的设置操作,生成所述数据查询条件信息。
在步骤S402中,获得所述服务端返回的与所述数据查询条件信息对应的数据查询结果,所述数据查询结果是根据可被数据库识别的与所述数据查询条件信息对应的目标查询语句进行数据查询操作所获得的数据查询结果,所述目标查询语句是将原始查询语句转换后得到的查询语句,所述原始查询语句是根据所述数据查询条件信息生成的可被数据库识别的与所述数据查询条件信息对应的查询语句,所述原始查询语句表示需要进行将多个全量数据表进行拼接的操作,所述目标查询语句表示进行拼接的多个数据表中至少有一个数据表为非全量数据表。
本步骤S402中的优选实施例下,所述多个全量数据表为两个全量数据表或三个全量数据表。
如果原始查询语句表示将两个全量数据表进行拼接操作,则需要将该原始查询语句进行优化操作,获取目标查询语句,其中,优化后的目标查询语句中进行拼接操作的两个数据表中至少有一个数据表为非全量数据表。
继续沿用上述例子进行以下说明。
所谓全量数据表是指数据表中的所有数据与其他全量数据表的数据进行拼接操作的数据表。
例如,
Select*
from tableA a JOIN tableB b
on a_xxxx=b_xxxx
将数据表a中的所有数据与数据表b中的所有数据进行拼接操作,数据表a和数据表b均是全量数据表。
所谓非全量数据表是指将全量数据表按照某个筛选条件进行筛选后的包含部分数据的数据表。
例如,
select*from tableA
where age>35or age<30
将数据表a中的所有数据按照“age>35or age<30”的筛选条件筛选后得到的部分数据组成的数据表c,成为非全量数据表。
所述拼接操作,是指Join,对数据库中的两个或者两个以上的数据表进行连接,合并等操作。
例如,
Select*
from tableA a JOIN tableB b
on a_xxxx=b_xxxx
将数据表a中的数据A和数据表b中的数据表B进行合并操作,获取一张同时包含数据A和数据B的数据表,以供后续对拼接后的数据表进行筛选操作。
例如,
Figure GDA0002916484120000231
上述目标查询语句中表示进行拼接操作的两个数据表,至少存在一个数据表为非全量数据表,例如,数据表a经过筛选后得到的临时表c即为非全量数据表。
上述原始查询语句中,对数据表a和数据表b的全量数据进行拼接操作,基于上述例子中提到的拼接次数为100亿次,拼接次数过于庞大。而目标查询语句中,假设临时表c中数据A为5万数据,数据表b经过“is_member=1or is_member=0”筛选条件后得到的临时表d中数据B为5万数据,则将临时表c和临时表d进行拼接操作的次数为25亿次,拼接次数明显减小。
因此,为了降低两个数据表进行全量数据的拼接操作次数,本步骤将原始查询语句转换为目标查询语句,目标查询语句中进行数据拼接操作的数据表中包含非全量数据表,可以减少数据拼接操作的计算次数,以达到提高获取数据查询结果的查询效率。
第三实施例
与本申请提供的数据查询方法的原理场景对应的实施例以及第一实施例提供的数据查询方法相对应的,本申请第三实施例还提供了一种数据查询装置。由于装置实施例基本相似于原理场景对应的实施例以及第一实施例,所以描述得比较简单,相关之处参见原理场景对应的实施例以及第一实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。
请参照图5,其为本申请第三实施例中提供的一种数据查询装置的示意图。
本申请第三实施例中提供的数据查询装置,包括:
数据查询请求消息获取单元501,用于获取客户端发送的数据查询请求消息,所述数据查询请求消息包括数据查询条件信息;
原始查询语句生成单元502,用于根据所述数据查询条件信息,生成可被数据库识别的与所述数据查询条件信息对应的原始查询语句;
目标查询语句生成单元503,用于如果所述原始查询语句表示需要将多个全量数据表进行拼接操作,则将所述原始查询语句转换为可被数据库识别的与所述数据查询条件信息对应的目标查询语句,所述目标查询语句表示进行拼接的多个数据表中至少有一个数据表为非全量数据表;
数据查询结果获取单元504,用于根据所述目标查询语句进行数据查询操作,获得与所述数据查询条件信息对应的数据查询结果;
数据查询结果发送单元505,用于向所述客户端返回所述数据查询结果。
可选的,所述目标查询语句生成单元,包括目标条件表达式生成单元,数据表拼接操作语句生成单元,目标查询语句生成子单元;
所述目标条件表达式生成单元,用于按照所述原始查询语句表示的原始条件表达式之间的逻辑关系以及原始条件表达式中的原始子条件表达式之间的逻辑关系,对所述原始子条件表达式进行重组处理,获得目标条件表达式,所述目标条件表达式表示分属于不同原始条件表达式的原始子条件表达式之间的逻辑关系,所述原始条件表达式是所述原始查询语句包括的条件表达式;
所述数据表拼接操作语句生成单元,用于根据仅针对一个数据表的目标条件表达式生成用于表示对数据表进行拼接操作的数据表拼接操作语句;
所述目标查询语句生成子单元,用于根据所述数据表拼接操作语句以及除所述仅针对一个数据表的目标条件表达式之外的其他目标条件表达式之间的逻辑关系,生成所述目标查询语句。
可选的,所述目标条件表达式生成单元,包括第一逻辑关系单元,第二逻辑关系单元;
所述第一逻辑关系单元,用于按照所述原始查询语句表示的所述原始条件表达式之间的逻辑关系以及原始条件表达式中的原始子条件表达式之间的逻辑关系,确定分属于不同原始条件表达式的原始子条件表达式之间的逻辑关系;
所述第二逻辑关系单元,用于根据所述分属于不同原始条件表达式的原始子条件表达式之间的逻辑关系,对原始子条件表达式进行重组处理,获得目标条件表达式以及目标条件表达式之间的逻辑关系。
可选的,所述第二逻辑关系单元,包括逻辑运算处理结果单元和目标条件表达式生成子单元;
所述逻辑运算处理结果单元,用于根据所述分属于不同原始条件表达式的原始子条件表达式之间的逻辑关系,针对所述分属于不同原始条件表达式的原始子条件表达式之间进行逻辑运算处理,获得逻辑运算处理结果;
所述目标条件表达式生成子单元,用于根据所述逻辑运算处理结果,获得目标条件表达式以及目标条件表达式之间的逻辑关系。
可选的,任意两个原始条件表达式之间的逻辑关系为逻辑和关系或者逻辑或关系,任意两个原始子条件表达式之间的逻辑关系为逻辑和关系或者逻辑或关系,分属于不同原始条件表达式的任意两个原始子条件表达式之间的逻辑关系为逻辑和关系或者逻辑或关系,任意两个其他目标条件表达式之间的逻辑关系为逻辑和关系或者逻辑或关系。
可选的,所述数据表拼接操作语句生成单元,具体用于如果至少一个目标条件表达式是仅针对一个数据表的条件表达式,则将所述仅针对一个数据表的条件表达式作为选定目标条件表达式,将所述选定目标条件表达式所针对的数据表作为选定数据表,根据所述选定目标条件表达式和所述选定数据表的信息生成用于表示将目标数据表与其他数据表进行拼接操作的数据表拼接操作语句,所述目标数据表是根据所述选定目标条件表达式对所述选定数据表中的数据进行筛选操作后得到的数据表。
可选的,所述数据表拼接操作语句包括用于表示将所述选定目标条件表达式作为所述选定数据表中的数据筛选条件的第一子语句以及在第一子语句基础上生成的用于表示将所述选定数据表的信息与所述其他数据表的信息进行拼接操作的子语句。
可选的,所述选定目标条件表达式中的所有子条件表达式都是针对所述选定数据表的子条件表达式。
可选的,所述其他数据表是所述原始查询语句中的原始条件表达式中的原始子条件表达式针对的除所述选定数据表之外的数据表。
可选的,所述数据查询结果获取单元,具体用于将所述目标查询语句提供给目标数据库,所述目标数据库存储有所述原始查询语句中的原始条件表达式中的原始子条件表达式所针对的数据表;获得所述目标数据库返回的与所述目标查询语句对应的数据查询结果。
可选的,所述多个全量数据表为两个全量数据表或三个全量数据表。
可选的,所述数据查询条件信息包括针对对象标签信息的数据筛选条件信息。
第四实施例
与本申请提供的数据查询方法的原理场景对应的实施例以及第二实施例提供的另一种数据查询方法相对应的,本申请第四实施例还提供了另一种数据查询装置。由于装置实施例基本相似于原理场景对应的实施例以及第二实施例,所以描述得比较简单,相关之处参见原理场景对应的实施例以及第二实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。
请参照图6,其为本申请第四实施例中提供的另一种数据查询装置的示意图。
本申请第四实施例中提供的数据查询装置,包括:
数据查询请求消息发送单元601,用于向服务端发送数据查询请求消息,所述数据查询请求消息包括数据查询条件信息;
数据查询结果获取单元602,用于获得所述服务端返回的与所述数据查询条件信息对应的数据查询结果,所述数据查询结果是根据可被数据库识别的与所述数据查询条件信息对应的目标查询语句进行数据查询操作所获得的数据查询结果,所述目标查询语句是将原始查询语句转换后得到的查询语句,所述原始查询语句是根据所述数据查询条件信息生成的可被数据库识别的与所述数据查询条件信息对应的查询语句,所述原始查询语句表示需要进行将多个全量数据表进行拼接的操作,所述目标查询语句表示进行拼接的多个数据表中至少有一个数据表为非全量数据表。
可选的,所述数据查询条件信息包括针对对象标签信息的数据筛选条件信息;
所述装置还包括:数据查询条件消息生成单元,用于响应于检测到针对对象标签信息的数据筛选条件信息的设置操作,生成所述数据查询条件信息。
可选的,所述多个全量数据表为两个全量数据表或三个全量数据表。
第五实施例
与本申请提供的上述方法实施例相对应的,本申请第五实施例还提供了一种电子设备。由于第五实施例基本相似于本申请提供的上述方法实施例,所以描述得比较简单,相关之处参见本申请提供的上述方法实施例部分的说明即可。下述描述的装置实施例仅仅是示意性的。
请参照图7,其为本申请第五实施例中提供的一种电子设备的示意图。
该电子设备,包括:
处理器701;以及
存储器702,用于存储计算机方法的程序,所述程序在被所述处理器读取执行时执行上述任意一种方法。
需要说明的是,本申请第五实施例提供的电子设备的详细描述,可以参考对本申请提供的数据查询方法的应用场景以及第五实施例提供的数据查询方法的相关描述,这里不再赘述。
第六实施例
与本申请提供的上述方法实施例相对应的,本申请第六实施例还提供了一种计算机存储介质,由于第六实施例基本相似于本申请提供的上述方法实施例,所以描述的比较简单,相关之处参见本申请提供的上述方法实施例部分的说明即可。下面描述的第六实施例仅仅是示意性的。
所述计算机存储介质存储有计算机程序,所述程序被执行时实现上述方法实施例中提供的方法。
需要说明的是,本申请第六实施例提供的存储介质的详细描述,可以参考对本申请提供的上述方法实施例的相关描述,这里不再赘述。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本发明的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(Flash RAM)。内存是计算机可读介质的示例。
1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(Transitory Media),如调制的数据信号和载波。
2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

Claims (10)

1.一种数据查询方法,其特征在于,包括:
获取客户端发送的数据查询请求消息,所述数据查询请求消息包括数据查询条件信息;
根据所述数据查询条件信息,生成可被数据库识别的与所述数据查询条件信息对应的原始查询语句;
如果所述原始查询语句表示需要将多个全量数据表进行拼接操作,则将所述原始查询语句转换为可被数据库识别的与所述数据查询条件信息对应的目标查询语句,所述目标查询语句表示进行拼接的多个数据表中至少有一个数据表为非全量数据表;
根据所述目标查询语句进行数据查询操作,获得与所述数据查询条件信息对应的数据查询结果;
向所述客户端返回所述数据查询结果。
2.根据权利要求1所述的方法,其特征在于,所述将所述原始查询语句转换为可被数据库识别的与所述数据查询条件信息对应的目标查询语句,包括:
按照所述原始查询语句表示的原始条件表达式之间的逻辑关系以及原始条件表达式中的原始子条件表达式之间的逻辑关系,对所述原始子条件表达式进行重组处理,获得目标条件表达式,所述目标条件表达式表示分属于不同原始条件表达式的原始子条件表达式之间的逻辑关系,所述原始条件表达式是所述原始查询语句包括的条件表达式;
根据仅针对一个数据表的目标条件表达式生成用于表示对数据表进行拼接操作的数据表拼接操作语句;
根据所述数据表拼接操作语句以及除所述仅针对一个数据表的目标条件表达式之外的其他目标条件表达式之间的逻辑关系,生成所述目标查询语句。
3.根据权利要求2所述的方法,其特征在于,所述按照所述原始查询语句表示的原始条件表达式之间的逻辑关系以及原始条件表达式中的原始子条件表达式之间的逻辑关系,对所述原始子条件表达式进行重组处理,获得目标条件表达式,包括:
按照所述原始查询语句表示的所述原始条件表达式之间的逻辑关系以及原始条件表达式中的原始子条件表达式之间的逻辑关系,确定分属于不同原始条件表达式的原始子条件表达式之间的逻辑关系;
根据所述分属于不同原始条件表达式的原始子条件表达式之间的逻辑关系,对原始子条件表达式进行重组处理,获得目标条件表达式以及目标条件表达式之间的逻辑关系。
4.根据权利要求3所述的方法,其特征在于,所述根据所述分属于不同原始条件表达式的原始子条件表达式之间的逻辑关系,对原始子条件表达式进行重组处理,获得目标条件表达式以及目标条件表达式之间的逻辑关系,包括:
根据所述分属于不同原始条件表达式的原始子条件表达式之间的逻辑关系,针对所述分属于不同原始条件表达式的原始子条件表达式之间进行逻辑运算处理,获得逻辑运算处理结果;
根据所述逻辑运算处理结果,获得目标条件表达式以及目标条件表达式之间的逻辑关系。
5.根据权利要求2所述的方法,其特征在于,任意两个原始条件表达式之间的逻辑关系为逻辑和关系或者逻辑或关系,任意两个原始子条件表达式之间的逻辑关系为逻辑和关系或者逻辑或关系,分属于不同原始条件表达式的任意两个原始子条件表达式之间的逻辑关系为逻辑和关系或者逻辑或关系,任意两个其他目标条件表达式之间的逻辑关系为逻辑和关系或者逻辑或关系。
6.一种数据查询方法,其特征在于,包括:
向服务端发送数据查询请求消息,所述数据查询请求消息包括数据查询条件信息;
获得所述服务端返回的与所述数据查询条件信息对应的数据查询结果,所述数据查询结果是根据可被数据库识别的与所述数据查询条件信息对应的目标查询语句进行数据查询操作所获得的数据查询结果,所述目标查询语句是将原始查询语句转换后得到的查询语句,所述原始查询语句是根据所述数据查询条件信息生成的可被数据库识别的与所述数据查询条件信息对应的查询语句,所述原始查询语句表示需要进行将多个全量数据表进行拼接的操作,所述目标查询语句表示进行拼接的多个数据表中至少有一个数据表为非全量数据表。
7.一种数据查询装置,其特征在于,包括:
数据查询请求消息获取单元,用于获取客户端发送的数据查询请求消息,所述数据查询请求消息包括数据查询条件信息;
原始查询语句生成单元,用于根据所述数据查询条件信息,生成可被数据库识别的与所述数据查询条件信息对应的原始查询语句;
目标查询语句生成单元,用于如果所述原始查询语句表示需要将多个全量数据表进行拼接操作,则将所述原始查询语句转换为可被数据库识别的与所述数据查询条件信息对应的目标查询语句,所述目标查询语句表示进行拼接的多个数据表中至少有一个数据表为非全量数据表;
数据查询结果获取单元,用于根据所述目标查询语句进行数据查询操作,获得与所述数据查询条件信息对应的数据查询结果;
数据查询结果发送单元,用于向所述客户端返回所述数据查询结果。
8.一种数据查询装置,其特征在于,包括:
数据查询请求消息发送单元,用于向服务端发送数据查询请求消息,所述数据查询请求消息包括数据查询条件信息;
数据查询结果获取单元,用于获得所述服务端返回的与所述数据查询条件信息对应的数据查询结果,所述数据查询结果是根据可被数据库识别的与所述数据查询条件信息对应的目标查询语句进行数据查询操作所获得的数据查询结果,所述目标查询语句是将原始查询语句转换后得到的查询语句,所述原始查询语句是根据所述数据查询条件信息生成的可被数据库识别的与所述数据查询条件信息对应的查询语句,所述原始查询语句表示需要进行将多个全量数据表进行拼接的操作,所述目标查询语句表示进行拼接的多个数据表中至少有一个数据表为非全量数据表。
9.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储计算机方法的程序,所述程序在被所述处理器读取执行时,执行权利要求1-6任意一项所述的方法。
10.一种计算机存储介质,其特征在于,
所述计算机存储介质存储有计算机程序,所述程序被执行时实现权利要求1-6任意一项所述的方法。
CN202011424430.8A 2020-12-09 2020-12-09 一种数据查询方法、装置及电子设备 Active CN112199577B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011424430.8A CN112199577B (zh) 2020-12-09 2020-12-09 一种数据查询方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011424430.8A CN112199577B (zh) 2020-12-09 2020-12-09 一种数据查询方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN112199577A CN112199577A (zh) 2021-01-08
CN112199577B true CN112199577B (zh) 2021-04-02

Family

ID=74034568

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011424430.8A Active CN112199577B (zh) 2020-12-09 2020-12-09 一种数据查询方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN112199577B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113448969B (zh) * 2021-08-30 2022-02-18 阿里云计算有限公司 数据处理方法、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107193813A (zh) * 2016-03-14 2017-09-22 阿里巴巴集团控股有限公司 数据表连接方式处理方法及装置
CN109947788A (zh) * 2017-10-30 2019-06-28 北京京东尚科信息技术有限公司 数据查询方法和装置
CN111143359A (zh) * 2019-12-18 2020-05-12 口碑(上海)信息技术有限公司 查询语句生成方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110320433A1 (en) * 2010-06-25 2011-12-29 Microsoft Corporation Automated Joining of Disparate Data for Database Queries

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107193813A (zh) * 2016-03-14 2017-09-22 阿里巴巴集团控股有限公司 数据表连接方式处理方法及装置
CN109947788A (zh) * 2017-10-30 2019-06-28 北京京东尚科信息技术有限公司 数据查询方法和装置
CN111143359A (zh) * 2019-12-18 2020-05-12 口碑(上海)信息技术有限公司 查询语句生成方法及装置

Also Published As

Publication number Publication date
CN112199577A (zh) 2021-01-08

Similar Documents

Publication Publication Date Title
CN107038207B (zh) 一种数据查询方法、数据处理方法及装置
US11580441B2 (en) Model training method and apparatus
CN107451225B (zh) 用于半结构化数据的可缩放分析平台
CN106611044B (zh) 一种sql优化方法及设备
US8949222B2 (en) Changing the compression level of query plans
CN107391502B (zh) 时间间隔的数据查询方法、装置及索引构建方法、装置
US9753960B1 (en) System, method, and computer program for dynamically generating a visual representation of a subset of a graph for display, based on search criteria
Sehgal et al. Sentiment analysis of big data applications using Twitter Data with the help of HADOOP framework
US10394907B2 (en) Filtering data objects
CN106557307B (zh) 业务数据的处理方法及处理系统
WO2022083436A1 (zh) 数据处理方法、装置、设备及可读存储介质
Hu et al. Towards big linked data: a large-scale, distributed semantic data storage
CN111611448A (zh) 知识驱动的联合大数据查询和分析平台
CN112199577B (zh) 一种数据查询方法、装置及电子设备
CN114297204A (zh) 一种异构数据源的数据存储、检索方法及装置
CN112506887A (zh) 车辆终端can总线数据处理方法及装置
US10872103B2 (en) Relevance optimized representative content associated with a data storage system
CN116049153B (zh) 数据库的数据处理方法、装置、电子设备及存储介质
CN109697234B (zh) 实体的多属性信息查询方法、装置、服务器和介质
CN110019357B (zh) 数据库查询脚本生成方法及装置
Soussi Big-Parallel-ETL: New ETL for Multidimensional NoSQL Graph Oriented Data
CN108241624B (zh) 一种查询脚本的生成方法及装置
CN115905630A (zh) 一种图数据库查询方法、装置、设备及存储介质
TWI761331B (zh) 樣本序列化方法和裝置
Hashem et al. A review of modeling toolbox for BigData

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant