CN112286954A - 基于混合引擎的多维数据分析方法和系统 - Google Patents
基于混合引擎的多维数据分析方法和系统 Download PDFInfo
- Publication number
- CN112286954A CN112286954A CN202011024736.4A CN202011024736A CN112286954A CN 112286954 A CN112286954 A CN 112286954A CN 202011024736 A CN202011024736 A CN 202011024736A CN 112286954 A CN112286954 A CN 112286954A
- Authority
- CN
- China
- Prior art keywords
- query
- query statement
- data
- module
- statement
- 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
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
-
- 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
-
- 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/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Fuzzy Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提出一种基于混合引擎的多维数据分析方法和系统,涉及数据处理技术领域,其中,方法包括:可视化模块获取查询请求,并将查询请求发送至查询路由模块,查询路由模块的查询任务解析单元根据查询请求,生成结构化查询语句,查询路由模块的元数据分析单元,获取结构化查询语句,根据结构化查询语句,确定结构化查询语句的查询引擎,以使得对应的查询引擎对查询请求进行分析,通过路由至不同的查询引擎,对相应的结构化查询SQL语句进行分析,使得在数据规模急剧增长的情况下,提高了查询的效率,满足用户各种业务场景的数据分析需求。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及数据处理技术领域,具体涉及一种基于混合引擎的多维数据分析方法和系统。
背景技术
现如今,大数据和数据科学不仅是技术圈的热门话题,也是当今社会的重要组成。数据就在每个人身边,同时每天正以惊人的速度快速增长,目前我们所熟知的行业都越来越依赖于对大数据的处理和分析,如金融、医疗保健、农业、能源、媒体、教育等发展行业。
其中,联机分析处理(On-Line Analytical Processing,OLAP)是一种共享多维信息的快速分析技术,由于实际场景中,用户的查询需求和查询场景较多,当用户需要进行查询时,这些庞大的多维数据集让数据查询和分析面临了巨大的挑战。因此,如何提高查询的效率是亟待解决的技术问题。
发明内容
本申请旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本申请的第一个目的在于提出一种基于混合引擎的多维数据分析方法,以实现对用户的查询请求路由至对应的搜索引擎,提高了数据分析和查询的效率。
本申请的第二个目的在于提出一种基于混合引擎的多维数据分析系统。
本申请的第三个目的在于提出一种电子设备。
本申请的第四个目的在于提出一种非临时性计算机可读存储介质。
为达上述目的,本申请第一方面实施例提出了一种基于混合引擎的多维数据分析方法,包括:
可视化模块获取查询请求,并将所述查询请求发送至查询路由模块;
查询路由模块的查询任务解析单元获取查询请求,根据查询请求,生成结构化查询语句;
所述查询路由模块的元数据分析单元,获取所述结构化查询语句,根据所述结构化查询语句,确定所述结构化查询语句的查询引擎,以使得对应的查询引擎对所述查询请求进行分析。
为达上述目的,本申请第二方面实施例提出了一种基于混合引擎的多维数据分析系统,所述系统包括:
可视化模块和查询路由模块,所述查询路由模块,包含查询任务解析单元和元数据分析单元;
所述可视化模块,用于获取查询请求,并将所述查询请求发送至查询路由模块;
所述查询任务解析单元,用于根据所述查询请求,生成结构化查询语句;
所述元数据分析单元,用于获取所述结构化查询语句,根据所述结构化查询语句,确定所述结构化查询语句的查询引擎,以使得对应的查询引擎对所述查询请求进行分析。
为达上述目的,本申请第三方面实施例提出了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现如第一方面所述的基于混合引擎的多维数据分析方法。
为了实现上述目的,本申请第四方面实施例提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如第一方面所述的基于混合引擎的多维数据分析方法。
本申请实施例所提供的技术方案可以包含如下的有益效果:
获取多个源数据表和获取历史查询语句,根据多个源数据表中的元数据,生成数据表关联模型,根据历史查询语句,从数据表关联模型中确定目标维度和目标度量,根据目标维度,确定至少一个第一聚合组,根据至少一个第一聚合组,确定数据立方体,并将数据立方体存储至数据库中,根据数据立方体,响应用户的多维数据查询请求,实现了基于历史查询语句,自动构建数据立方体,并在构建的过程中对数据立方体进行优化,提高了构建的效率。
本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本申请实施例所提供的一种基于混合引擎的多维数据分析方法的流程示意图;
图2为本申请实施例提供的另一种基于混合引擎的多维数据分析方法的流程示意图;
图3为本申请实施例提供的另一种基于混合引擎的多维数据分析方法的流程示意图;
图4本申请实施例提供的一种结构化查询语句的解析方法的示意图;
图5为本申请实施例提供的基于聚合组的初步优化示意图;
图6为本申请实施例提供的一种权重图;
图7为本申请是实施例提供的一种数据表关联视图的示意图;
图8为本申请实施例提供的一种基于混合引擎的多维数据分析系统的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
下面参考附图描述本申请实施例的基于混合引擎的多维数据分析方法和系统。
图1为本申请实施例所提供的一种基于混合引擎的多维数据分析方法的流程示意图。
如图1所示,该方法包括以下步骤:
步骤101,可视化模块获取查询请求,并将查询请求发送至查询路由模块。
本实施例中,可视化模块负责人机交互,响应用户的查询请求,并将用户的查询请求发送至查询路由模块。
步骤102,查询路由模块的查询任务解析单元根据查询请求,生成结构化查询语句。
本实施例中,查询路由模块的查询任务解析单元,获取查询请求,并对查询请求进行解析,将查询请求中的查询表格名、表关联信息、查询字段、筛选条件等信息转化为统一的可执行的结构化查询SQL语句。
步骤103,查询路由模块的元数据分析单元,获取结构化查询语句,根据结构化查询语句,确定结构化查询语句的查询引擎,以使得对应的查询引擎对查询请求进行分析。
其中查询引擎包含分布式计算引擎和预聚合的查询引擎,其中,分布式计算引擎,例如为Spark SQL(Structured Query Language)、Presto等,预聚合的查询引擎,例如为Apache Kylin。
本实施例中,查询路由模块的元数据分析单元,获取可执行的结构化查询SQL语句,根据结构化查询SQL语句,将结构化查询SQL语句分配值对应的查询引擎,通过路由至不同的查询引擎,对相应的结构化查询SQL语句进行分析,使得在数据规模急剧增长的情况下,提高了查询的效率,满足用户各种业务场景的数据分析需求,避免了单一查询引擎存在的查询时延随数据规模急剧增长、查询场景相对固定的问题。
可选地,针对不同的查询请求,路由至对应的查询引擎进行查询后,可将查询的结果发送至可视化模块,利用可视化模块中的多维可视化分析单元,对多维数据分析的结果渲染成丰富的可视化图表,并在可视化模块中的驾驶舱单元中,对各种可视化图表进行可视化展示。
本申请实施例的一种基于混合引擎的多维数据分析方法,可视化模块获取查询请求,并将查询请求发送至查询路由模块,查询路由模块的查询任务解析单元根据查询请求,生成结构化查询语句,查询路由模块的元数据分析单元,获取结构化查询语句,根据结构化查询语句,确定结构化查询语句的查询引擎,以使得对应的查询引擎对查询请求进行分析,通过路由至不同的查询引擎,对相应的结构化查询SQL语句进行分析,使得在数据规模急剧增长的情况下,提高了查询的效率,满足用户各种业务场景的数据分析需求,避免了单一查询引擎存在的查询时延随数据规模急剧增长、查询场景相对固定的问题
基于上述实施例,本实施例提供了一种基于混合引擎的多维数据分析方法的可能的实现方式,图2为本申请实施例提供的另一种基于混合引擎的多维数据分析方法的流程示意图,如图2所示,步骤103包含以下步骤:
步骤1031,查询路由模块的元数据分析单元,确定结构化查询语句的查询类型,查询类型包含聚合查询和明细查询。
本实施例中,基于预聚合的查询引擎,不支持明细查询,当查询路由模块的元数据分析单元获取到结构化查询SQL语句后,对SQL语句的查询类型进行区分,作为一种可能的实现方式,SQL语句中携带了可指示查询类型的查询特征,例如,聚合查询对应的查询特征为“group by”,通过识别SQL语句中识别包含该特征,可确定该SQL语句是否为聚合查询。
步骤1032,判断结构化查询语句的查询类型是否为聚合查询,若是,执行步骤1033,若否,执行步骤1034。
本实施例中,若确认结构化查询语句对应的查询类型为不为聚合查询,则说明该结构化查询语句的查询类型为明细查询,则执行步骤1033,将该结构化查询语句,下压至分布式计算引擎,例如Spark引擎进行实时计算。若结构化查询语句对应的查询类型为聚合查询,对于聚合查询,则执行步骤1034,即进入下一步的路由。
步骤1033,确定结构化查询语句对应的第一查询引擎。
步骤1034,元数据分析单元获取数据立方体,对数据立方体进行解析,得到数据立方体的元数据,将元数据与结构化查询语句进行参数匹配。
本实施例中,确定结构化查询语句对应的查询类型,为聚合查询,则元数据分析单元从数据存储模块中获取已完成预计算的数据立方体,对该数据立方体进行解析,得到该数据立方体的元数据,其中,元数据包含的参数,包含数据立方体对应的业务模型,以及数据立方体包含的度量和维度组合。其中,业务模型包含事实表、维表、各表的关联关系,其中,关联关系通常以星型模型和雪花模型的形式呈现。
步骤1035,判断元数据与结构化查询语句的参数是否匹配,若是,执行步骤1036,若否,执行步骤1033。
本实施例中,对该结构化查询语句,进行解析得到该该结构化查询语句查询的模型和查询度量列表,判断元数据的参数与结构化查询语句的参数是否匹配,若参数不匹配,确定查询请求对应的第一查询引擎,也就是说该查询请求需要下压至分布式计算引擎,例如Spark引擎进行实时计算。
若参数匹配,则确定查询请求对应的第二查询引擎。具体来说,比对数据立方体的元数据中的业务模型和结构化查询语句对应的业务模型是否匹配,若匹配,则确定该结构化查询语句命中该业务模型,也就是说该结构化查询语句命中了相应的数据立方体的业务模型。进而,确定该结构化查询语句的度量列表已经被相应的数据立方体预计算,则进一步,解析该结构化查询语句的维度组合列表,将该结构化查询语句的维度组合列表和数据立方体的维度组合进行比对,若数据立方体的维度组合中包含该结构化查询语句的维度组合,则确定该结构化查询语句对应的第二查询引擎,例如Ktlin查询引擎,以实现对数据的查询。
在本申请实施例的一种可能的实现方式中,由于实际应用中,查询请求对应的结构化查询语句的参数和预计算完成的数据立方体Cube的元数据的参数无法匹配,也就是说存在查询请求无法命中已完成预计算完成的数据立方体Cube的情况,即无法实现精准匹配,具体来说,是数据立方体Cube中并没有包含查询任务所需的维度组合。而由于Kylin引擎是查询路由的最优选择,因此,本实施例中可以根据数据立方体Cube中已有维度数据,经由一次简单的聚合,计算出我们想要的查询结果,以实现“模糊匹配”的情况,以提高查询的准确度。
步骤1036,确定结构化查询语句对应的第二查询引擎。
本申请实施例的基于混合引擎的多维数据分析方法中,通过对查询请求对应的结构化查询语句进行解析,得到对应的查询类型,若查询类型为明细查询,确定下压至第一查询引擎,若查询类型为聚合查询,则进一步对结构化查询语句进行解析得到对应的业务模型和维度组合,基于结构化查询语句进行解析得到的业务模型和维度组合,与数据立方体的元数据对应的业务类型和维度组合进行匹配,以确定该结构化查询语句是否为聚合类型,从而将确定为聚合类型的结构化查询语句发送至Kylin引擎,提高了查询请求查询的可靠度,同时,将不同的查询请求下发至对应的不同的从查询请求,避免了大量数据的查询时延,提高了查询效率。
基于上述实施例,本实施例提供了又一种基于混合引擎的多维数据分析方法的可能的实现方式,如图3所示,步骤1034之前,包含以下步骤:
步骤301,查询路由模块的查询任务解析单元,根据查询请求,生成数据表关联元数据,将数据表关联元数据存储至数据表关联视图模块。
本申请实施例中,查询路由模块的查询任务解析单元,对获取的查询请求进行解析,得到查询请求对应的结构化查询语句,并记载用户进行多维数据分析时产生的数据知识,包括数据表关联信息、关联字段、业务主题、星型模型或雪花模型等。其中,多维数据分析时记载下的数据表关联信息可在后续实施例中具体说明。
步骤302,查询语句解析模块,获取历史结构化查询语句集合,对历史结构化查询语句集合进行解析,得到业务模型参数,将业务模型参数发送至模型生成模块。
其中,业务模型的参数包含:事实表、维表,以及表间关联信息,以及维度,度量,和SQL中的条件语句。业务模型指示了数据立方体中数据表的关联方式,例如,星型模型,雪花模型。
其中,历史结构化查询语句集合,可以是在建立数据立方体之前的结构化查询语句的集合。
在本实施例的一种可能的实现方式中,查询语句解析模块的预处理单元,对历史结构化查询语句集合进行预处理,得到预处理后的历史结构化查询语句集合。查询语句解析模块的分组单元,对处理后的历史结构化查询语句集合,按照业务模型,进行分组,得到多个历史结构化查询语句组。查询语句解析模块的参数解析单元,针对每一个历史结构化查询语句组进行解析,得到对应的业务模型参数。
如图4所示,首先从数据库中,读取历史结构化查询语句集合,作为查询语句解析模块的输入,历史结构化查询语句集合是数据立方体Cube自动构建的重要语料。
首先,对历史结构化查询语句进行预处理。具体来说,由于预聚合数据立方体Cube的特性,并不是所有的历史结构化查询语句都可以用来作为构建Cube的语料,我们需要排除掉那些不适合构建Cube的历史结构化查询语句,可选地,根据历史结构化查询语句对应的查询类型,去除不符合查询类型要求的历史结构化查询语句,例如,去掉查询类型为明细查询、非联表查询、非聚合查询的历史结构化查询语句。进而,去除度量来自维表的历史结构化查询语句,以及去除历史结构化查询语句中的冗余信息。对应代码如下:
经过对历史结构化查询语句集合的预处理,我们得到了适合构建Cube的历史结构化查询语句集合,然而它仍然不能被用来进行构建。因为不同的SQL语句可能对应不同的业务模型,我们还需要以业务模型为单位对SQL进行分组,伪代码如下:
从而,每个SQL组即对应一个Cube。
进一步,对构建Cube对应的业务模型参数进行解析。这些参数包括:lookups(事实表、维表,以及表间关联信息),dimensions(维度),measures(度量),filters(SQL中的条件语句)。
其中,lookups作为Cube构建的基础信息,可用于搭建Cube的数据框架,而维度和度量则进一步地限定了用户所需要的查询范围,从而将数据立方体的预计算控制在合理的需求区间内。其中,SQL中的条件语句,即filters则是为了Cube的优化考虑。在参数解析时,我们把filter(单个的条件语句)按照其出现的频次进行降序排列,伪代码如下:
步骤303,模型生成模块获取数据表关联元数据,根据数据表关联元数据以及业务模型参数,生成初始数据立方体。
本申请实施例中,根据数据表关联元数据,确定业务模型,根据业务模型参数和业务模型,生成初始数据立方体。
其中,业务模型为要建立的Cube约定了一种数据表关联的方式,常见的类型是星型模型、雪花模型等。业务模型的基本设计包括fact_table(事实表)、lookups(维表,事实表与维表的关联信息)、dimensions(维度列表)、measures(度量列表)。除了这些基础信息,Model的设计还包含了一些个性化的设置,如description(注释)、filter_condition(筛选条件)、partition_type(分割类型)、project(项目)等,根据业务需求逐项设置即可。
在本申请实施例的一种可能的实现方式中,根据数据表关联元数据中的事实表与维表之间的关联关系,确定要构建的业务模型中事实表与维表之间的关联关系,进而,根据查询语句解析模块生成的业务模型的参数,事实表、维表,以及维度,度量,生成初始数据立方体。
步骤304,模型优化模块,对初始数据立方体进行优化,得到数据立方体。
本实施例中的数据立方体的优化包含对初始数据立方体的优化,以及对优化后的初始数据立方体的持续优化,下面针对两种优化进行说明。
本申请实施例中,模型优化模块的建模优化单元对初始数据立方体进行优化,得到优化后的初始数据立方体。
在本申请实施例的一种可能的实现方式中,基于聚合组,对初始数据立方体进行优化,得到数据立方体。
其中,聚合组,是存在语义关联的维度的集合。本申请实施例中通过聚合组,对物化视图集进行优化,而聚合组表征维度的语义关联程度,同一个聚合组内的维度关联性较高,实现了从数据语意的层面进行了深层次的优化,提高了优化的效果。
本实施例中,由于缺乏人工参与,自动构建出的Cube无疑会面对“维度爆炸”的困境,这是指,在为Cube挑选维度组合的过程中,如果不加以干涉,n个维度会带来2n种维度组合,随着n的增长,维度组合的数量会急剧膨胀,相应的计算量也会给系统带来极大的负担。为了避免出现这种“维度爆炸”的情况,在Cube设计之初,我们就要对Cube进行剪枝优化。
本发明中使用聚合组(aggregationgroup)作为初次优化的工具,根据用户所关注的维度组合,可以划分出用户关注的组合大类,即聚合组。假设创建一个交易数据的Cube,它包含了以下一些维度:顾客标识buyer_id、交易日期cal_dt、付款的方式pay_type和买家所在的城市city。有时候,分析师需要通过分组聚合city、cal_dt和pay_type来获知不同消费方式在不同城市的应用情况;有时候,分析师需要通过聚合city、cal_dt和buyer_id,来查看顾客在不同城市的消费行为。
例如,图5所示,其中,pay_type、cal_dt、city、buyer_id是确定的目标维度,根据维度之间的关联关系确定两个聚合组,分别为pay_type、cal_dt、city和cal_dt、city、buyer_id,分别针对两个聚合组,分别确定对应的维度组合。如图5中所示,以每个“聚合组”为起点开始构建生成树,到Apex Cuboid(*)结束,这种构建方式一方面很大程度上的降低了维度组合,也就是维度组合的总数,从全量构建的24=16个减少为图2中的12个;另一方面,维度组合之间还有交叉,即图2中的“cal_dt、city”,“cal_dt”和“city”,这使得本次剪枝优化的规模控制在可接受的范围内。
实际应用中,初始数据立方体建立后,查询路由模块就可以根据情况将查询请求分配至该Cube进行查询。为了降低存储空间的占用,同时使得数据立方体更加满足用户的查询需求,可以对数据立方体的运行状态和下压查询的执行情况进行持续的监控,从而在运行过程中自发的学习用户查询所涉及的维度间的关联情况,以更加符合查询需求,同时通过优化减少了数据立方体中的物化视图的数量,降低了存储空间的占用,提高了整体性能。
从而,本申请实施例中,模型优化模块的持续优化单元,在满足触发条件时,当监控到优化后的初始数据立方体在运行过程中和查询请求不匹配,则根据运行过程中的历史查询语句,对优化后的初始数据立方体进行优化,得到更新的数据立方体,而更新的数据立方体会在运行的过程中,在满足触发条件后,进行进一步的优化,以实现不断的迭代更新数据立方体。
本实施例中的数据立方体进一步优化的触发条件为:
每隔预设时间,执行一次全局优化,全局优化即对所有的数据立方体均进行优化;
相同业务模型下命中率低于设定阈值,例如75%,则对该业务模型进行优化,即对该业务模型对应的数据立方体进行优化;
平均查询时延高于设定阈值,例如1200ms,则执行全局优化,全局优化即对所有的数据立方体均进行优化;
构建任务超时,或是内存溢出(Out Of Memory,OOM),对该Cube重新进行优化。
用户可根据需要自行配置个性化的优化策略,在优化任务完成后,系统后台会自动将重新构建(rebuild)任务提交至任务调度器,在系统闲时开始对Cube的预计算,达到读写分离的效果。
为了便于记录查询请求,本实施例提供了一种结构化查询语句的记录表,即下表1中的queried_sql表,记录每一条sql的执行情况,包括模型名称、执行的SQL、查询引擎、查询时延等信息:
表1
通过监控查询任务的执行情况,以及HBase中Cube的状态,分析平均查询时延、各引擎路由到的查询次数/命中率、每个Cube的查询命中率、Cube的膨胀率,综合考量Cube在多维分析系统中的表现,反馈给模型持续优化单元,用来构建更符合用户需求、膨胀率更低的Cube。
本实施例中,初始数据立方体运行时的优化需要进一步的更新,而更新得到的数据立方体,还会继续更新,是一个迭代更新的过程,下面针对利用聚合组对数据立方体持续更新的过程进行具体说明。
本实施例中根据历史SQL集合、SQL执行情况分析等,找出聚合组的更优解。其次,我们引入了更加细粒度的剪枝工具:联合维度(Joint Dimension)、层级维度(HierachyDimension)和必要维度(Mandatory Dimension),这些剪枝工具依托于聚合组中,对每个聚合组所产生的维度组合生成树,以进行进一步的剪枝。
为了找出聚合组的更优解,在本申请的一种可能的实现方式中,根据当前已生成的数据立方体在运行过程中对应的历史查询语句,生成权重图,权重图中包含各维度的节点,以及连接不同维度节点的边,其中,连接不同维度节点的边用于指示所连接的不同维度间存在关联关系。进而,根据权重图,确定目标聚合组集合。进一步,根据目标聚合组集合,生成更新的数据立方体,并将更新的数据立方体存储至数据库中。
具体来说,通过持续的监控和分析已有数据立方体的运行状态,获取数据立方体在运行过程中,分析引擎中的多个历史查询语句的执行情况,根据历史查询语句的执行情况,对数据立方体进行重新优化选择,使得数据立方体在运行过程中自发的学习用户查询所涉及的维度间的关联情况,以更加符合查询需求,同时通过优化减少了数据立方体中的物化视图的数量,降低了存储空间的占用,提高了整体性能。
在本实施例的一种实现方式中,根据多个历史查询语句,生成权重图,权重图中包含各维度的节点,以及连接不同维度节点的边,其中,连接不同维度节点的边用于指示所连接的不同维度间存在关联关系。具体地,给定图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即可生成对应的权重图,如图6所示,即为根据多个历史查询语句生成的权重图G的示意图,其中,节点A-H为维度,节点对应的维度通过边连接,节点间标识的数字,例如,节点A和B之间的数字3即为节点A对应的维度和节点B对应的维度之间的权重,也就是维度间的关联程度。
进一步,根据权重图,确定目标聚合组集合。
其中,聚合组集合中包含重新划分得到的多个聚合组。
本实施例中,根据权重图,确定各维度通过边连接的相邻维度,根据各维度,和各维度通过边连接的相邻维度,以及权重阈值,生成平均边权重最大的多个第二聚合组,进而,根据多个第二聚合组,生成目标聚合组集合。
本申请的一个实施例中,将权重图的节点集合V划分成为若干个可能存在重叠的目标聚合组集合Ω=[α1,α2,...,αm]。划分的依据是根据聚合组平均权重E(αp)和权重阈值wt。
其中,平均权重E(αp)为:组中各边权重加和除以边数,其计算公式为:
其中,节点vi与节点vj为聚合组αp中的节点,aij为两个节点之间的边权,n为αp中的节点数量。以图6所示的带权图为例,从节点A出发,依次计算与A邻接的节点,基于贪心思想选择平均边权最大的组合,计算过程如下表2所示。
节点组合 | 计算公式及结果 |
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 |
表2
需要理解的是,A和G、H之间并没有关联,从而,权重的和则为零。
根据计算结果,例如,我们选择平均边权最大的A+B作为本次选择的结果。
下一步继续从聚合组AB出发,计算与AB邻接的节点的平均边权,得到最大边权的组合,例如为AB+C:(3+3+1)/3=2.33,多次重复此步骤,直至结束退出。其中,结束可通过以下两种可能的实现方式确定:
作为一种可能的实现方式,针对每一个聚合组,在当前确定的聚合组中,加入新的节点后,聚合组平均边权重降低,由E(αp)变为E'(αp),而E'(αp)小于权重阈值,即E'(αp)<wt,说明此时新的节点对应的维度与聚合组中的各成员对应的维度之间的关联度较低,不宜加入本聚合组,则该聚合组确定,退出进入下一个聚合组的确定。
需要理解的是,存在重叠的聚合组,是指聚合组之间可能存在重叠的维度。
进而,根据确定的各个聚合组,生成新的聚合组集合,作为目标聚合组集合。
进一步,根据目标聚合组集合,生成更新的数据立方体,并将更新的数据立方体存储至数据库中。
本实施例中,根据重新确定的目标聚合组集合,更新数据立方体,实现了基于维度间的关联关系,实现对数据立方体的优化,其中优化包含物化视图的总量的优化和数据立方体中维度间关联度的优化,使得数据立方体更加满足查询需求,提高了查询的命中率,同时,降低了数据立方体的存储空间的占用。
本申请实施例的基于混合引擎的多维数据分析方法,在初步建立数据立方体后,对数据立方体进行优化,并在数据立方体运行过程中,自发的学习用户查询所涉及的维度间的关联情况,以更加符合查询需求,同时通过优化减少了数据立方体中的物化视图的数量,降低了存储空间的占用,提高了整体性能。
基于上述实施例,上述生成的目标聚合组集合并不一定是最佳的目标聚合组集合,为了提高目标聚合组集合确定的准确性,本实施例中通过目标函数来评价聚合组集合的准确性。
首先,根据多个聚合组,确定目标函数的取值。
在本申请实施例的一种可能的实现方式中,根据多个聚合组,生成聚合组集合,根据聚合组集合,确定聚合组集合对应的膨胀率和平均查询时延,获取查询语句的平均查询时延和惩罚函数,进而,根据膨胀率、平均查询时延、查询语句的平均查询时延和惩罚函数,确定聚合组集合的目标函数。
其中,平均查询时延(Average Query Latency)则是同模型下所有历史查询语句SQL所需查询时延的平均值,代表物化后的数据立方体,所能达到的查询性能;而膨胀率(Expansion Rate)则是物化立方体的大小与原始数据大小的比值,表示了预计算的复杂程度(即剪枝的成效),平均查询时延越低、膨胀率越低,则对数据立方体进行优化的效果越好。本申请中目标函数F(Ω)的计算公式如下:
其中,θ为固定值,是下压引擎(实时计算)的平均查询时延,Aql(Ω)为根据当前的聚合组集合即第二聚合组集合估算出的平均查询时延,Exp(Ω)为根据第二聚合组集合估算出的膨胀率,则为惩罚函数。本申请中需要保证查询性能,即Cube查询对比下压查询引擎提升的时间倍数θ/Aql(Ω),所以本申请中对与膨胀率Exp(Ω)引入了惩罚函数,使其在膨胀率高于一定值以后成为整体的减分项。惩罚函数如下:
根据目标函数的取值,调整权重阈值。
每当权重阈值调整一次,则执行根据调整后的权重阈值,各维度,和各维度通过边连接的相邻维度,生成平均边权重最大的多个第二聚合组,根据多个第二聚合组,确定目标函数的取值的步骤,直至目标函数的取值收敛,则将最后一次生成的多个第二聚合组作为目标聚合组。
本申请中,权重阈值用于判断每个聚合组划分过程中是否满足要求,也就是说在生成聚合组的过程中,当有新的维度的节点准备加入该聚合组时,则判断该新的维度节点加入该聚合组后得到的的平均权重是否小于权重阈值,以确定维度组合是否可以加入该聚合组,从而指示确定该聚合组的过程是否结束,避免了将与聚合组中的各个维度节点关联度较低的维度节点加入对应的聚合组,提高了聚合组中维度间的关联关系,同时,也可以使得划分得到的各个聚合组更加满足用户查询的需求。
从而,本实施例中是根据上述步骤中生成的目标函数,不断的调整权重阈值,并根据调整后的权重值重新生成聚合组,直至目标函数收敛,例如,目标函数变化率小于阈值,则确定当前最后一次确定的多个聚合组为目标聚合组。其中,在每次调整权重阈值后,重新生成多个聚合组集合的步骤相同,不再赘述。
本申请实施例中,在数据立方体进行执行的过程中,获取数据立方体执行过程对应的历史查询语句,构建得到的权重图,确定出多个最大边权重的聚合组,并根据多个聚合组生成目标函数,根据目标函数不断的调整权重阈值,并在每次调整权重阈值后,重新生成聚合组集合,直至目标函数收敛,进而,根据确定的聚合组组集合,生成更新的数据立方体,并将更新的数据立方体存储至数据库中,实现了不断的优化数据立方体,降低了数据立方体的占用的存储空间,也更加满足用户的实际查询需求,提高了构建的数据立方体的准确性。
基于上述实施例,本实施例还提供了一种基于混合引擎的多维数据分析方法,作为一种可能的实现方式,在可视化模块向用户展示查询结果的过程中,可响应用户的触发操作,切换至数据表关联视图模块,从而,数据表关联视图模块,对数据表关联元数据进行展示,其中,数据表关联元数据包含数据表关联信息。
数据表关联视图模块是对探索式分析过程中产生的知识的一种记录,在本模块中,我们把这种记录存储下来,并对其进行学习和矫正,最终形成可视化的数据表关联视图辅助用户进行探索。
本实施例中,通过数据库表,来存储数据表间关联信息,存储星型/雪花模型中的事实表、维表、连接类型、联接字段等信息,数据库表如下表3:
表3
每当用户在探索式分析时建立一个数据模型,或一个数据表间的关联,系统后台就会自动地把这种关联信息存储至数据库中,随着用户对数据探索的一步步深入,数据的全貌也将逐渐的展现在我们眼前。需要注意的是,有一些关联信息可能是无效的或用户不愿意使用的,对于这种冗余信息,后台会在学习的过程中自动矫正,或由用户手动更正。为了方便用户查看探索式分析中积累的这种表关联模型,本系统提供了一种可视化的数据表关联模型视图,如图7所示。
在这个数据表关联视图中,A和B指示的区域是已完成关联的数据模型,可以看到,A指示的区域是一个由多表关联形成的雪花模型,每一个方块代表一个数据表,灰色区域是表名,白色区域则是数据表包含的字段名称。B指示的区域是一个由两张数据表形成的简单关联模型。每新增一个关联模型,它就会自动地向右排列出来。
C指示的区域是未产生关联的数据表,当下一次用户在探索式分析的过程中用到它们时,它们就会被自动地添加至A或B区域中,并与其关联表进行连线。用户也可以在此页面通过拖拽的方式将其放入A或B区域中,拖拽连线生成表间关联,这一操作同样会被存储到数据库表中。
需要说明的是,图7仅为一种示例,并不构成对本实施例的限定。
数据表关联视图是对数据知识的一种学习和存储,并反过来以可视化的方式展示给用户,用户在探索式分析中,往往会因数据过于复杂而忽略或混淆一些表间关联信息,而数据表关联视图则为用户提供了这样一种高效的探索方式,它就像是一张地图,将数据山洞的全貌记录并展示在了用户眼前。使用户能够不必过分关注数据的组合方式,更多地聚焦于业务本身。
为了实现上述实施例,本申请还提出一种基于混合引擎的多维数据分析系统。
图8为本申请实施例提供的一种基于混合引擎的多维数据分析系统的结构示意图。
如图8所示,该系统包括:可视化模块81和查询路由模块82,查询路由模块82,包含查询任务解析单元801和元数据分析单元802;
可视化模块81,用于获取查询请求,并将查询请求发送至查询路由模块82;
查询任务解析单元801,用于根据所述查询请求,生成结构化查询语句;
元数据分析单元802,获取结构化查询语句,根据结构化查询语句,确定结构化查询语句的查询引擎,以使得对应的查询引擎对所述查询请求进行分析。
进一步,作为一种可能的实现方式,元数据分析单元802,还用于确定所述结构化查询语句的查询类型;所述查询类型包含聚合查询和明细查询;若确定所述结构化查询语句的查询类型为明细查询,则确定所述结构化查询语句对应的第一查询引擎。
进一步,作为一种可能的实现方式,元数据分析单元802,还用于若确定所述查询类型为聚合查询,则所述元数据分析单元获取所述数据立方体,对所述数据立方体进行解析,得到所述数据立方体的元数据,将所述元数据与所述结构化查询语句进行参数匹配;若参数匹配,确定所述结构化查询语句对应的第二查询引擎;若参数不匹配,确定所述结构化查询语句对应的第一查询引擎。
进一步,作为一种可能的实现方式,系统还包括:查询语句解析模块83、模型生成模块84、模型优化模块85、数据表关联视图模块86和数据存储模块87。
查询任务解析单元801,还用于根据所述查询请求,生成数据表关联元数据,将所述数据表关联元数据存储至数据表关联视图模块;
查询语句解析模块83,用于获取历史结构化查询语句集合,对所述历史结构化查询语句集合进行解析,得到业务模型参数,将所述业务模型参数发送至模型生成模块;
模型生成模块84,用于获取所述数据表关联元数据,根据所述数据表关联元数据以及所述业务模型参数,生成初始数据立方体。
模型优化模块85,用于对所述初始数据立方体进行优化,得到所述数据立方体。
进一步,作为一种可能的实现方式,查询语句解析模块83,包括:预处理单元、分组单元和参数解析单元;
预处理单元,对所述历史结构化查询语句集合进行预处理,得到预处理后的历史结构化查询语句集合;
分组单元,对所述处理后的历史结构化查询语句集合,按照业务模型,进行分组,得到多个历史结构化查询语句组;
参数解析单元,针对每一个历史结构化查询语句组进行解析,得到对应的业务模型参数。
进一步,作为一种可能的实现方式,模型生成模块84,还用于根据所述数据表关联元数据,确定业务模型;根据所述业务模型参数和所述业务模型,生成初始数据立方体。
进一步,作为一种可能的实现方式,模型优化模块85,包括:建模优化单元和持续优化单元;
建模优化单元,用于对所述初始数据立方体进行优化,得到优化后的初始数据立方体;
持续优化单元,用于在满足触发条件时,当监控到所述优化后的初始数据立方体在运行过程中和查询请求不匹配,则根据运行过程中的历史查询语句,对所述优化后的初始数据立方体进行优化,得到所述数据立方体。
进一步,作为一种可能的实现方式,系统,还包括:数据表关联视图模块86。
数据表关联视图模块86,用于对数据表关联元数据进行展示。
作为一种可能的实现方式,该系还包含数据存储模块87,用于存储数据。数据存储模块87包含:(1)历史SQL及元数据单元,用于存储历史SQL(包含查询引擎、查询时延、命中Cube等信息),以及各种元数据;(2)数据仓库单元,用于存放最原始的待分析的多维数据集;(3)数据立方体单元,用于存储已经预计算完成的数据立方体。
上述系统实施例与方法实施例相对应,与该方法实施例具有同样的技术效果,具体说明参见方法实施例。系统实施例与方法实施例对应,具体的说明可以参见方法实施例部分,此处不再赘述。
本申请实施例的基于混合引擎的多维数据分析系统,综合利用了两种主流的查询引擎,即预计算的查询引擎和实时计算的查询引擎的优点,解决了单一查询引擎存在的查询时延随数据规模急剧增长、查询场景相对固定等问题。同时,本实施例中,通过自动构建数据立方体(Cube),以及后续的模型优化的方法,降低了数据立方体的维度组合,同时更加符合用户的查询需求。另外,通过数据表关联视图,在用户分析数据的同时,记录并学习数据关联、业务模型等知识,将这些零碎的关联信息拼接成可视化的数据表关联视图,使用户可以一目了然地了解复杂的多维数据,赋能高效的探索式分析。
为了实现上述实施例,本申请还提出一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现如前述方法实施例所述的基于混合引擎的多维数据分析方法。
为了实现上述实施例,本申请还提出一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时,实现如前述方法实施例所述的基于混合引擎的多维数据分析方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (16)
1.一种基于混合引擎的多维数据分析方法,其特征在于,所述方法包括:
可视化模块获取查询请求,并将所述查询请求发送至查询路由模块;
所述查询路由模块的查询任务解析单元根据所述查询请求,生成结构化查询语句;
所述查询路由模块的元数据分析单元,获取所述结构化查询语句,根据所述结构化查询语句,确定所述结构化查询语句的查询引擎,以使得对应的查询引擎对所述查询请求进行分析。
2.根据权利要求1所述的多维数据分析方法,其特征在于,所述查询路由模块的元数据分析单元,获取所述结构化查询语句,根据所述结构化查询语句,确定所述结构化查询语句的查询引擎,包括:
所述查询路由模块的元数据分析单元,确定所述结构化查询语句的查询类型;所述查询类型包含聚合查询和明细查询;
若所述结构化查询语句的查询类型为明细查询,则确定所述结构化查询语句对应的第一查询引擎。
3.根据权利要求2所述的多维数据分析方法,其特征在于,所述查询路由模块的元数据分析单元,确定所述结构化查询语句的查询类型之后,包括:
若所述查询类型为聚合查询,则所述元数据分析单元获取数据立方体,对所述数据立方体进行解析,得到所述数据立方体的元数据,将所述元数据与所述结构化查询语句进行参数匹配;
若参数匹配,确定所述结构化查询语句对应的第二查询引擎;
若参数不匹配,确定所述结构化查询语句对应的第一查询引擎。
4.根据权利要求3所述的多维数据分析方法,其特征在于,所述元数据分析单元获取数据立方体,对所述数据立方体进行解析,得到所述数据立方体的元数据之前,还包括:
所述查询路由模块的查询任务解析单元,根据所述查询请求,生成数据表关联元数据,将所述数据表关联元数据存储至数据表关联视图模块;
查询语句解析模块,获取历史结构化查询语句集合,对所述历史结构化查询语句集合进行解析,得到业务模型参数,将所述业务模型参数发送至模型生成模块;
模型生成模块获取所述数据表关联元数据,根据所述数据表关联元数据以及所述业务模型参数,生成初始数据立方体;
所述模型优化模块,对所述初始数据立方体进行优化,得到所述数据立方体。
5.根据权利要求4所述的多维数据分析方法,其特征在于,所述查询语句解析模块,获取历史结构化查询语句集合,对所述历史结构化查询语句集合进行解析,得到业务模型参数,包括:
所述查询语句解析模块的预处理单元,对所述历史结构化查询语句集合进行预处理,得到预处理后的历史结构化查询语句集合;
所述查询语句解析模块的分组单元,对所述处理后的历史结构化查询语句集合,按照业务模型,进行分组,得到多个历史结构化查询语句组;
所述查询语句解析模块的参数解析单元,针对每一个历史结构化查询语句组进行解析,得到对应的业务模型参数。
6.根据权利要求4所述的多维数据分析方法,其特征在于,所述根据所述数据表关联元数据以及所述业务模型参数,生成初始数据立方体,包括:
根据所述数据表关联元数据,确定业务模型;
根据所述业务模型参数和所述业务模型,生成初始数据立方体。
7.根据权利要求4所述的多维数据分析方法,其特征在于,所述模型优化模块,用于对所述初始数据立方体进行优化,得到所述数据立方体,包括:
所述模型优化模块的建模优化单元对所述初始数据立方体进行优化,得到优化后的初始数据立方体;
所述模型优化模块的持续优化单元,在满足触发条件时,当监控到所述优化后的初始数据立方体在运行过程中和查询请求不匹配,则根据运行过程中的历史查询语句,对所述优化后的初始数据立方体进行优化,得到所述数据立方体。
8.根据权利要求4所述的多维数据分析方法,其特征在于,所述方法,包括:
数据表关联视图模块,对所述数据表关联元数据进行展示。
9.一种基于混合引擎的多维数据分析系统,其特征在于,所述系统包括:可视化模块和查询路由模块,所述查询路由模块,包含查询任务解析单元和元数据分析单元;
所述可视化模块,用于获取查询请求,并将所述查询请求发送至查询路由模块;
所述查询任务解析单元,用于根据所述查询请求,生成结构化查询语句;
所述元数据分析单元,用于获取所述结构化查询语句,根据所述结构化查询语句,确定所述结构化查询语句的查询引擎,以使得对应的查询引擎对所述查询请求进行分析。
10.根据权利要求9所述的多维数据分析系统,其特征在于,
所述元数据分析单元,还用于确定所述结构化查询语句的查询类型;所述查询类型包含聚合查询和明细查询;若所述结构化查询语句的查询类型为明细查询,则确定所述结构化查询语句对应的第一查询引擎。
11.根据权利要求10所述的多维数据分析系统,其特征在于,
所述元数据分析单元,还用于若确定所述查询类型为聚合查询,则所述元数据分析单元获取数据立方体,对所述数据立方体进行解析,得到所述数据立方体的元数据,将所述元数据与所述结构化查询语句进行参数匹配;若参数匹配,确定所述结构化查询语句对应的第二查询引擎;若参数不匹配,确定所述结构化查询语句对应的第一查询引擎。
12.根据权利要求11所述的多维数据分析系统,其特征在于,所述系统还包括:查询语句解析模块、模型生成模块和模型优化模块;
所述查询任务解析单元,用于根据所述查询请求,生成数据表关联元数据,将所述数据表关联元数据存储至数据表关联视图模块;
所述查询语句解析模块,用于获取历史结构化查询语句集合,对所述历史结构化查询语句集合进行解析,得到业务模型参数,将所述业务模型参数发送至模型生成模块;
所述模型生成模块,用于获取所述数据表关联元数据,根据所述数据表关联元数据以及所述业务模型参数,生成初始数据立方体;
所述模型优化模块,用于对所述初始数据立方体进行优化,得到所述数据立方体。
13.根据权利要求12所述的多维数据分析系统,其特征在于,所述查询语句解析模块,包括:预处理单元、分组单元和参数解析单元;
所述预处理单元,对所述历史结构化查询语句集合进行预处理,得到预处理后的历史结构化查询语句集合;
所述分组单元,对所述处理后的历史结构化查询语句集合,按照业务模型,进行分组,得到多个历史结构化查询语句组;
所述参数解析单元,针对每一个历史结构化查询语句组进行解析,得到对应的业务模型参数。
14.根据权利要求12所述的多维数据分析系统,其特征在于,
所述模型生成模块,还用于根据所述数据表关联元数据,确定业务模型;根据所述业务模型参数和所述业务模型,生成初始数据立方体。
15.根据权利要求12所述的多维数据分析系统,其特征在于,所述模型优化模块,包括:建模优化单元和持续优化单元;
所述建模优化单元,用于对所述初始数据立方体进行优化,得到优化后的初始数据立方体;
所述持续优化单元,用于在满足触发条件时,当监控到所述优化后的初始数据立方体在运行过程中和查询请求不匹配,则根据运行过程中的历史查询语句,对所述优化后的初始数据立方体进行优化,得到所述数据立方体。
16.根据权利要求12所述的多维数据分析系统,其特征在于,所述系统,还包括:数据表关联视图模块
数据表关联视图模块,用于对所述数据表关联元数据进行展示。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011024736.4A CN112286954B (zh) | 2020-09-25 | 2020-09-25 | 基于混合引擎的多维数据分析方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011024736.4A CN112286954B (zh) | 2020-09-25 | 2020-09-25 | 基于混合引擎的多维数据分析方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112286954A true CN112286954A (zh) | 2021-01-29 |
CN112286954B CN112286954B (zh) | 2022-08-16 |
Family
ID=74421991
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011024736.4A Active CN112286954B (zh) | 2020-09-25 | 2020-09-25 | 基于混合引擎的多维数据分析方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112286954B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113342843A (zh) * | 2021-07-06 | 2021-09-03 | 多点生活(成都)科技有限公司 | 大数据在线分析方法和系统 |
CN113360472A (zh) * | 2021-06-11 | 2021-09-07 | 杭州东方通信软件技术有限公司 | 基于Kylin OLAP的多维数据分析方法及系统 |
CN113407587A (zh) * | 2021-07-19 | 2021-09-17 | 北京百度网讯科技有限公司 | 用于联机分析处理引擎的数据处理方法、装置、设备 |
CN113553341A (zh) * | 2021-07-27 | 2021-10-26 | 咪咕文化科技有限公司 | 多维数据分析方法、装置、设备及计算机可读存储介质 |
CN113792079A (zh) * | 2021-11-17 | 2021-12-14 | 腾讯科技(深圳)有限公司 | 数据查询方法、装置、计算机设备和存储介质 |
CN115114354A (zh) * | 2022-08-30 | 2022-09-27 | 广州市玄武无线科技股份有限公司 | 一种分布式数据存储及查询系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040122646A1 (en) * | 2002-12-18 | 2004-06-24 | International Business Machines Corporation | System and method for automatically building an OLAP model in a relational database |
CN106599052A (zh) * | 2016-11-15 | 2017-04-26 | 上海跬智信息技术有限公司 | 一种基于ApacheKylin的数据查询系统及其方法 |
CN107016018A (zh) * | 2015-10-23 | 2017-08-04 | 阿里巴巴集团控股有限公司 | 数据库索引创建方法及装置 |
CN108875042A (zh) * | 2018-06-27 | 2018-11-23 | 中国农业银行股份有限公司 | 一种混合联机分析处理系统及数据查询方法 |
CN110222072A (zh) * | 2019-06-06 | 2019-09-10 | 江苏满运软件科技有限公司 | 数据查询平台、方法、设备和存储介质 |
-
2020
- 2020-09-25 CN CN202011024736.4A patent/CN112286954B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040122646A1 (en) * | 2002-12-18 | 2004-06-24 | International Business Machines Corporation | System and method for automatically building an OLAP model in a relational database |
CN107016018A (zh) * | 2015-10-23 | 2017-08-04 | 阿里巴巴集团控股有限公司 | 数据库索引创建方法及装置 |
CN106599052A (zh) * | 2016-11-15 | 2017-04-26 | 上海跬智信息技术有限公司 | 一种基于ApacheKylin的数据查询系统及其方法 |
CN108875042A (zh) * | 2018-06-27 | 2018-11-23 | 中国农业银行股份有限公司 | 一种混合联机分析处理系统及数据查询方法 |
CN110222072A (zh) * | 2019-06-06 | 2019-09-10 | 江苏满运软件科技有限公司 | 数据查询平台、方法、设备和存储介质 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113360472A (zh) * | 2021-06-11 | 2021-09-07 | 杭州东方通信软件技术有限公司 | 基于Kylin OLAP的多维数据分析方法及系统 |
CN113342843A (zh) * | 2021-07-06 | 2021-09-03 | 多点生活(成都)科技有限公司 | 大数据在线分析方法和系统 |
CN113407587A (zh) * | 2021-07-19 | 2021-09-17 | 北京百度网讯科技有限公司 | 用于联机分析处理引擎的数据处理方法、装置、设备 |
CN113407587B (zh) * | 2021-07-19 | 2023-10-27 | 北京百度网讯科技有限公司 | 用于联机分析处理引擎的数据处理方法、装置、设备 |
CN113553341A (zh) * | 2021-07-27 | 2021-10-26 | 咪咕文化科技有限公司 | 多维数据分析方法、装置、设备及计算机可读存储介质 |
CN113792079A (zh) * | 2021-11-17 | 2021-12-14 | 腾讯科技(深圳)有限公司 | 数据查询方法、装置、计算机设备和存储介质 |
CN113792079B (zh) * | 2021-11-17 | 2022-02-08 | 腾讯科技(深圳)有限公司 | 数据查询方法、装置、计算机设备和存储介质 |
CN115114354A (zh) * | 2022-08-30 | 2022-09-27 | 广州市玄武无线科技股份有限公司 | 一种分布式数据存储及查询系统 |
CN115114354B (zh) * | 2022-08-30 | 2023-01-06 | 广州市玄武无线科技股份有限公司 | 一种分布式数据存储及查询系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112286954B (zh) | 2022-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112286954B (zh) | 基于混合引擎的多维数据分析方法和系统 | |
CN112286953B (zh) | 多维数据查询方法、装置和电子设备 | |
US11971890B2 (en) | Database management system for optimizing queries via multiple optimizers | |
US7756881B2 (en) | Partitioning of data mining training set | |
WO2020227659A1 (en) | Recommendation model generation and use in a hybrid multi-cloud database environment | |
US8112421B2 (en) | Query selection for effectively learning ranking functions | |
US8239406B2 (en) | Expression tree data structure for representing a database query | |
US20130151535A1 (en) | Distributed indexing of data | |
CN104137095B (zh) | 用于演进分析的系统 | |
US20070112618A1 (en) | Systems and methods for automatic generation of information | |
Lee et al. | Processing and optimizing main memory spatial-keyword queries | |
US11630854B2 (en) | Segmenting users with sparse data utilizing hash partitions | |
Wang et al. | A distance matrix based algorithm for solving the traveling salesman problem | |
CN116628136A (zh) | 基于声明式推理的协同查询处理方法、系统、电子设备 | |
CN115033595B (zh) | 基于超级节点的查询语句处理方法、系统、装置和介质 | |
Keles et al. | Synthesis of partial rankings of points of interest using crowdsourcing | |
US7822740B2 (en) | Estimation of input/output requirements for table probe in join processing | |
CN117971888B (zh) | 数据引擎的确定方法、装置、设备、存储介质及程序产品 | |
US20200167668A1 (en) | Dynamic rule execution order | |
US11907195B2 (en) | Relationship analysis using vector representations of database tables | |
KR20160047239A (ko) | 혼합 워크로드 처리 환경에서 효율적인 데이터 저장을 위한 컬럼 그룹 선택방법 및 장치 | |
CN112286995B (zh) | 一种数据分析方法、装置、服务器、系统及存储介质 | |
US20240143595A1 (en) | Generating execution tracking rows during query execution via a database system | |
US20230063614A1 (en) | Decision support method and system based on graph database | |
CN113032430A (zh) | 一种数据处理方法、装置、介质和计算设备 |
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 |