CN112069164B - 数据查询方法、装置、电子设备及计算机可读存储介质 - Google Patents

数据查询方法、装置、电子设备及计算机可读存储介质 Download PDF

Info

Publication number
CN112069164B
CN112069164B CN201910496470.4A CN201910496470A CN112069164B CN 112069164 B CN112069164 B CN 112069164B CN 201910496470 A CN201910496470 A CN 201910496470A CN 112069164 B CN112069164 B CN 112069164B
Authority
CN
China
Prior art keywords
materialized
materialized view
view
data query
query request
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
CN201910496470.4A
Other languages
English (en)
Other versions
CN112069164A (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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201910496470.4A priority Critical patent/CN112069164B/zh
Publication of CN112069164A publication Critical patent/CN112069164A/zh
Application granted granted Critical
Publication of CN112069164B publication Critical patent/CN112069164B/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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • 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/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries

Landscapes

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

Abstract

本发明提供一种数据查询方法、装置、电子设备及计算机可读存储介质。该方法包括:对基础物化视图进行数据聚合处理,以创建多个聚合物化视图;在接收到对基础物化视图的数据查询请求的情况下,从基础物化视图和多个聚合物化视图中,确定支持数据查询请求的第一物化视图,并在第一物化视图中进行数据查询。与现有技术相比,本发明实施例能够减小查询压力,缩短查询时间,从而提高查询效率。

Description

数据查询方法、装置、电子设备及计算机可读存储介质
技术领域
本发明实施例涉及数据库技术领域,尤其涉及一种数据查询方法、装置、电子设备及计算机可读存储介质。
背景技术
在数据库技术领域中,物化视图的应用非常广泛。可以理解的是,物化视图是一种特殊的物理表,物化视图是相对普通视图而言的,物化视图本身存储数据。
在许多情况下,需要基于物化视图进行数据查询,现有的查询方式为:在接收到对任一物化视图的数据查询请求时,直接在该物化视图中查询相应的数据,并将查询结果返回给用户。那么,当同时存在多个并发发起的,对同一物化视图的数据查询请求时,查询压力会非常大,查询过程需要花费非常长的时间,这样会导致查询效率低下。
发明内容
本发明实施例提供一种数据查询方法、装置、电子设备及计算机可读存储介质,以解决现有技术中利用物化视图进行数据查询时,查询效率低下的问题。
第一方面,本发明实施例提供一种数据查询方法,所述方法包括:
对基础物化视图进行数据聚合处理,以创建多个聚合物化视图;
在接收到对所述基础物化视图的数据查询请求的情况下,从所述基础物化视图和所述多个聚合物化视图中,确定支持所述数据查询请求的第一物化视图,并在所述第一物化视图中进行数据查询。
第二方面,本发明实施例提供一种数据查询装置,所述装置包括:
创建模块,用于对基础物化视图进行数据聚合处理,以创建多个聚合物化视图;
处理模块,用于在接收到对所述基础物化视图的数据查询请求的情况下,从所述基础物化视图和所述多个聚合物化视图中,确定支持所述数据查询请求的第一物化视图,并在所述第一物化视图中进行数据查询。
第三方面,本发明实施例提供一种电子设备,包括处理器,存储器,存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述数据查询方法的步骤。
第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述数据查询方法的步骤。
第五方面,本发明实施例提供一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时能够实现上述数据查询方法的步骤。
本发明实施例中,在接收到对基础物化视图的数据查询请求的情况下,可以不直接在基础物化视图中进行数据查询,而是从基础物化视图,以及根据基础物化视图预先创建的多个聚合物化视图中,确定支持数据查询请求的第一物化视图,并在第一物化视图中进行数据查询,从而得到并输出相应的数据。也就是说,针对基础物化视图的数据查询请求,既可能在基础物化视图中进行数据查询,也有可能在基于基础物化视图创建的聚合物化视图中进行数据查询,那么,当同时存在多个并发发起的,对基础物化视图的数据查询请求时,至少部分查询可以利用经数据聚合处理得到的聚合物化视图实现,而无需利用基础物化视图实现所有查询,因此,与现有技术相比,本发明实施例能够减小查询压力,缩短查询时间,从而提高查询效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获取其他的附图。
图1是本发明实施例提供的数据查询方法的流程图之一;
图2是本发明实施例提供的数据查询方法的流程图之二;
图3是本发明实施例提供的数据查询方法的流程图之三;
图4是本发明实施例提供的数据查询装置的结构框图;
图5是本发明实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获取的所有其他实施例,都属于本发明保护的范围。
下面首先对本发明实施例提供的数据查询方法进行说明。
需要说明的是,本发明实施例提供的数据查询方法可以应用于电子设备。这里,电子设备可以为服务器,例如为使用结构化查询语言(Structured Query Language,SQL)的数据库服务器,当然,电子设备也可以为具有数据查询能力的其他设备,本发明实施例对电子设备的具体类型不做任何限定。
参见图1,图中示出了本发明实施例提供的数据查询方法的流程图之一。如图1所示,该方法可以包括如下步骤:
步骤101,对基础物化视图进行数据聚合处理,以创建多个聚合物化视图。
这里,基础物化视图也可以称之为基表,在得到基表之后,可以利用多条聚合语句,分别对其进行数据聚合处理,以得到多个聚合物化视图;其中,每个聚合物化视图可以包括至少一个维度列和一个指标列。具体地,聚合物化视图的数量可以为两个、三个、四个、五个、六个或者六个以上,在此不再一一列举。
具体地,基表可以如下面的表1所示,其中,“name”表示名字、“id”表示身份标识号,“sex”表示性别,“province”表示省份,“count”表示特定应用程序(Application,App)被打开的次数。
表1
在基表的基础上,可以利用三条聚合语句,分别对其进行数据聚合处理,这三条聚合语句可以依次为:select sum(count)from app_count group by id,sex,province;select sum(count)from app_count group by sex,province;select sum(count)fromapp_count group by province。这样,通过数据聚合处理,能够得到下面的表2至表4示意出的三个聚合物化视图,表2中的聚合物化视图与select sum(count)from app_countgroup by id,sex,province这条语句对应,表3中的聚合物化视图与select sum(count)from app_count group by sex,province这条语句对应,表4中的聚合物化视图与selectsum(count)from app_count group by province这条语句对应。
id sex province count
1 female shanxi 5
2 male shandong 3
3 male shanxi 6
4 female shanxi 2
5 female shanxi 3
6 male shandong 7
表2
sex province count
female shanxi 10
male shandong 10
male shanxi 6
表3
province count
shanxi 16
shandong 10
表4
步骤102,在接收到对基础物化视图的数据查询请求的情况下,从基础物化视图和多个聚合物化视图中,确定支持数据查询请求的第一物化视图,并在第一物化视图中进行数据查询。
这里,数据查询请求可以为聚合查询请求,或者为非聚合查询请求。
这里,第一物化视图支持数据查询请求是指:基于第一物化视图,能够查询得到数据查询请求的所请求数据。可选地,第一物化视图可以为基础物化视图和多个聚合物化视图中的,支持查询请求的所有物化视图中,能够保证最快返回所请求数据的物化视图。
在步骤102中,在确定出第一物化视图之后,可以在第一物化视图中进行二分查找,以便于获得所请求数据,之后,可以将所请求数据返回给用户,例如,可以在用户使用的终端界面上展示所请求数据。
本发明实施例中,在接收到对基础物化视图的数据查询请求的情况下,可以不直接在基础物化视图中进行数据查询,而是从基础物化视图,以及根据基础物化视图预先创建的多个聚合物化视图中,确定支持数据查询请求的第一物化视图,并在第一物化视图中进行数据查询,从而得到并输出相应的数据。也就是说,针对基础物化视图的数据查询请求,既可能在基础物化视图中进行数据查询,也有可能在基于基础物化视图创建的聚合物化视图中进行数据查询,那么,当同时存在多个并发发起的,对基础物化视图的数据查询请求时,至少部分查询可以利用经数据聚合处理得到的聚合物化视图实现,而无需利用基础物化视图实现所有查询,因此,与现有技术相比,本发明实施例能够减小查询压力,缩短查询时间,从而提高查询效率。
参见图2,图中示出了本发明实施例提供的数据查询方法的流程图之二。如图2所示,该方法包括如下步骤:
步骤201,对基础物化视图进行数据聚合处理,以创建多个聚合物化视图。
这里,步骤201的具体实施过程参照对步骤101的说明即可,在此不再赘述。
步骤202,在接收到对基础物化视图的数据查询请求的情况下,从基础物化视图和多个聚合物化视图中,筛选第一组物化视图;其中,数据查询请求为聚合查询请求,第一组物化视图中的每个物化视图均包括数据查询请求中的每一项对应的列。
这里,任一项对应的列可以为该项所在的列。以上面的表2至表4为例,“id”、“sex”、“province”、“count”等中的任一者均可以作为一个项,对于表2而言,“id”这一项对应的列为包含“1”、“2”、“3”、“4”、“5”这五个元素的维度列;对于表3而言,“province”这一项对应的列为包含“shanxi”、“shandong”、“shanxi”这三个元素的维度列;对于表4而言,“count”这一项对应的列为包含“16”、“10”这两个元素的指标列。
具体实施时,假设基础物化视图为上面的表1示意的物化视图,基础物化视图对应的多个聚合物化视图为上面的表2至表4示意的三个聚合物化视图,且数据查询请求中的查询语句为select sum(count)from app_count where sex=“male”,容易看出,数据查询请求中的项包括“count”和“sex”,表1至表3中示意的三个物化视图均包括查询请求中的每一项对应的列,因此,第一组物化视图可以由表1至表3中示意的三个物化视图构成。
需要指出的是,由于数据查询请求为聚合查询请求,数据查询请求所包括的各项中可以存在聚合项和谓词项。
步骤203,从第一组物化视图中,筛选与数据查询请求的查询类型匹配的第二组物化视图。
这里,数据查询请求的查询类型包括但不限于最大值查询类型、最小值查询类型、互异值查询类型、互异值数量查询类型、和值查询类型等;其中,最大值查询类型也可以称之为max查询类型,最小值查询类型也可以称之为min查询类型,互异值查询类型也可以称之为distinct查询类型,互异值数量查询类型也可以称之为count distinct查询类型,和值查询类型也可以称之为sum查询类型。下面对各查询类型下,查询类型与第二组物化视图的匹配关系进行说明。
第一种情况中,查询类型为最大值查询类型,则:
数据查询请求的聚合项与第二物化视图的维度列对应;或者,数据查询请求的聚合项与第二物化视图的指标列对应,且指标列的运算类型为求最大值类型;
其中,第二物化视图为第二组物化视图中的任意物化视图。
具体地,对于图2至图4中的物化视图而言,由于其对应的聚合语句中的函数均为sum,其的指标列的运算类型可以认为是求和类型。对于其他物化视图而言,如果其对应的聚合语句中的函数为max,则其的指标列的运算类型可以认为是求最大值类型。
这种情况中,数据查询请求中的查询语句可以为select max(id)from app_countwhere sex=“male”,这时,聚合项为“id”,谓词项包括“count”和“sex”,那么,可以从第一组物化视图中,筛选出存在与“id”对应的维度列的物化视图,以及存在与“id”对应的,为求最大值类型的指标列的物化视图,以得到由筛选出的物化视图构成的第二组物化视图。
需要指出的是,由于数据查询请求为聚合查询请求,这种情况可以描述为:聚合查询的是max,且max的是相应物化视图的维度列或者max类型的指标列。
第二种情况中,查询类型为最小值查询类型,则:
数据查询请求的聚合项与第二物化视图的维度列对应;或者,数据查询请求的聚合项与第二物化视图的指标列对应,且指标列的运算类型为求最小值类型;
其中,第二物化视图为第二组物化视图中的任意物化视图。
这种情况中,数据查询请求中的查询语句可以为select min(id)from app_countwhere sex=“male”,这时,聚合项为“id”,谓词项包括“count”和“sex”,那么,可以从第二组物化视图中,筛选出存在与“id”对应的维度列的物化视图,以及存在与“id”对应的,为求最小值类型的指标列的物化视图,以得到由筛选出的物化视图构成的第二组物化视图。
需要指出的是,由于数据查询请求为聚合查询请求,这种情况可以描述为:聚合查询的是min,且min的是相应物化视图的维度列或者min类型的指标列。
第三种情况中,查询类型为互异值查询类型或者互异值数量查询类型,则:
数据查询请求的聚合项与第二物化视图的维度列对应;
其中,第二物化视图为第二组物化视图中的任意物化视图。
这种情况中,数据查询请求中的查询语句可以为select distinct(id)from app_count where sex=“male”,这时,聚合项为“id”,谓词项包括“count”和“sex”,那么,可以从第一组物化视图中,筛选出存在与“id”对应的维度列的物化视图,以得到由筛选出的物化视图构成的第二组物化视图。
需要指出的是,由于数据查询请求为聚合查询请求,这种情况可以描述为:聚合查询的是distinct或者count distinct,且distinct或者count distinct的列是相应物化视图的维度列。
第四种情况中,查询类型为和值查询类型,则:
数据查询请求的聚合项与第二物化视图的指标列对应,且指标列的运算类型为求和类型;
其中,第二物化视图为第二组物化视图中的任意物化视图。
这种情况中,数据查询请求中的查询语句可以为select sum(count)from app_count where sex=“male”,这时,聚合项可以为“count”,谓词项包括“count”和“sex”,那么,可以从第一组物化视图中,筛选出存在与“count”对应的,为求和类型的指标列的物化视图,以得到由筛选出的物化视图构成的第二组物化视图。
需要指出的是,由于数据查询请求为聚合查询请求,这种情况可以描述为:聚合查询的是sum,且sum的是相应物化视图的指标列。
需要说明的是,如果数据查询请求中的查询语句为select sum(count)from app_count where sex=“male”,第一组物化视图由表1至表3中示意的三个物化视图构成,则第二组物化视图可以由表1至表3中示意的三个物化视图构成。
步骤204,从第二组物化视图中,筛选第一物化视图,并在第一物化视图中进行数据查询。
可选地,第一物化视图可以为第二组物化视图中,能够保证最快返回数据查询请求的所请求数据的物化视图。
在步骤204中,在确定出第一物化视图之后,可以在第一物化视图中进行二分查找,以便于获得所请求数据,之后,可以将所请求数据返回给用户,例如,可以在用户使用的终端界面上展示所请求数据。
需要指出的是,由针对步骤203描述的四种情况可知,基于数据查询请求的查询类型,能够筛选出由满足要求的物化视图构成的第二组物化视图,第二组物化视图中的每个物化视图均能够保证进行数据查询请求的所请求数据的查询时,查询结果的准确性。具体地,假设基础物化视图如下面的表5所示,在表1中,“id”表示身份识别号,“sex”表示性别,“day”表示每次平均出差天数,“count”表示出差次数。
id sex day count
1 female 1 16
2 male 2 3
3 male 2 6
4 male 4 7
表5
在表5的基础上,可以生成多个聚合物化视图,多个聚合物化视图中可以包括下面的表6示意的物化视图。
sex day count
female 1 16
male 2 9
male 4 7
表6
假设接收到对基础物化视图的数据查询请求,且数据查询请求携带的查询语句为select sum(day)from app_count where sex=“male”,容易看出,查询类型为和值查询类型,聚合项为“day”,这时,应该根据上述四种情况中的最后一种情况,确定第二组物化视图,由于“day”所在的列并不是表6示意的物化视图的指标列,第二组物化视图中不会存在表6示意的物化视图,后续筛选得到的第一物化视图不会是表6示意的物化视图。
如果第一物化视图为表6示意的物化视图,且在表6中进行数据查询,则查询结果为1+2+4=7,但实际上,查询结果应当为1+2+2+4=9。由于本发明实施例中已经通过数据查询请求的查询类型与第二组物化视图的匹配,规避了表6示意的物化视图作为第一物化视图的可能性,从而能够较好地保证后续查询结果的准确性。
假设接收到对基础物化视图的数据查询请求,且数据查询请求携带的查询语句为select distinct(count)from app_count where sex=“male”,容易看出,查询类型为互异值查询类型,聚合项为“count”,这时,应该根据上述四种情况中的第三种情况,确定第二组物化视图,由于“count”所在的列并不是表6示意的物化视图的维度列,第二组物化视图中不会存在表6示意的物化视图,后续筛选得到的第一物化视图不会是表6示意的物化视图。
如果第一物化视图为表6示意的物化视图,且在表6中进行数据查询,则查询结果为9和7,但实际上,查询结果应当为3、6和7。由于本发明实施例中已经通过数据查询请求的查询类型与第二组物化视图的匹配,规避了表6示意的物化视图作为第一物化视图的可能性,从而能够较好地保证后续查询结果的准确性。
本发明实施例中,在接收到对基础物化视图的数据查询请求的情况下,可以不直接在基础物化视图中进行数据查询,而是从基础物化视图,以及根据基础物化视图预先创建的多个聚合物化视图中,先筛选第一组物化视图,然后从第二组物化视图中,筛选与数据查询请求的查询类型匹配的第二组物化视图,最后从第二组物化视图中,筛选第一物化视图,并在第一物化视图中进行数据查询,从而得到并输出相应的数据。也就是说,针对基础物化视图的数据查询请求,既可能在基础物化视图中进行数据查询,也有可能在基于基础物化视图创建的聚合物化视图中进行数据查询,那么,当同时存在多个并发发起的,对基础物化视图的数据查询请求时,至少部分查询可以利用经数据聚合处理得到的聚合物化视图实现,而无需利用基础物化视图实现所有查询,并且,通过数据查询请求的查询类型与第二组物化视图的匹配,能够较好地保证后续查询结果的准确性。因此,与现有技术相比,本发明实施例不仅能够减小查询压力,缩短查询时间,从而提高查询效率,还能够保证查询结果的准确性。
参见图3,图中示出了本发明实施例提供的数据查询方法的流程图之三。如图3所示,该方法包括如下步骤:
步骤301,对基础物化视图进行数据聚合处理,以创建多个聚合物化视图。
步骤302,在接收到对基础物化视图的数据查询请求的情况下,从基础物化视图和多个聚合物化视图中,筛选第一组物化视图;其中,数据查询请求为聚合查询请求,第一组物化视图中的每个物化视图均包括数据查询请求中的每一项对应的列。
步骤303,从第一组物化视图中,筛选与数据查询请求的查询类型匹配的第二组物化视图。
这里,步骤301至步骤303的具体实施过程参照对步骤201至步骤203的说明即可,在此不再赘述。
步骤304,从第二组物化视图中,筛选第三组物化视图;其中,第三组物化视图中的物化视图的索引命中谓词组,且与谓词组的匹配度最高,谓词组中包括数据查询请求中的每个谓词项。
需要说明的是,对于任一物化视图,根据其维度列的排序,可以创建索引,基础物化视图和每个聚合物化视图都可以具有对应的索引。
在步骤304中,可以先筛选出数据查询请求携带的查询语句中,由and连接的所有谓词项,这些谓词项可以组成谓词组,之后,可以将谓词组与第二组物化视图中的每个物化视图的索引进行比对,以从第二组物化视图中,筛选出索引能够命中谓词组的各物化视图,并从确定出的物化视图中,选择与谓词组的匹配度最高的物化视图,以得到由选择出的物化视图组成的第三组物化视图。
在一个例子中,假设基础物化视图包括如下列:user_id、device_id、birthday、time、click,基础物化视图可以表示为user_id(int)device_id(int)birthday(int)time(date)click(int,sum);其中,int可以理解为占用8个字节,date可以理解为占用8个字节,click所在的列为指标列,且该指标列的运算类型为求和类型,其余列均为维度列。假设在维度列上均有索引,则基础物化视图的索引可以表示为:user_id device_id birthdaytime。
假设根据基础物化视图创建了三张聚合物化视图,这三张聚合物化视图可以依次表示为:user_id(int)birthday(int)time(date)click(int,sum)、device_id(int)user_id(int)birthday(int)click(int,sum)、birthday(int)time(date)device_id(int)click(int,sum)。这里,user_id(int)birthday(int)time(date)click(int,sum)的索引可以表示为user_id birthday time;device_id(int)user_id(int)birthday(int)click(int,sum)的索引可以表示为device_id user_id birthday;birthday(int)time(date)device_id(int)click(int,sum)的索引可以表示为birthday time device_id。
在接收到对基础物化视图的数据查询请求的情况下,假设查询语句为select*from where user_id=1and device_id=2and birthday=201904111,容易看出,这个查询中and连接的谓词项为user_id、device_id、birthday,则谓词组包括user_id、device_id、birthday。
假设第二组物化视图中同时包括基础物化视图和三个聚合物化视图,接下来,可以将谓词组分别与基础物化视图和每一聚合物化视图的索引分别进行比对。由于谓词组包括user_id、device_id、birthday,第二组物化视图中的各物化视图均能够命中谓词组,并且,索引为user_id device_id birthday time的基础物化视图与谓词组的匹配度可以表示为3*8=24,索引为user_id birthday time的聚合物化视图与谓词组的匹配度可以表示为2*8=16,索引为device_id user_id birthday的聚合物化视图与谓词组的匹配度可以表示为3*8=24,索引为birthday time device_id的聚合物化视图的匹配度可以表示为1*8=8。容易看出,索引为user_id device_id birthday time的基础物化视图,以及索引为device_id user_id birthday的聚合物化视图与谓词组的匹配度最高,因此,可以得到由这两个物化视图构成的第三组物化视图。
在另一个例子中,假设第二组物化视图中包括上面的表1至表3示意的物化视图,在查询请求中的查询语句为select sum(count)from app_count where sex=“male”的情况下,谓词组包括sex,由于只有表3示意的物化视图的第一列与“sex”对应,那么,第二组物化视图中,只有表3示意的物化视图能够命中谓词组,因此,第三组物化视图可以仅由表3示意的物化视图构成。
步骤305,根据第三组物化视图,确定第一物化视图,并在第一物化视图中进行数据查询。
在一种具体实现形式中,步骤305,包括:
在第三组物化视图中的物化视图的数量为至少两个的情况下,从第三组物化视图中,选择数据量最小的物化视图;
将所选择的物化视图确定为第一物化视图。
这里,在确定出第三组物化视图后,可以判断第三组物化视图中的物化视图的数量。在确定出的数量为一个的情况下,可以直接将第三组物化视图中的这一个物化视图作为第一物化视图;在确定出的数量为两个或者两个以上的情况下,可以将第三组物化视图中的各物化视图的数据量进行比较,以确定出数据量最小的物化视图,并将该物化视图作为第一物化视图。
这种实现形式中,第一物化视图可以为第三组物化视图中,数据量最小的物化视图,这样,在第一物化视图中进行数据查询时,查询速度能够得到非常有效地保证。
当然,步骤305的具体实现形式并不局限于此,例如,在第三组物化视图中的物化视图的数量为至少两个的情况下,可以直接从第三组物化视图中任选一物化视图作为第一物化视图,这也是可行的。
本发明实施例中,在接收到对基础物化视图的数据查询请求的情况下,可以不直接在基础物化视图中进行数据查询,而是从基础物化视图,以及根据基础物化视图预先创建的多个聚合物化视图中,先筛选第一组物化视图,然后从第二组物化视图中,筛选与数据查询请求的查询类型匹配的第二组物化视图,之后,可以从第二组物化视图中,筛选第三组物化视图,最后,可以根据第三组物化视图,确定第一物化视图,并在第一物化视图中进行数据查询,从而得到并输出相应的数据。也就是说,针对基础物化视图的数据查询请求,既可能在基础物化视图中进行数据查询,也有可能在基于基础物化视图创建的聚合物化视图中进行数据查询,那么,当同时存在多个并发发起的,对基础物化视图的数据查询请求时,至少部分查询可以利用经数据聚合处理得到的聚合物化视图实现,而无需利用基础物化视图实现所有查询,并且,通过数据查询请求的查询类型与第二组物化视图的匹配,能够较好地保证后续查询结果的准确性。此外,通过判定各物化视图的索引是否命中谓词组,以及确定物化视图与谓词组的匹配度,能够使用匹配度最高的物化视图进行数据查询,这样能够利用物化视图与索引两者的优势,从而较好地保证查询效率。因此,与现有技术相比,本发明实施例不仅能够减小查询压力,缩短查询时间,提高查询效率,还能够保证查询结果的准确性,也就是说,本发明实施例能够有效地保证进行数据查询时的查询性能。
下面对本发明实施例提供的数据查询装置进行说明。
参见图4,图中示出了本发明实施例提供的数据查询装置400的结构框图。如图4所示,数据查询装置400包括:
创建模块401,用于对基础物化视图进行数据聚合处理,以创建多个聚合物化视图;
处理模块402,用于在接收到对基础物化视图的数据查询请求的情况下,从基础物化视图和多个聚合物化视图中,确定支持数据查询请求的第一物化视图,并在第一物化视图中进行数据查询。
可选地,数据查询请求为聚合查询请求;
处理模块402,包括:
第一筛选子模块,用于从基础物化视图和多个聚合物化视图中,筛选第一组物化视图;其中,第一组物化视图中的每个物化视图均包括数据查询请求中的每一项对应的列;
第二筛选子模块,用于从第一组物化视图中,筛选与数据查询请求的查询类型匹配的第二组物化视图;
第三筛选子模块,用于从第二组物化视图中,筛选第一物化视图。
可选地,查询类型为最大值查询类型,则:
数据查询请求的聚合项与第二物化视图的维度列对应;或者,数据查询请求的聚合项与第二物化视图的指标列对应,且指标列的运算类型为求最大值类型;
其中,第二物化视图为第二组物化视图中的任意物化视图。
可选地,查询类型为最小值查询类型,则:
数据查询请求的聚合项与第二物化视图的维度列对应;或者,数据查询请求的聚合项与第二物化视图的指标列对应,且指标列的运算类型为求最小值类型;
其中,第二物化视图为第二组物化视图中的任意物化视图。
可选地,查询类型为互异值查询类型或者互异值数量查询类型,则:
数据查询请求的聚合项与第二物化视图的维度列对应;
其中,第二物化视图为第二组物化视图中的任意物化视图。
可选地,查询类型为和值查询类型,则:
数据查询请求的聚合项与第二物化视图的指标列对应,且指标列的运算类型为求和类型;
其中,第二物化视图为第二组物化视图中的任意物化视图。
可选地,第三筛选子模块,包括:
筛选单元,用于从第二组物化视图中,筛选第三组物化视图;其中,第三组物化视图中的物化视图的索引命中谓词组,且与谓词组的匹配度最高,谓词组中包括数据查询请求中的每个谓词项;
确定单元,用于根据第三组物化视图,确定第一物化视图。
可选地,确定单元,包括:
选择子单元,用于在第三组物化视图中的物化视图的数量为至少两个的情况下,从第三组物化视图中,选择数据量最小的物化视图;
确定子单元,用于将所选择的物化视图确定为第一物化视图。
本发明实施例中,在接收到对基础物化视图的数据查询请求的情况下,可以不直接在基础物化视图中进行数据查询,而是从基础物化视图,以及根据基础物化视图预先创建的多个聚合物化视图中,确定支持数据查询请求的第一物化视图,并在第一物化视图中进行数据查询,从而得到并输出相应的数据。也就是说,针对基础物化视图的数据查询请求,既可能在基础物化视图中进行数据查询,也有可能在基于基础物化视图创建的聚合物化视图中进行数据查询,那么,当同时存在多个并发发起的,对基础物化视图的数据查询请求时,至少部分查询可以利用经数据聚合处理得到的聚合物化视图实现,而无需利用基础物化视图实现所有查询,因此,与现有技术相比,本发明实施例能够减小查询压力,缩短查询时间,从而提高查询效率。
下面对本发明实施例提供的电子设备进行说明。
参见图5,图中示出了本发明实施例提供的电子设备500的结构示意图。如图5所示,电子设备500包括:处理器501、存储器504、用户接口504和总线接口。
处理器501,用于读取存储器504中的程序,执行下列过程:
对基础物化视图进行数据聚合处理,以创建多个聚合物化视图;
在接收到对所述基础物化视图的数据查询请求的情况下,从所述基础物化视图和所述多个聚合物化视图中,确定支持所述数据查询请求的第一物化视图,并在所述第一物化视图中进行数据查询。
在图5中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器501代表的一个或多个处理器和存储器504代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。针对不同的用户设备,用户接口504还可以是能够外接内接需要设备的接口,连接的设备包括但不限于小键盘、显示器、扬声器、麦克风、操纵杆等。
处理器501负责管理总线架构和通常的处理,存储器504可以存储处理器501在执行操作时所使用的数据。
可选地,数据查询请求为聚合查询请求;
处理器501,具体用于:
从基础物化视图和多个聚合物化视图中,筛选第一组物化视图;其中,第一组物化视图中的每个物化视图均包括数据查询请求中的每一项对应的列;
从第一组物化视图中,筛选与数据查询请求的查询类型匹配的第二组物化视图;
从第二组物化视图中,筛选第一物化视图。
可选地,查询类型为最大值查询类型,则:
数据查询请求的聚合项与第二物化视图的维度列对应;或者,数据查询请求的聚合项与第二物化视图的指标列对应,且指标列的运算类型为求最大值类型;
其中,第二物化视图为第二组物化视图中的任意物化视图。
可选地,查询类型为最小值查询类型,则:
数据查询请求的聚合项与第二物化视图的维度列对应;或者,数据查询请求的聚合项与第二物化视图的指标列对应,且指标列的运算类型为求最小值类型;
其中,第二物化视图为第二组物化视图中的任意物化视图。
可选地,查询类型为互异值查询类型或者互异值数量查询类型,则:
数据查询请求的聚合项与第二物化视图的维度列对应;
其中,第二物化视图为第二组物化视图中的任意物化视图。
可选地,查询类型为和值查询类型,则:
数据查询请求的聚合项与第二物化视图的指标列对应,且指标列的运算类型为求和类型;
其中,第二物化视图为第二组物化视图中的任意物化视图。
可选地,处理器501,具体用于:
从第二组物化视图中,筛选第三组物化视图;其中,第三组物化视图中的物化视图的索引命中谓词组,且与谓词组的匹配度最高,谓词组中包括数据查询请求中的每个谓词项;
根据第三组物化视图,确定第一物化视图。
可选地,处理器501,具体用于:
在第三组物化视图中的物化视图的数量为至少两个的情况下,从第三组物化视图中,选择数据量最小的物化视图;
将所选择的物化视图确定为第一物化视图。
本发明实施例中,在接收到对基础物化视图的数据查询请求的情况下,可以不直接在基础物化视图中进行数据查询,而是从基础物化视图,以及根据基础物化视图预先创建的多个聚合物化视图中,确定支持数据查询请求的第一物化视图,并在第一物化视图中进行数据查询,从而得到并输出相应的数据。也就是说,针对基础物化视图的数据查询请求,既可能在基础物化视图中进行数据查询,也有可能在基于基础物化视图创建的聚合物化视图中进行数据查询,那么,当同时存在多个并发发起的,对基础物化视图的数据查询请求时,至少部分查询可以利用经数据聚合处理得到的聚合物化视图实现,而无需利用基础物化视图实现所有查询,因此,与现有技术相比,本发明实施例能够减小查询压力,缩短查询时间,从而提高查询效率。
优选地,本发明实施例还提供一种电子设备,包括处理器501,存储器504,存储在存储器504上并可在所述处理器501上运行的计算机程序,该计算机程序被处理器501执行时实现上述数据查询方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述数据查询方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。

Claims (16)

1.一种数据查询方法,其特征在于,所述方法包括:
对基础物化视图进行数据聚合处理,以创建多个聚合物化视图;
在接收到对所述基础物化视图的数据查询请求的情况下,从所述基础物化视图和所述多个聚合物化视图中,确定支持所述数据查询请求的第一物化视图,并在所述第一物化视图中进行数据查询;
所述数据查询请求为聚合查询请求;
所述从所述基础物化视图和所述多个聚合物化视图中,确定支持所述数据查询请求的第一物化视图,包括:
从所述基础物化视图和所述多个聚合物化视图中,筛选第一组物化视图;其中,所述第一组物化视图中的每个物化视图均包括所述数据查询请求中的每一项对应的列;
从所述第一组物化视图中,筛选与所述数据查询请求的查询类型匹配的第二组物化视图;
从所述第二组物化视图中,筛选第一物化视图。
2.根据权利要求1所述的方法,其特征在于,所述查询类型为最大值查询类型,则:
所述数据查询请求的聚合项与第二物化视图的维度列对应;或者,所述数据查询请求的聚合项与第二物化视图的指标列对应,且所述指标列的运算类型为求最大值类型;
其中,所述第二物化视图为所述第二组物化视图中的任意物化视图。
3.根据权利要求1所述的方法,其特征在于,所述查询类型为最小值查询类型,则:
所述数据查询请求的聚合项与第二物化视图的维度列对应;或者,所述数据查询请求的聚合项与第二物化视图的指标列对应,且所述指标列的运算类型为求最小值类型;
其中,所述第二物化视图为所述第二组物化视图中的任意物化视图。
4.根据权利要求1所述的方法,其特征在于,所述查询类型为互异值查询类型或者互异值数量查询类型,则:
所述数据查询请求的聚合项与第二物化视图的维度列对应;
其中,所述第二物化视图为所述第二组物化视图中的任意物化视图。
5.根据权利要求1所述的方法,其特征在于,所述查询类型为和值查询类型,则:
所述数据查询请求的聚合项与第二物化视图的指标列对应,且所述指标列的运算类型为求和类型;
其中,所述第二物化视图为所述第二组物化视图中的任意物化视图。
6.根据权利要求1所述的方法,其特征在于,所述从所述第二组物化视图中,筛选第一物化视图,包括:
从所述第二组物化视图中,筛选第三组物化视图;其中,所述第三组物化视图中的物化视图的索引命中谓词组,且与所述谓词组的匹配度最高,所述谓词组中包括所述数据查询请求中的每个谓词项;
根据所述第三组物化视图,确定第一物化视图。
7.根据权利要求6所述的方法,其特征在于,所述根据所述第三组物化视图,确定第一物化视图,包括:
在所述第三组物化视图中的物化视图的数量为至少两个的情况下,从所述第三组物化视图中,选择数据量最小的物化视图;
将所选择的物化视图确定为第一物化视图。
8.一种数据查询装置,其特征在于,所述装置包括:
创建模块,用于对基础物化视图进行数据聚合处理,以创建多个聚合物化视图;
处理模块,用于在接收到对所述基础物化视图的数据查询请求的情况下,从所述基础物化视图和所述多个聚合物化视图中,确定支持所述数据查询请求的第一物化视图,并在所述第一物化视图中进行数据查询;
所述数据查询请求为聚合查询请求;
所述处理模块,包括:
第一筛选子模块,用于从所述基础物化视图和所述多个聚合物化视图中,筛选第一组物化视图;其中,所述第一组物化视图中的每个物化视图均包括所述数据查询请求中的每一项对应的列;
第二筛选子模块,用于从所述第一组物化视图中,筛选与所述数据查询请求的查询类型匹配的第二组物化视图;
第三筛选子模块,用于从所述第二组物化视图中,筛选第一物化视图。
9.根据权利要求8所述的装置,其特征在于,所述查询类型为最大值查询类型,则:
所述数据查询请求的聚合项与第二物化视图的维度列对应;或者,所述数据查询请求的聚合项与第二物化视图的指标列对应,且所述指标列的运算类型为求最大值类型;
其中,所述第二物化视图为所述第二组物化视图中的任意物化视图。
10.根据权利要求8所述的装置,其特征在于,所述查询类型为最小值查询类型,则:
所述数据查询请求的聚合项与第二物化视图的维度列对应;或者,所述数据查询请求的聚合项与第二物化视图的指标列对应,且所述指标列的运算类型为求最小值类型;
其中,所述第二物化视图为所述第二组物化视图中的任意物化视图。
11.根据权利要求8所述的装置,其特征在于,所述查询类型为互异值查询类型或者互异值数量查询类型,则:
所述数据查询请求的聚合项与第二物化视图的维度列对应;
其中,所述第二物化视图为所述第二组物化视图中的任意物化视图。
12.根据权利要求8所述的装置,其特征在于,所述查询类型为和值查询类型,则:
所述数据查询请求的聚合项与第二物化视图的指标列对应,且所述指标列的运算类型为求和类型;
其中,所述第二物化视图为所述第二组物化视图中的任意物化视图。
13.根据权利要求8所述的装置,其特征在于,所述第三筛选子模块,包括:
筛选单元,用于从所述第二组物化视图中,筛选第三组物化视图;其中,所述第三组物化视图中的物化视图的索引命中谓词组,且与所述谓词组的匹配度最高,所述谓词组中包括所述数据查询请求中的每个谓词项;
确定单元,用于根据所述第三组物化视图,确定第一物化视图。
14.根据权利要求13所述的装置,其特征在于,所述确定单元,包括:
选择子单元,用于在所述第三组物化视图中的物化视图的数量为至少两个的情况下,从所述第三组物化视图中,选择数据量最小的物化视图;
确定子单元,用于将所选择的物化视图确定为第一物化视图。
15.一种电子设备,其特征在于,包括处理器,存储器,存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至7中任一项所述的数据查询方法的步骤。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的数据查询方法的步骤。
CN201910496470.4A 2019-06-10 2019-06-10 数据查询方法、装置、电子设备及计算机可读存储介质 Active CN112069164B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910496470.4A CN112069164B (zh) 2019-06-10 2019-06-10 数据查询方法、装置、电子设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910496470.4A CN112069164B (zh) 2019-06-10 2019-06-10 数据查询方法、装置、电子设备及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN112069164A CN112069164A (zh) 2020-12-11
CN112069164B true CN112069164B (zh) 2023-08-01

Family

ID=73658254

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910496470.4A Active CN112069164B (zh) 2019-06-10 2019-06-10 数据查询方法、装置、电子设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN112069164B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113014555B (zh) * 2021-02-10 2022-10-14 恒安嘉新(北京)科技股份公司 一种攻击事件的确定方法、装置、电子设备和存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101385029A (zh) * 2006-02-15 2009-03-11 微软公司 物化外联接视图的维护
CN101477524A (zh) * 2008-12-11 2009-07-08 金蝶软件(中国)有限公司 基于物化视图的系统性能优化方法及系统
US7822712B1 (en) * 2007-10-18 2010-10-26 Google Inc. Incremental data warehouse updating
CN106202384A (zh) * 2016-07-08 2016-12-07 清华大学 一种支持时序数据聚合函数的索引方法
CN107273506A (zh) * 2017-06-19 2017-10-20 西安电子科技大学 一种数据库多表联合查询的方法
CN107480260A (zh) * 2017-08-16 2017-12-15 北京奇虎科技有限公司 大数据实时分析方法、装置、计算设备及计算机存储介质
CN108182224A (zh) * 2017-12-26 2018-06-19 江苏润和软件股份有限公司 一种关系型到NoSQL的数据适配方法
CN108932286A (zh) * 2018-05-23 2018-12-04 阿里巴巴集团控股有限公司 一种数据存储方法、数据查询方法及装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101385029A (zh) * 2006-02-15 2009-03-11 微软公司 物化外联接视图的维护
US7822712B1 (en) * 2007-10-18 2010-10-26 Google Inc. Incremental data warehouse updating
CN101477524A (zh) * 2008-12-11 2009-07-08 金蝶软件(中国)有限公司 基于物化视图的系统性能优化方法及系统
CN106202384A (zh) * 2016-07-08 2016-12-07 清华大学 一种支持时序数据聚合函数的索引方法
CN107273506A (zh) * 2017-06-19 2017-10-20 西安电子科技大学 一种数据库多表联合查询的方法
CN107480260A (zh) * 2017-08-16 2017-12-15 北京奇虎科技有限公司 大数据实时分析方法、装置、计算设备及计算机存储介质
CN108182224A (zh) * 2017-12-26 2018-06-19 江苏润和软件股份有限公司 一种关系型到NoSQL的数据适配方法
CN108932286A (zh) * 2018-05-23 2018-12-04 阿里巴巴集团控股有限公司 一种数据存储方法、数据查询方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
含聚集物化视图的增量维护方法;孟勃荣;高鹏;顾云苏;何清法;;计算机工程与设计(第23期);全文 *
物化视图在查询分析中的应用;王时绘;陈俊;;科技广场(第03期);全文 *

Also Published As

Publication number Publication date
CN112069164A (zh) 2020-12-11

Similar Documents

Publication Publication Date Title
US8082270B2 (en) Fuzzy search using progressive relaxation of search terms
US9043310B2 (en) Accessing a dimensional data model when processing a query
US9934293B2 (en) Generating search results
US9721015B2 (en) Providing a query results page
US7953727B2 (en) Handling requests for data stored in database tables
US20060080315A1 (en) Statistical natural language processing algorithm for use with massively parallel relational database management system
CN108280234B (zh) 数据查询方法及装置
CN111680047B (zh) 药品搜索提示词的输出方法及系统
CN112559895B (zh) 一种数据处理方法、装置、电子设备及存储介质
US11941061B1 (en) Tokenized cache
CN110569289A (zh) 基于大数据的列数据处理方法、设备及介质
CN111435376A (zh) 信息处理方法及系统、计算机系统和计算机可读存储介质
CN107735781B (zh) 存储查询结果的方法和装置、计算设备
US11630829B1 (en) Augmenting search results based on relevancy and utility
CN112069164B (zh) 数据查询方法、装置、电子设备及计算机可读存储介质
US20200192924A1 (en) Natural language query system
US20090094215A1 (en) Extended Handling Of Ambiguous Joins
US20210232767A1 (en) Systems and methods for term prevalance-volume based relevance
US20230153286A1 (en) Method and system for hybrid query based on cloud analysis scene, and storage medium
JP7213890B2 (ja) 高速化された大規模な類似度計算
US9213639B2 (en) Division of numerical values based on summations and memory mapping in computing systems
RU2755568C1 (ru) Способ параллельного выполнения операции JOIN при обработке больших структурированных высокоактивных данных
US20160371331A1 (en) Computer-implemented method of performing a search using signatures
CN110287284B (zh) 语义匹配方法、装置及设备
CN108304499B (zh) 一种sql连接操作中谓词下推的方法、终端及介质

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