CN112286953B - 多维数据查询方法、装置和电子设备 - Google Patents
多维数据查询方法、装置和电子设备 Download PDFInfo
- Publication number
- CN112286953B CN112286953B CN202011022583.XA CN202011022583A CN112286953B CN 112286953 B CN112286953 B CN 112286953B CN 202011022583 A CN202011022583 A CN 202011022583A CN 112286953 B CN112286953 B CN 112286953B
- Authority
- CN
- China
- Prior art keywords
- target
- materialized view
- determining
- aggregation group
- query
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
- G06F16/2448—Query languages for particular applications; for extensibility, e.g. user defined types
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提出一种多维数据查询方法、装置和电子设备,涉及数据业务技术领域,其中,方法包括:获取多个源数据表和第一历史查询语句,根据多个源数据表中的元数据,生成数据表关联模型,根据第一历史查询语句,从数据表关联模型中确定目标维度和目标度量,根据目标维度,确定至少一个第一聚合组,根据至少一个第一聚合组和目标度量,确定物化视图集,并将物化视图集存储至数据库中,根据物化视图集,响应用户的多维数据查询请求,实现了基于元数据和历史查询语句,自动构建物化视图集,并在构建的过程中对物化视图集进行优化,提高了构建的效率,解决现有技术中需要人工构建和物化视图集,导致效率低下的技术问题。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及数据业务技术领域,具体涉及一种多维数据查询方法、装置和电子设备。
背景技术
在如今的多维大数据分析领域中,多维联机分析处理技术(MultidimensionalOn-Line Analytical Processing,MOLAP)占据着非常重要的地位,它通过基于预计算的数据查询技术极大地缩短了多维分析的响应时间,降低了数据规模对于查询效率的影响。
然而,MOLAP的应用需要依赖于物化视图集,即数据立方体(Cube)的建立和优化。数据立方体是一系列预计算结果的集合,如果查询命中了Cube则可以大幅提升查询效率,Cube的好坏,例如,契合数据分析需求的程度、存储体积等往往决定了系统的性能。传统的多维分析系统中常常采用全量构建Cube,并由数据专家手动对Cube进行剪枝优化。然而,这种方法仅适用于数据分析需求固定的场景,且对数据专家过度依赖、耗费人力。
发明内容
本申请旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本申请的第一个目的在于提出一种多维数据查询方法,基于元数据和历史查询语句,自动构建物化视图集,并在构建的过程中对物化视图集进行优化,提高了构建的效率。
本申请的第二个目的在于提出一种多维数据查询装置。
本申请的第三个目的在于提出一种电子设备。
本申请的第四个目的在于提出一种非临时性计算机可读存储介质。
为达上述目的,本申请第一方面实施例提出了一种多维数据查询方法,包括:
获取多个源数据表和第一历史查询语句;
根据所述多个源数据表中的元数据,生成数据表关联模型;
根据所述第一历史查询语句,确定所述数据表关联模型的目标维度和目标度量;
根据所述目标维度,确定至少一个第一聚合组;
根据所述至少一个第一聚合组和目标度量,确定物化视图集,并将所述物化视图集存储至数据库中;
根据所述物化视图集,响应用户的多维数据查询请求。
为达上述目的,本申请第二方面实施例提出了一种多维数据查询装置,所述装置包括:
获取模块,用于获取多个源数据表和第一历史查询语句;
生成模块,用于根据所述多个源数据表中的元数据,生成数据表关联模型;
确定模块,用于根据所述第一历史查询语句,确定所述数据表关联模型中的目标维度和目标度量;
所述确定模块,还用于根据所述目标维度,确定至少一个第一聚合组;
确定存储模块,用于根据所述至少一个第一聚合组和目标度量,确定物化视图集,并将所述物化视图集存储至数据库中;
响应模块,用于根据所述物化视图集,响应用户的多维数据查询请求。
为达上述目的,本申请第三方面实施例提出了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现如第一方面所述的多维数据查询方法。
为了实现上述目的,本申请第四方面实施例提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如第一方面所述的多维数据查询方法。
本申请实施例所提供的技术方案可以包含如下的有益效果:
获取多个源数据表和获取历史查询语句,根据多个源数据表中的元数据,生成数据表关联模型,根据历史查询语句,从数据表关联模型中确定目标维度和目标度量,根据目标维度,确定至少一个第一聚合组,根据至少一个第一聚合组和目标度量,确定物化视图集,并将物化视图集存储至数据库中,根据物化视图集,响应用户的多维数据查询请求,实现了基于元数据和历史查询语句,自动构建物化视图集,并在构建的过程中对物化视图集进行优化,提高了构建的效率。
本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本申请实施例所提供的一种多维数据查询方法的流程示意图;
图2为本申请实施例提供的物化视图的优化过程示意图;
图3为本申请实施例提供的另一种多维数据查询方法的流程示意图;
图4本申请实施例提供的一种权重图的示意图;
图5为本申请实施例提供的又一种多维数据查询方法的流程示意图;
图6为本申请实施例提供的一种多维数据查询装置的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
下面参考附图描述本申请实施例的多维数据查询方法、装置和电子设备。
图1为本申请实施例所提供的一种多维数据查询方法的流程示意图。
如图1所示,该方法包括以下步骤:
步骤101,获取多个源数据表和第一历史查询语句。
本实施例中,多个源数据表中存储有元数据,元数据包括各源数据表的表名、字段名、关联字段、各维度的基数等。而由于物化视图集,也就是数据立方体Cube尚未建立,第一历史查询语句SQL则为下压查询引擎的查询记录,如Spark SQL、Presto等引擎的查询记录。
需要说明的是,本实施例中的第一历史查询语句为物化视图集构建之前的历史结构化查询语句,SQL语句。
步骤102,根据多个源数据表中的元数据,生成数据表关联模型。
其中,元数据是记录的用户进行多维数据分析时产生的数据,包含数据表之间的关联信息,存储在数据库中,用户需要生成数据表关联模型时,可以从数据库中读取。
本实施例中,数据表关联模型Model一种业务逻辑模型。根据元数据构建出基础的数据表关联模型(Model),它常表现为星型模型或雪花模型,包括事实表、维表、数据字段、维度、度量以及表之间的关联信息等,可用来表征多个源数据表之间的关联。
步骤103,根据第一历史查询语句,确定数据表关联模型的目标维度和目标度量。
本实施例中,数据表关联模型中包含的维度和度量较多,需要根据历史查询语句,从数据表关联模型中选择出用户真正关心的维度和度量,也就是目标维度和目标度量,进而可以缩小Cube所包含的物化视图集的规模。作为一种可能的实现方式,从数据库中读取第一历史查询语句,根据第一历史查询语句,解析出各查询语句包含的维度和度量,并按照维度和度量的查询频次、查询时间从数据表关联模型中选择出用户真正关心的目标维度和目标度量,确定了用户需要查询的范围,实现对数据表关联模型中的维度和度量的筛选,以将后续物化视图集的计算控制在合理的需求区间内。
其中,针对第一历史查询语句进行解析,以得到和数据表关联模型相关的模型参数,其中,模型参数包含事实表、维表、表间的关联关系,以及维度和度量等,在本申请的一种可能的实现方式中,首先对第一历史查询语句进行预处理。具体来说,由于物化视图集的特性,并不是所有的第一历史查询语句都可以用来作为构建物化视图集的语料,我们需要排除掉那些不适合构建Cube,也就是物化视图集的第一历史查询语句,具体地,根据第一历史查询语句对应的查询类型,去除不符合查询类型要求的历史查询语句,例如,去掉查询类型为明细查询、非联表查询、非聚合查询的第一历史查询语句。进而,去除度量来自维表的第一历史查询语句,以及去除第一历史查询语句中的冗余信息。
经过对第一历史查询语句集合的预处理,我们得到了适合构建物化视图集的第一历史查询语句集合,然而它仍然不能被用来进行构建。因为不同的SQL语句可能对应不同的业务模型,我们还需要以数据表关联模型为单位对SQL进行分组,以得到和数据表关联模型匹配的第一历史查询语句,进而,根据第一历史查询语句确定模型参数。
步骤104,根据目标维度,确定至少一个第一聚合组。
其中,第一聚合组,是存在语义关联的维度的集合。本实施例中,在确定目标维度之后,会根据不同维度进行组合以生成对应的多个物化视图,构成物化视图集,而若以所有的维度构建物化视图集,例如,对于一个包含n个维度的数据模型来说,如果根据维度进行全量构建物化视图集,则会产生2n个物化视图集,这会给系统的存储和后续查询带来极大的负担,因此,需要对生成的物化视图集数据进行优化,作为一种可能的实现方式,本实施例中根据确定的目标维度间的语义上的关联,将目标维度划分为至少一个第一聚合组。
需要说明的是,本申请实施例中通过聚合组,对物化视图集进行优化,而聚合组表征维度的语义关联程度,同一个聚合组内的维度关联性较高,实现了从数据语意的层面进行了深层次的优化,提高了优化的效果。
步骤105,根据至少一个第一聚合组和目标度量,确定物化视图集,并将物化视图集存储至数据库中。本实施例中,使用聚合组(Aggregation Group)作为物化视图集建立时的初次优化的工具,根据用户所关注的维度组合,可以划分出用户关注的组合大类,即聚合组,为了便于区分,本实施例中称为第一聚合组。首先以每个“第一聚合组”为起点,进行全量构建对应的物化视图,进而,将构建得到的物化视图采用取并集的方式,得到多个物化视图,从而,根据得到的所有的物化视图生成物化视图集。这种构建方式相比于现有技术中的根据维度进行全量构建的方式,很大程度上降低了物化视图集中包含的物化视图的总数,降低了占用的存储容量。
假设创建一个交易数据的物化视图集,它包含了以下一些维度:顾客标识buyer_id、交易日期cal_dt、付款的方式pay_type和买家所在的城市city。有时候,需要通过分组聚合city、cal_dt和pay_type来获知不同消费方式在不同城市的应用情况;有时候,需要通过聚合city、cal_dt和buyer_id,来查看顾客在不同城市的消费行为。
例如,图2所示,其中,pay_type、cal_dt、city、buyer_id是确定的目标维度,根据维度之间的关联关系确定两个第一聚合组,分别为pay_type、cal_dt、city和cal_dt、city、buyer_id,分别针对两个第一聚合组,分别生成对应的物化视图。如图2中所示,以每个“第一聚合组”为起点开始构建生成树,到Apex Cuboid(*)结束,这种构建方式一方面很大程度上的降低了物化视图,也就是维度组合的总数,从全量构建的24=16个减少为图2中的12个;另一方面,物化视图之间还有交叉,即图2中的“cal_dt、city”,“cal_dt”和“city”,这使得本次剪枝优化的规模控制在可接受的范围内。
进一步,根据剪枝优化后的维度组合,和上述确定的目标度量,构建得到剪枝优化后的数据立方体,即物化视图集,并将更新后的物化视图集存储至数据库中。
步骤106,根据物化视图集,响应用户的多维数据查询请求。
本实施例中,根据构建好的物化视图集,可以响应用户的从多个维度进行查询的数据查询请求,由于本申请中的物化视图集在自动构建时已经进行了初次的优化,针对用户请求命中率较高,提高了查询效率,满足了多维大数据的查询请求。
本申请实施例的多维数据查询方法中,获取多个源数据表和第一历史查询语句,根据多个源数据表中的元数据,生成数据表关联模型,根据第一历史查询语句,从数据表关联模型中确定目标维度和目标度量,根据目标维度,确定至少一个第一聚合组,根据至少一个第一聚合组和目标度量,确定物化视图集,并将物化视图集存储至数据库中,根据物化视图集,响应用户的多维数据查询请求,实现了基于历史查询语句,自动构建物化视图集,并在构建的过程中对物化视图集进行优化,提高了构建的效率。
上述实施例中实现了对物化视图集的自动构建,并在自动构建时进行了初次优化,而实际应用中,为了降低存储空间的占用,使得物化视图集更加满足用户的查询需求,可以对物化视图集的运行状态和下压查询的执行情况进行持续的监控,从而自主的学习用户的查询习惯,以更新物化视图集,以使得更新后的物化视图集更加符合查询需求,提高查询的效率和命中率。为此,本实施例提供了另一种多维数据查询方法的实现方式。图3为本申请实施例提供的另一种多维数据查询方法的流程示意图,如图3所示,步骤105之后,该方法包含以下骤:
步骤301,获取物化视图集运行过程中的第二历史查询语句。
本实施例中的第二历史查询语句为物化视图集构建完成之后,在物化视图集在运行过程中对应的历史查询语句。
步骤302,根据第二历史查询语句,生成权重图,权重图中包含各维度的节点,以及连接不同维度节点的边,其中,连接不同维度节点的边用于指示所连接的不同维度间存在关联关系。
本实施例中,在生成数据立方体涉及的物化视图集后,通过持续的监控和分析已有物化视图集的运行状态,获取物化视图集在运行过程中,查询引擎中的多个第二历史查询语句的执行情况,根据第二历史查询语句的执行情况,对数据立方体涉及的物化视图集进行重新优化选择,使得物化视图集在运行过程中自发的学习用户查询所涉及的维度间的关联情况,以更加符合查询需求,同时通过优化减少了物化视图集中的物化视图的数量,降低了存储空间的占用,提高了整体性能。
在本实施例的一种实现方式中,根据多个第二历史查询语句,生成权重图,权重图中包含各维度的节点,以及连接不同维度节点的边,其中,连接不同维度节点的边用于指示所连接的不同维度间存在关联关系。具体地,给定图G=(V,E),其中V为G中n个节点的集合,E为G中边的集合;A∈{0,1,...,m}n×n为图G的邻接对称矩阵。矩阵中的aij代表了节点vi与节点vj之间边的权重。
基于第二历史查询语句集合H为权重图的邻接对称矩阵A赋值,对于某条第二历史查询语句SQL:hp,其对应的边权wp视执行情况而定,若hp所对应的数据立方体已被物化,但查询任务没有命中,则wp=3;若正常命中wp=1;而对于时间距离远且查询次数少的维度组合,判定其为噪声,wp=0。故更新后的节点vi与节点vj之间边的权重aij‘=aij+wp,累计H即可生成对应的权重图,如图4所示,即为根据多个第二历史查询语句生成的权重图G的示意图,其中,节点A-H为维度,节点对应的维度通过边连接,节点间标识的数字,例如,节点A和B之间的数字3即为节点A对应的维度和节点B对应的维度之间的权重,也就是维度间的关联程度。
步骤303,根据权重图,确定目标聚合组集合。
其中,聚合组集合中包含重新划分得到的多个聚合组。
本实施例中,根据权重图,确定各维度通过边连接的相邻维度,根据各维度,和各维度通过边连接的相邻维度,以及权重阈值,生成平均边权重最大的多个第二聚合组,进而,根据多个第二聚合组,生成目标聚合组集合。
本申请的一个实施例中,将权重图的节点集合V划分成为若干个可能存在重叠的目标聚合组集合Ω=[α1,α2,...,αm]。划分的依据是根据聚合组平均权重E(αp)和权重阈值wt。其中,平均权重E(αp)为:组中各边权重加和除以边数,其计算公式为:
其中,节点vi与节点vj为聚合组αp中的节点,aij为两个节点之间的边权,n为αp中的节点数量。以图4所示的带权图为例,从节点A出发,依次计算与A邻接的节点,基于贪心思想选择平均边权最大的组合,计算过程如下表所示。
节点组合 | 计算公式及结果 |
A+B | 3/1=3 |
A+C | 3/1=3 |
A+D | 1/1=1 |
A+E | 2/1=2 |
A+F | 1/1=1 |
A+G | 0/1=0 |
A+H | 0/1=0 |
需要理解的是,A和G、H之间并没有关联,从而,权重的和则为零。
根据计算结果,例如,我们选择平均边权最大的A+B作为本次选择的结果。
下一步继续从聚合组AB出发,计算与AB邻接的节点的平均边权,得到最大边权的组合,例如为AB+C:(3+3+1)/3=2.33,多次重复此步骤,直至结束退出。其中,结束可通过以下两种可能的实现方式确定:
作为一种可能的实现方式,针对每一个聚合组,在当前确定的聚合组中,加入新的节点后,聚合组平均边权重降低,由E(αp)变为E'(αp),而E'(αp)小于权重阈值wt,即E'(αp)<wt,说明此时新的节点对应的维度与聚合组中的各成员对应的维度之间的关联度较低,不宜加入本聚合组,则该聚合组确定,退出进入下一个聚合组的确定。
需要理解的是,存在重叠的聚合组,是指聚合组之间可能存在重叠的维度。
进而,根据确定的各个聚合组,生成新的聚合组集合,作为目标聚合组集合。
步骤304,根据目标聚合组集合,生成更新的物化视图集,并将更新的物化视图集存储至数据库中。
本实施例中,根据重新确定的目标聚合组集合,更新物化视图集,实现了基于维度间的关联关系,实现对物化视图集的优化,其中优化包含物化视图的总量的优化和物化视图集中维度间关联度的优化,使得物化视图集更加满足查询需求,提高了查询的命中率,同时,降低了物化视图集的存储空间的占用。
本申请实施例的多维数据查询方法中,在生成物化视图集后,根据物化视图集的运行情况和历史查询语句的执行情况,确定出涉及维度间关联关系的权重图,基于权重图重新划分得到多个聚合组,根据多个聚合组,生成新的物化视图集,使得新生成的物化视图集中的物化视图数据量较少,同时,新生成的物化视图集充分考虑了不同维度间的关联关系,更加符合真实查询需求,提高了整体性能。
基于上述实施例,生成的目标聚合组集合并不一定是最佳的目标聚合组集合,为了提高目标聚合组集合确定的准确性,本实施例中通过目标函数来评价聚合组集合的准确性。
图5为本申请实施例提供的又一种多维数据查询方法的流程示意图,如图5所示,该方法包含以下步骤:
步骤501,根据多个第二聚合组,确定目标函数的取值。
在本申请实施例的一种可能的实现方式中,根据多个第二聚合组,生成第二聚合组集合,根据第二聚合组集合,确定第二聚合组集合对应的膨胀率和平均查询时延,获取第二查询语句的平均查询时延和惩罚函数,进而,根据膨胀率、平均查询时延、第二查询语句的平均查询时延和惩罚函数,确定第二聚合组集合的目标函数。
其中,平均查询时延(Average Query Latency)则是同模型下所有历史查询语句SQL所需查询时延的平均值,代表物化后的数据立方体,也就是物化视图集所能达到的查询性能;而膨胀率(Expansion Rate)则是物化立方体的大小与原始数据大小的比值,表示了预计算的复杂程度(即剪枝的成效),平均查询时延越低、膨胀率越低,则对物化视图集进行优化的效果越好。本申请中目标函数F(Ω)的计算公式如下:
其中,θ为固定值,是下压引擎(实时计算)的平均查询时延,Aql(Ω)为根据当前的聚合组集合即第二聚合组集合估算出的平均查询时延,Exp(Ω)为根据第二聚合组集合估算出的膨胀率,则为惩罚函数。本申请中需要保证查询性能,即Cube查询对比下压查询引擎提升的时间倍数θ/Aql(Ω),所以本申请中对与膨胀率Exp(Ω)引入了惩罚函数,使其在膨胀率高于一定值以后成为整体的减分项。惩罚函数如下:
步骤502,根据目标函数的取值,调整权重阈值。
步骤503,每当权重阈值调整一次,则执行根据调整后的权重阈值,各维度,和各维度通过边连接的相邻维度,生成平均边权重最大的多个第二聚合组,根据多个第二聚合组,确定目标函数的取值的步骤,直至目标函数的取值收敛,则将最后一次生成的多个第二聚合组作为目标聚合组。
本申请中,权重阈值用于判断每个聚合组划分过程中是否满足要求,也就是说在生成聚合组的过程中,当有新的维度的节点准备加入该聚合组时,则判断该新的维度节点加入该聚合组后得到的的平均权重是否小于权重阈值,以确定维度组合是否可以加入该聚合组,从而指示确定该聚合组的过程是否结束,避免了将与聚合组中的各个维度节点关联度较低的维度节点加入对应的聚合组,提高了聚合组中维度间的关联关系,同时,也可以使得划分得到的各个聚合组更加满足用户查询的需求。
从而,本实施例中是根据上述步骤中生成的目标函数,不断的调整权重阈值,并根据调整后的权重值重新生成第二聚合组,直至目标函数收敛,例如,目标函数变化率小于阈值,则确定当前最后一次确定的多个第二聚合组为目标聚合组。其中,在每次调整权重阈值后,重新生成多个第二聚合组集合的步骤,可以参照图3中的步骤301-303,原理相同,此处不再赘述。
步骤504,根据目标聚合组,生成目标聚合组集合。
本申请实施例的多维数据查询方法中,在物化视图集进行执行的过程中,获取物化视图集执行过程对应的历史查询语句,构建得到的权重图,确定出多个最大边权重的聚合组,并根据多个聚合组生成目标函数,根据目标函数不断的调整权重阈值,并在每次调整权重阈值后,重新生成聚合组集合,直至目标函数收敛,进而,根据确定的聚合组组集合,生成更新的物化视图集,并将更新的物化视图集存储至数据库中,实现了不断的优化物化视图集,降低了物化视图集的占用的存储空间,也更加满足用户的实际查询需求,提高了构建的物化视图集的准确性。
为了实现上述实施例,本申请还提出一种多维数据查询装置。
图6为本申请实施例提供的一种多维数据查询装置的结构示意图。
如图6所示,该装置包括:获取模块61、生成模块62、确定模块63、确定存储模块64和响应模块65。
获取模块61,用于获取多个源数据表和第一历史查询语句。
生成模块62,用于根据多个源数据表中的元数据,生成数据表关联模型。
确定模块63,用于根据第一历史查询语句,确定数据表关联模型的目标维度和目标度量。
所述确定模块63,还用于根据目标维度,确定至少一个第一聚合组。
确定存储模块64,用于根据至少一个第一聚合组和目标度量,确定物化视图集,并将物化视图集存储至数据库中。
响应模块65,用于根据物化视图集,响应用户的多维数据查询请求。
进一步地,在本申请实施例的一种可能的实现方式中,确定模块63,具体用于:
根据第一历史查询语句,确定第一历史查询语句对应的维度和度量,以及维度和度量的查询要素;查询要素包含查询频次和查询时间;根据维度、度量,以及查询要素,从数据表关联模型中确定目标维度和目标度量。
在本申请实施例的一种可能的实现方式中,所述装置还包括:
上述获取模块61,还用于获取物化视图集运行过程中的第二历史查询语句。
生成模块,用于根据第二历史查询语句,生成权重图;所述权重图中包含各维度的节点,以及连接不同维度节点的边;所述连接不同维度节点的边用于指示所连接的不同维度间存在关联关系。
上述确定模块63,还用于根据所述权重图,确定目标聚合组集合。
上述生成存储模块65,还用于根据所述目标聚合组集合,生成更新的物化视图集,并将所述更新的物化视图集存储至数据库中。
在本申请实施例的一种可能的实现方式中,上述确定模块63,具体还用于:
根据所述权重图,确定各维度通过边连接的相邻维度;
根据所述各维度,和各维度通过边连接的相邻维度,以及权重阈值,确定平均边权重最大的多个第二聚合组;
根据所述多个第二聚合组,确定目标聚合组集合。
在本申请实施例的一种可能的实现方式中,上述确定模块63,具体用于:
根据所述多个第二聚合组,确定目标函数的取值;
根据所述目标函数的取值,调整所述权重阈值;
每当权重阈值调整一次,则执行根据调整后的权重阈值,所述各维度,和所述各维度通过边连接的相邻维度,生成平均边权重最大的多个第二聚合组,根据所述多个第二聚合组,确定目标函数的取值的步骤,直至所述目标函数的取值收敛,则将最后一次生成的多个第二聚合组作为目标聚合组;
根据所述目标聚合组,生成目标聚合组集合。
在本申请实施例的一种可能的实现方式中,上述确定模块63,具体还用于:
根据所述多个第二聚合组,生成第二聚合组集合;
根据所述第二聚合组集合,确定所述第二聚合组集合对应的膨胀率和平均查询时延;
获取第二查询语句的平均查询时延和惩罚函数;
根据所述膨胀率、所述平均查询时延、所述第二查询语句的平均查询时延和所述惩罚函数,确定所述第二聚合组集合的目标函数。
需要说明的是,前述对多维数据查询方法实施例的解释说明也适用于该实施例的多维数据查询装置,原理相同,此处不再赘述。
本申请实施例的多维数据查询装置中,获取多个源数据表和获取第一历史查询语句,根据多个源数据表中的元数据,生成数据表关联模型,根据第一历史查询语句,从数据表关联模型中确定目标维度和目标度量,根据目标维度,确定至少一个第一聚合组,根据至少一个第一聚合组,对目标维度进行筛选,根据目标度量和筛选后的目标维度,生成物化视图集,并将物化视图集存储至数据库中,根据物化视图集,响应用户的多维数据查询请求,实现了基于历史查询语句,自动构建物化视图集,并在构建的过程中对物化视图集进行优化。进而,在物化视图集进行执行的过程中,获取物化视图集执行过程对应的第二历史查询语句,构建得到的权重图,确定出多个最大边权重的聚合组,并根据多个聚合组生成目标函数,根据目标函数不断的调整权重阈值,并在每次调整权重阈值后,重新生成聚合组集合,直至目标函数收敛,进而,根据确定的聚合组组集合,生成更新的物化视图集,并将更新的物化视图集存储至数据库中,实现了不断的优化物化视图集,降低了物化视图集的占用的存储空间,也更加满足用户的实际查询需求,提高了构建的物化视图集的准确性。
为了实现上述实施例,本申请还提出一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现如前述方法实施例所述的多维数据查询方法。
为了实现上述实施例,本申请还提出一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时,实现如前述方法实施例所述的多维数据查询方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (8)
1.一种多维数据查询方法,其特征在于,所述方法包括:
获取多个源数据表和第一历史查询语句;
根据所述多个源数据表中的元数据,生成数据表关联模型;
根据所述第一历史查询语句,确定所述数据表关联模型的目标维度和目标度量;
根据所述目标维度,确定至少一个第一聚合组;
根据所述至少一个第一聚合组和目标度量,确定物化视图集,并将所述物化视图集存储至数据库中;
根据所述物化视图集,响应用户的多维数据查询请求;
其中,所述根据所述至少一个第一聚合组和目标度量,确定物化视图集,并将所述物化视图集存储至数据库中之后,包括:
获取所述物化视图集运行过程中的第二历史查询语句;
根据所述第二历史查询语句,生成权重图;所述权重图中包含各维度的节点,以及连接不同维度节点的边;所述连接不同维度节点的边用于指示所连接的不同维度间存在关联关系;
根据所述权重图,确定目标聚合组集合;
根据所述目标聚合组集合,生成更新的物化视图集,并将所述更新的物化视图集存储至数据库中。
2.根据权利要求1所述的多维数据查询方法,其特征在于,所述根据所述第一历史查询语句,从所述数据表关联模型中确定目标维度和目标度量,包括:
根据所述第一历史查询语句,确定所述历史查询语句对应的维度和度量,以及所述维度和度量的查询要素;所述查询要素包含查询频次和查询时间;
根据所述维度、度量,以及所述查询要素,从所述数据表关联模型中确定目标维度和目标度量。
3.根据权利要求1所述的多维数据查询方法,其特征在于,所述根据所述权重图,确定目标聚合组集合,包括:
根据所述权重图,确定各维度通过边连接的相邻维度;
根据所述各维度,和各维度通过边连接的相邻维度,以及权重阈值,确定平均边权重最大的多个第二聚合组;
根据所述多个第二聚合组,生成目标聚合组集合。
4.根据权利要求3所述的多维数据查询方法,其特征在于,所述根据所述多个第二聚合组,生成目标聚合组集合,包括:
根据所述多个第二聚合组,确定目标函数的取值;
根据所述目标函数的取值,调整所述权重阈值;
每当权重阈值调整一次,则执行根据调整后的权重阈值,所述各维度,和所述各维度通过边连接的相邻维度,生成平均边权重最大的多个第二聚合组,根据所述多个第二聚合组,确定目标函数的取值的步骤,直至所述目标函数的取值收敛,则将最后一次生成的多个第二聚合组作为目标聚合组;
根据所述目标聚合组,生成目标聚合组集合。
5.根据权利要求3所述的多维数据查询方法,其特征在于,所述根据所述多个第二聚合组,确定目标函数的取值,包括:
根据所述多个第二聚合组,生成第二聚合组集合;
根据所述第二聚合组集合,确定所述第二聚合组集合对应的膨胀率和平均查询时延;
获取所述第二历史 查询语句的平均查询时延和惩罚函数;
根据所述膨胀率、所述平均查询时延、第二历史 查询语句的平均查询时延和所述惩罚函数,确定所述第二聚合组集合的目标函数。
6.一种多维数据查询装置,其特征在于,所述装置包括:
获取模块,用于获取多个源数据表和第一历史查询语句;
生成模块,用于根据所述多个源数据表中的元数据,生成数据表关联模型;
确定模块,用于根据所述第一历史查询语句,确定所述数据表关联模型的目标维度和目标度量;
所述确定模块,还用于根据所述目标维度,确定至少一个第一聚合组;
确定存储模块,用于根据所述至少一个第一聚合组和目标度量,确定物化视图集,并将所述物化视图集存储至数据库中;
响应模块,用于根据所述物化视图集,响应用户的多维数据查询请求;
其中,所述根据所述至少一个第一聚合组和目标度量,确定物化视图集,并将所述物化视图集存储至数据库中之后,包括:
获取所述物化视图集运行过程中的第二历史查询语句;
根据所述第二历史查询语句,生成权重图;所述权重图中包含各维度的节点,以及连接不同维度节点的边;所述连接不同维度节点的边用于指示所连接的不同维度间存在关联关系;
根据所述权重图,确定目标聚合组集合;
根据所述目标聚合组集合,生成更新的物化视图集,并将所述更新的物化视图集存储至数据库中。
7.一种电子设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现如权利要求1-5中任一所述的多维数据查询方法。
8.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-5中任一所述的多维数据查询方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011022583.XA CN112286953B (zh) | 2020-09-25 | 2020-09-25 | 多维数据查询方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011022583.XA CN112286953B (zh) | 2020-09-25 | 2020-09-25 | 多维数据查询方法、装置和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112286953A CN112286953A (zh) | 2021-01-29 |
CN112286953B true CN112286953B (zh) | 2023-02-24 |
Family
ID=74421298
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011022583.XA Active CN112286953B (zh) | 2020-09-25 | 2020-09-25 | 多维数据查询方法、装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112286953B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112988809B (zh) * | 2021-02-09 | 2023-10-03 | 中国联合网络通信集团有限公司 | 基于关系型数据库的数据查询方法、装置、设备和介质 |
CN113297300A (zh) * | 2021-02-10 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 数据表布局视图生成方法和装置,数据表输出方法和装置 |
CN113297289A (zh) * | 2021-04-28 | 2021-08-24 | 上海淇玥信息技术有限公司 | 从数据库提取业务数据的方法、装置和电子设备 |
CN113641669B (zh) * | 2021-06-30 | 2023-08-01 | 北京邮电大学 | 一种基于混合引擎的多维数据查询方法及装置 |
CN113704284A (zh) * | 2021-08-27 | 2021-11-26 | 北京房江湖科技有限公司 | 一种基于数据模型查询数据的方法及装置 |
CN113986933A (zh) * | 2021-09-03 | 2022-01-28 | 北京火山引擎科技有限公司 | 物化视图的创建方法、装置、存储介质及电子设备 |
CN114218263B (zh) * | 2022-02-23 | 2022-05-13 | 浙江一山智慧医疗研究有限公司 | 物化视图的自动创建方法及基于物化视图的快速查询方法 |
CN114880504B (zh) * | 2022-07-08 | 2023-03-31 | 支付宝(杭州)信息技术有限公司 | 一种图数据的查询方法、装置以及设备 |
CN115630117B (zh) * | 2022-12-21 | 2023-04-07 | 网易(杭州)网络有限公司 | 数据分析方法、物化视图生成方法及相关设备 |
CN116108076B (zh) * | 2023-04-10 | 2023-07-18 | 之江实验室 | 物化视图查询方法、系统、设备及存储介质 |
CN116541377B (zh) * | 2023-04-27 | 2024-05-14 | 阿里巴巴(中国)有限公司 | 任务的物化视图的处理方法、系统和电子设备 |
CN118260454B (zh) * | 2024-05-29 | 2024-08-20 | 浙江邦盛科技股份有限公司 | 时序中间态聚合图构建与查询方法、装置、设备及介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6026390A (en) * | 1996-05-29 | 2000-02-15 | At&T Corp | Cost-based maintenance of materialized views |
CN106250457B (zh) * | 2016-07-28 | 2019-07-12 | 国网山东省电力公司电力科学研究院 | 大数据平台物化视图的查询处理方法及系统 |
CN106997386B (zh) * | 2017-03-28 | 2019-12-27 | 上海跬智信息技术有限公司 | 一种olap预计算模型、自动建模方法及自动建模系统 |
CN110874864B (zh) * | 2019-10-25 | 2022-01-14 | 奥比中光科技集团股份有限公司 | 获取对象三维模型的方法、装置、电子设备及系统 |
CN111581454B (zh) * | 2020-04-27 | 2023-05-23 | 清华大学 | 基于深度图压缩算法的并行查询表现预测系统及方法 |
CN111597209B (zh) * | 2020-04-30 | 2023-11-14 | 清华大学 | 一种数据库物化视图构建系统、方法以及系统创建方法 |
-
2020
- 2020-09-25 CN CN202011022583.XA patent/CN112286953B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112286953A (zh) | 2021-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112286953B (zh) | 多维数据查询方法、装置和电子设备 | |
CN112286954B (zh) | 基于混合引擎的多维数据分析方法和系统 | |
US20120254183A1 (en) | Method and System for Clustering Data Points | |
US9292550B2 (en) | Feature generation and model selection for generalized linear models | |
US11977547B1 (en) | Generating query processing selection data based on processing cost data | |
WO2007053940A1 (en) | Automatic generation of sales and marketing information | |
CN115576502B (zh) | 一种数据存储的方法、装置、电子设备以及存储介质 | |
CN111143685A (zh) | 一种推荐系统的构建方法及装置 | |
WO2022267979A1 (zh) | 动力电池容量预测方法、装置及设备 | |
CN116860789A (zh) | 一种数据分布优化方法及分布式数据库系统 | |
CN108764307A (zh) | 自然最近邻优化的密度峰值聚类方法 | |
US20070219646A1 (en) | Device performance approximation | |
CN110705606A (zh) | 一种基于Spark分布式内存计算的空间K均值聚类方法 | |
CN116226468B (zh) | 基于网格化终端业务数据存储管理方法 | |
CN113822768A (zh) | 社区网络的处理方法、装置、设备及存储介质 | |
EP2541409A1 (en) | Parallelization of large scale data clustering analytics | |
CN116628136A (zh) | 基于声明式推理的协同查询处理方法、系统、电子设备 | |
CN115858648A (zh) | 数据库生成方法、数据流切分方法、装置、设备及介质 | |
CN113435501B (zh) | 基于聚类的度量空间数据划分与性能衡量方法及相关组件 | |
CN108229572B (zh) | 一种参数寻优方法及计算设备 | |
CN114510499A (zh) | 数据库操作语句的执行效率优化方法及装置 | |
CN113704220A (zh) | 一种基于LSTM和遗传算法的Ceph参数调优方法 | |
US20060206839A1 (en) | Method and system for evaluating design costs of an integrated circuit | |
CN113326252B (zh) | 数据库的参数调整方法及参数调整装置、电子设备 | |
US11914603B2 (en) | Data layout model generation system |
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 |