[发明专利]一种SparkSQL系统中的数据处理方法和装置有效
申请号: | 201611016865.2 | 申请日: | 2016-11-18 |
公开(公告)号: | CN106844415B | 公开(公告)日: | 2021-08-20 |
发明(设计)人: | 李远策;李振炜 | 申请(专利权)人: | 北京奇虎科技有限公司;奇智软件(北京)有限公司 |
主分类号: | G06F16/242 | 分类号: | G06F16/242;G06F16/2455 |
代理公司: | 北京恒博知识产权代理有限公司 11528 | 代理人: | 范胜祥 |
地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 sparksql 系统 中的 数据处理 方法 装置 | ||
本发明公开了一种SparkSQL系统中的数据处理方法和装置。其中所述方法包括:当接收到对SparkSQL系统中的数据表的查询请求时,判断该请求是否命中聚合查询预处理任务的列;如果命中,则将所述查询请求发送至联机分析处理OLAP引擎,接收所述OLAP引擎返回的聚合查询结果;如果未命中,则调用SparkSQL系统的SQL查询模块完成本次查询请求。该技术方案有效地利用了OLAP引擎毫秒级的多维度聚合分析能力,显著地提升了在SparkSQL系统中进行聚合查询的速度。
技术领域
本发明涉及计算机技术领域,具体涉及一种SparkSQL系统中的数据处理方法和装置。
背景技术
SparkSQL是一个使用SQL进行大数据分析的系统,可以进行TB至PB级的数据统计。但是SparkSQL批处理的计算模型,限制了其进行SQL查询的速度。例如在进行“统计user表中同名人的平均年龄”这样的聚合查询时,SparkSQL会把该表中的所需要的数据集全部读取到内存中进行聚合计算,这样非常缓慢。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的SparkSQL系统中的数据处理方法和装置。
依据本发明的一个方面,提供了一种SparkSQL系统中的数据处理方法,包括:
当接收到对SparkSQL系统中的数据表的查询请求时,判断该请求是否命中聚合查询预处理任务的列;
如果命中,则将所述查询请求发送至联机分析处理OLAP引擎,接收所述OLAP引擎返回的聚合查询结果;
如果未命中,则调用SparkSQL系统的SQL查询模块完成本次查询请求。
可选地,该方法还包括:
为SparkSQL系统中的数据表的指定列建立聚合查询预处理任务,以使所述OLAP引擎根据所述聚合查询预处理任务,获取所述数据表的数据,对所述数据表的指定列进行聚合查询,得到聚合查询结果。
可选地,所述为SparkSQL系统中的数据表的指定列建立聚合查询预处理任务包括:
当所述数据表的指定列的数据发生改变时,将增量数据以数据流方式推送至所述OLAP引擎,
和/或,
记录聚合查询预处理任务执行的时间点,在接收到所述OLAP引擎发送的数据获取请求时,将所述数据表的全部数据,或所述数据表自上一记录的时间点开始,因指定列的数据改变产生的增量数据返回给所述OLAP引擎。
可选地,所述为SparkSQL系统中的数据表的指定列建立聚合查询预处理任务包括:
选定所述OLAP引擎中的至少一种聚合查询方法,和/或自定义至少一种聚合查询方法。
可选地,所述判断该请求是否命中聚合查询预处理任务的列包括:
从所述查询请求中解析出待查询的表名和列名;
根据所述待查询的表名,判断相应的数据表是否存在与待查询的列名对应的聚合查询预处理任务,若存在则判断为命中,若不存在则判断为未命中。
可选地,所述从所述查询请求中解析出待查询的表名和列名包括:
从所述查询请求中解析出类型为聚合查询请求的子请求;
从所述子请求中解析出待查询的表名和列名。
可选地,所述为SparkSQL系统中的数据表的指定列建立聚合查询预处理任务还包括:
在该数据表的表结构中标识聚合查询预处理任务的列;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司;奇智软件(北京)有限公司,未经北京奇虎科技有限公司;奇智软件(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611016865.2/2.html,转载请声明来源钻瓜专利网。