CN108763573A - 一种基于机器学习的olap引擎路由方法及系统 - Google Patents
一种基于机器学习的olap引擎路由方法及系统 Download PDFInfo
- Publication number
- CN108763573A CN108763573A CN201810574436.XA CN201810574436A CN108763573A CN 108763573 A CN108763573 A CN 108763573A CN 201810574436 A CN201810574436 A CN 201810574436A CN 108763573 A CN108763573 A CN 108763573A
- Authority
- CN
- China
- Prior art keywords
- engine
- sql
- olap
- machine learning
- enforcement
- 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.)
- Pending
Links
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/40—Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
- G06F16/41—Indexing; Data structures therefor; Storage structures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于机器学习的OLAP引擎路由方法及系统,所述方法包括:对SQL语句的特征提取,利用机器学习的方法选择执行引擎,对于从SQL语句中提取出来的特征组成的样本,若样本集中不包含,则建立离线任务,资源充足时以不同的执行引擎执行离线任务,比较不同执行引擎的性能,性能最佳的引擎作为该样本的类标签,再以新的样本集重新训练模型。本发明通过机器学习的方法,以增量的方式训练SQL查询执行引擎选择的分类模型,该方法能够实现对OLAP引擎路由的准确,有效,动态的调整及选择。
Description
技术领域
本发明属于互联网和大数据应用技术领域,具体涉及一种基于机器学习的OLAP引擎路由方法及系统。
背景技术
SQL(Structured Query Language,结构化查询语句)早期是MySQL,Oracle等传统关系型数据库的操作语言,可以完成对数据库的增删改查等操作。随着信息技术特别是互联网技术的发展,数据的量级发生了爆炸式的增长,传统的关系型数据库很难满足人们的需求。对于较大规模的数据,传统的关系型数据库往往难以存储且查询速度很慢,大规模的数据通常存放在HBase等新型数据库中,大部分数据仓库都可以利用SQL语句完成查询任务。针对新型的数据库,出现了各种OLAP引擎,如hive,presto,kylin,spark等,不同的执行引擎有不同的优点,不能笼统地评估它们的优劣。
目前,针对OLAP引擎的选择,主要是根据具体的业务场景,数据量的大小,查询语句的复杂程度来选择不同的执行引擎。程序开发人员在技术选型的时候,会根据当前或者是可预见的未来的情况,选定某种执行引擎,完成数据的查询。
但是,发明人在本申请的研究过程中发现,在实际应用中,绝大多数的数据源都存在不止一张数据表,而不同表的数据量存在明显差异。而且每张表的数据量都是动态变化的,特别是互联网企业,随着用户量的增长,产生的数据量更是以指数增长。因此,现阶段的通常做法很难为每张数据表在不同的阶段选定最佳的OLAP引擎。
发明内容
本发明所要解决的技术问题在于,提供一种基于机器学习的OLAP引擎路由方法及系统,以针对不同SQL执行引擎在不同场景下性能比较结果存在差异的情况,对SQL语句进行特征提取,利用机器学习的方法,构建执行引擎选择模型,实现对执行引擎的筛选,将执行引擎的筛选细化到具体语句。同时,针对样本集中不具备的样本,添加到样本集中,离线生成新的模型,通过不断添加最新环境下的样本数据,达到当前环境下训练出最佳选择模型的目的。
本发明所采用的技术方案如下:
第一方面,提供了一种基于机器学习的OLAP引擎路由方法,所述方法包括:
步骤S1:对输入的SQL语句进行特征提取,SQL语句是一种结构化的查询语句,按照SQL语句的结构特征,提取每部分的值,作为各个特征值;
步骤S2:将特征化后的SQL语句作为输入,在OLAP引擎路由模块中通过选择相应的执行引擎执行查询操作;
步骤S3:选中的执行引擎执行SQL语句,并返回执行结果;
步骤S4:启动异步执行策略,将特征化的SQL语句存储在存储介质上;
步骤S5:空闲时(如时间为凌晨),比较存储介质上的特征化后的SQL语句与样本集的SQL特征,如样本集中不存在该条记录,则将该记录作为新样本加入样本集;
步骤S6:样本集准备完成后,利用样本集训练OLAP引擎路由模型;
步骤S7:将训练得到的选择引擎发布成服务,替换原有选择引擎。
本发明的第二方面,提供了一种基于机器学习的OLAP引擎路由系统,所述系统包括:
执行引擎选择模块,用于对数据引擎的选择;
OLAP引擎模块,包含多种执行引擎,执行SQL查询;
数据收集模块,用于对存储执行的SQL,筛选SQL并获取新样本,补充训练样本集;
模型训练模块,用于利用样本数据集训练执行引擎选择模型;
模型发布模块,用于发布训练得到的选择模型,并替换原有引擎,作为新的数据选择模型。
与现有技术相比,本发明所提供的一种基于机器学习的OLAP引擎路由方法及系统,具有如下技术效果:
1、将数据库执行引擎选择的粒度减小到了SQL语句。针对现在流行的多种OLAP引擎,在同一时期,同一阶段通常只会使用一种执行引擎,选择的粒度太大,针对每次SQL查询而言,使用的执行引擎通常不是最优的。本发明将执行引擎的选择细化到SQL级别,使得每次SQL的执行选择的引擎都近乎最佳,提升了查询的性能。
2、依靠选择装置动态选择执行引擎,避免了工程师在技术选型时选择执行引擎主观性,一旦项目对接本装置,也避免了数据量级变化后切换不同数据执行引擎的人力成本,工程师可以将主要的精力放在项目的主要业务上,提高了效率。
附图说明
图1为本发明实施例所述的基于机器学习的OLAP引擎路由方法的流程示意图。
图2为本发明实施例所述的获取模型训练样本集并不断更新样本集的流程图;
图3为本发明实施例所述的新的模型发布的过程原理图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明通过机器学习的方法,以增量的方式训练SQL查询执行引擎选择的分类模型,提供了一种准确,有效,动态的调整的方法及系统。
下面结合具体实施例及其附图对本发明实施例提供的基于机器学习的OLAP引擎路由方法及系统作进一步说明。
实施例一
在联机分析处理的场景中,对分析数据的查询速度要求非常高,因此查询花费的时间是主要的性能衡量指标。本发明的实施例一描述的是一次联机分析处理的场景,如图1所示的流程图,联机分析处理的请求被转换成一次SQL查询。
SQL语句是结构化的,可以按照select、from、where、group by、order by、limit等特点,将一条完整的SQL语句划分成几个小片段,并将每个片段作为一个特征,完成SQL语句的特征化处理。select、from、where、group by、order by、limit均为MySQL数据库的查询语句。select为选择的列,from为表,where为查询的条件,group by为分组属性,having为分组过滤的条件,order by为排序属性,limit为起始记录位置,取记录的条数。
配合参照图2所示,将特征化后的SQL语句作为选择引擎的输入,经过选择模型后,找到对应的选择模型。例如,选择引擎是基于随机森林训练出来的分类模型,该分类模型的类别是presto、kylin、hive等OLAP引擎,SQL语句作为输入,类别未知,经过模型分类后,命中上述执行引擎的一种。
被命中的SQL执行引擎执行该SQL,并且返回查询结果。
将该条SQL语句存储在数据库中,作为训练样本集的备选样本。
启动异步执行策略,整个系统的资源空闲时(一般可以设置为凌晨2点),开启一个新任务,新的任务主要是为模型训练准备数据,模型训练和发布。
逐条取出上次开启新任务后存入数据库的SQL语句,将特征化的SQL语句存储在存储介质上,使用系统中的所有引擎执行该SQL,空闲时,比较各个执行引擎查询使用的正确性和时间,比较不同执行引擎的性能,性能最佳的引擎作为该样本的类标签,再以新的样本集重新训练模型。判断样本集中是否包含特征化后的SQL语句,如样本集中不存在该条记录,添加到样本集中,离线生成新的模型,通过不断添加最新环境下的样本数据,达到当前环境下训练出最佳选择模型的目的。
在SQL执行不报错的前提下,选择时间最短的OLAP引擎,作为该条SQL的类标签,添加到训练集。
训练集准备完成后,训练OLAP引擎路由模型。
将训练得到的选择引擎发布成服务,替换原有选择引擎。
本发明实施例所公开的一种基于机器学习的OLAP引擎路由方法,将数据库执行引擎选择的粒度减小到了SQL语句。针对现在流行的多种OLAP引擎,在同一时期,同一阶段通常只会使用一种执行引擎,选择的粒度太大,针对每次SQL查询而言,使用的执行引擎通常不是最优的。本发明将执行引擎的选择细化到SQL级别,使得每次SQL的执行选择的引擎都近乎最佳,提升了查询的性能。
实施例二
本实施例提供了一种基于机器学习的OLAP引擎路由系统,所述系统包括:
执行引擎选择模块,用于对数据引擎的选择;在选择引擎模块之前,按照SQL语句结构化的特点,将SQL语句分割成select、from、where、group by、order by、limit等部分,完成数据挖掘前期所需的特征抽取的工作。
OLAP引擎模块,包含多种执行引擎,执行SQL查询;所述执行引擎至少包含hive,presto,kylin,spark四种OLAP执行引擎,SQL语句作为输入,经过模选择模块后,命中上述执行引擎的一种,命中的引擎为近乎最佳的OLAP引擎。
数据收集模块,用于对存储执行的SQL,筛选SQL并获取新样本,补充训练样本集;SQL查询会先根据当前的选择模型,选择一个近乎最佳的引擎,快速返回结果,将该SQL更新到样本集,并且训练新的选择模型的任务作为空闲任务执行。空闲时,比较样本集中不包含的SQL语句在不同执行引擎下的查询效率,选择最优的作为类标签,样本数据可以反映当前环境下,各引擎查询相应内容的性能。
模型训练模块,用于利用样本数据集训练执行引擎选择模型;
模型发布模块,用于发布训练得到的选择模型,并替换原有引擎,作为新的数据选择模型。
本发明实施例依靠执行引擎选择模块动态选择执行引擎,避免了工程师在技术选型时选择执行引擎主观性,一旦项目对接本装置,也避免了数据量级变化后切换不同数据执行引擎的人力成本,提高了工作效率。
本发明通过机器学习的方法,以增量的方式训练SQL查询执行引擎选择的分类模型,该方法能够实现对OLAP引擎路由的准确,有效,动态的调整及选择。
上述说明示出并描述了本发明的若干推荐实施例,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述指导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
Claims (8)
1.一种基于机器学习的OLAP引擎路由方法,其特征在于,所述方法包括:
特征化SQL语句;
应用机器学习中的分类算法,基于SQL语句特征构建出OLAP引擎的选择模型;
利用资源空闲时间,更新训练集的样本,不断加入当前环境下的样本数据,然后训练出新的选择模型。
2.如权利要求1所述的基于机器学习的OLAP引擎路由方法,其特征在于,所述特征化SQL语句的过程具体包括:
按照SQL语句的结构特征,将SQL语句分割成select、from、where、group by、order by、limit多个片段,每个片段作为一个特征。
3.如权利要求1所述的基于机器学习的OLAP引擎路由方法,其特征在于,将特征化后的SQL语句作为输入,利用SQL执行引擎的选择模型,选择近乎最佳的OLAP引擎。
4.如权利要求3所述的基于机器学习的OLAP引擎路由方法,其特征在于,所述选择模型为基于随机森林训练出来的分类模型,该分类模型的类别至少包括hive,presto,kylin,spark四种OLAP执行引擎,SQL语句作为输入,经过模型分类后,命中上述执行引擎的一种。
5.如权利要求4所述的基于机器学习的OLAP引擎路由方法,其特征在于,被命中的SQL执行引擎执行该SQL,并且返回查询结果;同时,该条SQL语句存储在数据库中,作为训练样本集的备选样本。
6.如权利要求5所述的基于机器学习的OLAP引擎路由方法,其特征在于,启动异步执行策略,将特征化的SQL语句存储在存储介质上,空闲时,比较存储介质上的特征化后的SQL语句与样本集的SQL特征,如样本集中不存在该条记录,则将该记录作为新样本加入样本集。
7.如权利要求1所述的基于机器学习的OLAP引擎路由方法,其特征在于,更新训练集的样本数据具体过程包括:空闲时,比较样本集中不包含的SQL语句在不同执行引擎下的查询效率,选择最优的作为类标签,添加到训练集。
8.一种基于机器学习的OLAP引擎路由系统,其特征在于,所述系统包括:
执行引擎选择模块,用于对数据引擎的选择;
OLAP引擎模块,包含多种执行引擎,执行SQL查询;
数据收集模块,用于对存储执行的SQL,筛选SQL并获取新样本,补充训练样本集;
模型训练模块,用于利用样本数据集训练执行引擎选择模型;
模型发布模块,用于发布训练得到的选择模型,并替换原有引擎,作为新的数据选择模型。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810574436.XA CN108763573A (zh) | 2018-06-06 | 2018-06-06 | 一种基于机器学习的olap引擎路由方法及系统 |
PCT/CN2019/075033 WO2019233117A1 (zh) | 2018-06-06 | 2019-02-14 | 一种联机分析处理引擎的路由方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810574436.XA CN108763573A (zh) | 2018-06-06 | 2018-06-06 | 一种基于机器学习的olap引擎路由方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108763573A true CN108763573A (zh) | 2018-11-06 |
Family
ID=63999030
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810574436.XA Pending CN108763573A (zh) | 2018-06-06 | 2018-06-06 | 一种基于机器学习的olap引擎路由方法及系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN108763573A (zh) |
WO (1) | WO2019233117A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110297858A (zh) * | 2019-05-27 | 2019-10-01 | 苏宁云计算有限公司 | 执行计划的优化方法、装置、计算机设备和存储介质 |
WO2019233117A1 (zh) * | 2018-06-06 | 2019-12-12 | 众安信息技术服务有限公司 | 一种联机分析处理引擎的路由方法、装置及设备 |
CN111966727A (zh) * | 2020-08-12 | 2020-11-20 | 北京海致网聚信息技术有限公司 | 基于Spark和Hive的分布式OLAP即席查询方法 |
CN113127509A (zh) * | 2019-12-31 | 2021-07-16 | 中国移动通信集团重庆有限公司 | PaaS平台中SQL执行引擎的适配方法及装置 |
CN113342843A (zh) * | 2021-07-06 | 2021-09-03 | 多点生活(成都)科技有限公司 | 大数据在线分析方法和系统 |
CN113704286A (zh) * | 2020-05-20 | 2021-11-26 | 中国移动通信集团重庆有限公司 | 引擎选择方法、装置及计算设备 |
Citations (7)
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 |
US20130185250A1 (en) * | 2012-01-18 | 2013-07-18 | Sap Ag | System and methods for integrating software layers for olap |
CN104133858A (zh) * | 2014-07-15 | 2014-11-05 | 武汉邮电科学研究院 | 基于列存储的智能双引擎分析系统及方法 |
CN106649630A (zh) * | 2016-12-07 | 2017-05-10 | 乐视控股(北京)有限公司 | 数据查询方法及装置 |
CN107124365A (zh) * | 2017-04-25 | 2017-09-01 | 曙光信息产业(北京)有限公司 | 一种基于机器学习的路由策略的获取系统 |
CN107704608A (zh) * | 2017-10-17 | 2018-02-16 | 北京览群智数据科技有限责任公司 | 一种olap多维分析和数据挖掘系统 |
CN108073582A (zh) * | 2016-11-08 | 2018-05-25 | 中移(苏州)软件技术有限公司 | 一种计算框架选择方法和装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100383784C (zh) * | 2004-01-02 | 2008-04-23 | 联想(北京)有限公司 | 联机分析处理系统及方法 |
CN103123653A (zh) * | 2013-03-15 | 2013-05-29 | 山东浪潮齐鲁软件产业股份有限公司 | 基于贝叶斯分类学习的搜索引擎检索排序方法 |
CN104376065B (zh) * | 2014-11-05 | 2018-09-18 | 百度在线网络技术(北京)有限公司 | 检索词重要度的确定方法和装置 |
CN106682067B (zh) * | 2016-11-08 | 2018-05-01 | 浙江邦盛科技有限公司 | 一种基于交易数据的机器学习反欺诈监测系统 |
CN107368892B (zh) * | 2017-06-07 | 2020-06-16 | 无锡小天鹅电器有限公司 | 基于机器学习的模型训练方法和装置 |
CN108763573A (zh) * | 2018-06-06 | 2018-11-06 | 众安信息技术服务有限公司 | 一种基于机器学习的olap引擎路由方法及系统 |
-
2018
- 2018-06-06 CN CN201810574436.XA patent/CN108763573A/zh active Pending
-
2019
- 2019-02-14 WO PCT/CN2019/075033 patent/WO2019233117A1/zh active Application Filing
Patent Citations (7)
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 |
US20130185250A1 (en) * | 2012-01-18 | 2013-07-18 | Sap Ag | System and methods for integrating software layers for olap |
CN104133858A (zh) * | 2014-07-15 | 2014-11-05 | 武汉邮电科学研究院 | 基于列存储的智能双引擎分析系统及方法 |
CN108073582A (zh) * | 2016-11-08 | 2018-05-25 | 中移(苏州)软件技术有限公司 | 一种计算框架选择方法和装置 |
CN106649630A (zh) * | 2016-12-07 | 2017-05-10 | 乐视控股(北京)有限公司 | 数据查询方法及装置 |
CN107124365A (zh) * | 2017-04-25 | 2017-09-01 | 曙光信息产业(北京)有限公司 | 一种基于机器学习的路由策略的获取系统 |
CN107704608A (zh) * | 2017-10-17 | 2018-02-16 | 北京览群智数据科技有限责任公司 | 一种olap多维分析和数据挖掘系统 |
Non-Patent Citations (1)
Title |
---|
魏剑龙: "面向海量数据的分布式OLAP引擎的研究与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019233117A1 (zh) * | 2018-06-06 | 2019-12-12 | 众安信息技术服务有限公司 | 一种联机分析处理引擎的路由方法、装置及设备 |
CN110297858A (zh) * | 2019-05-27 | 2019-10-01 | 苏宁云计算有限公司 | 执行计划的优化方法、装置、计算机设备和存储介质 |
CN110297858B (zh) * | 2019-05-27 | 2021-11-09 | 苏宁云计算有限公司 | 执行计划的优化方法、装置、计算机设备和存储介质 |
CN113127509A (zh) * | 2019-12-31 | 2021-07-16 | 中国移动通信集团重庆有限公司 | PaaS平台中SQL执行引擎的适配方法及装置 |
CN113704286A (zh) * | 2020-05-20 | 2021-11-26 | 中国移动通信集团重庆有限公司 | 引擎选择方法、装置及计算设备 |
CN111966727A (zh) * | 2020-08-12 | 2020-11-20 | 北京海致网聚信息技术有限公司 | 基于Spark和Hive的分布式OLAP即席查询方法 |
CN113342843A (zh) * | 2021-07-06 | 2021-09-03 | 多点生活(成都)科技有限公司 | 大数据在线分析方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2019233117A1 (zh) | 2019-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108763573A (zh) | 一种基于机器学习的olap引擎路由方法及系统 | |
CN109240901B (zh) | 性能分析方法、性能分析装置、存储介质和电子设备 | |
CN107783985B (zh) | 一种分布式数据库查询方法、装置及管理系统 | |
CN106227788A (zh) | 一种以Lucene为基础的数据库查询方法 | |
CN108509437A (zh) | 一种ElasticSearch查询加速方法 | |
CN103164449A (zh) | 一种搜索结果的展现方法与装置 | |
CN108304444A (zh) | 信息查询方法及装置 | |
CN107491487A (zh) | 一种全文数据库架构及位图索引创建、数据查询方法、服务器及介质 | |
CN104899314A (zh) | 一种数据仓库的血统分析方法和装置 | |
CN109947796B (zh) | 一种分布式数据库系统查询中间结果集的缓存方法 | |
CN107943952A (zh) | 一种基于Spark框架进行全文检索的实现方法 | |
CN109446358A (zh) | 一种基于id缓存技术的图数据库加速装置和方法 | |
US20200334314A1 (en) | Emergency disposal support system | |
CN106649687A (zh) | 大数据联机分析处理方法及装置 | |
CN110134717A (zh) | 科技统计数据查询系统 | |
CN103440249A (zh) | 一种非结构化数据快速检索的系统及方法 | |
CN109408616A (zh) | 内容相似性短文本查询方法、设备、系统及存储介质 | |
CN112015918A (zh) | 数据处理方法及装置 | |
JP2013033473A (ja) | データ中のあいまいな箇所の検索 | |
CN111046059B (zh) | 基于分布式数据库集群的低效sql语句分析方法及系统 | |
CN107291938A (zh) | 订单查询系统及方法 | |
CN113918533B (zh) | 一种基于大数据方向的rcs统一消息云服务系统的使用方法 | |
CN116049193A (zh) | 数据存储方法及装置 | |
CN109460467A (zh) | 一种网络信息分类体系构建方法 | |
CN108121807A (zh) | Hadoop环境下多维索引结构OBF-Index的实现方法 |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1260034 Country of ref document: HK |
|
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181106 |