本发明专利技术公开了一种SparkSQL系统中的数据处理方法和装置。其中所述方法包括:当接收到对SparkSQL系统中的数据表的查询请求时,判断该请求是否命中聚合查询预处理任务的列;如果命中,则将所述查询请求发送至联机分析处理OLAP引擎,接收所述OLAP引擎返回的聚合查询结果;如果未命中,则调用SparkSQL系统的SQL查询模块完成本次查询请求。该技术方案有效地利用了OLAP引擎毫秒级的多维度聚合分析能力,显著地提升了在SparkSQL系统中进行聚合查询的速度。
【技术实现步骤摘要】
一种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系统中的数据表的指定列建立聚合查询预处理任务还包括:在该数据表的表结构中标识聚合查询预处理任务的列;所述根据所述待查询的表名,判断相应的数据表是否存在与待查询的列名对应的聚合查询预处理任务包括:根据所述待查询的表名,从相应数据表的表结构中读取该数据表的聚合查询预处理任务的列,根据所述待查询的列名判断所述表结构中是否存在与该列名对应的聚合查询预处理任务。依据本专利技术的另一方面,提供了一种SparkSQL系统中的数据处理方法,包括:接收为SparkSQL系统中的数据表的指定列建立的聚合查询预处理任务;根据所述聚合查询预处理任务,获取所述数据表的数据并对所述数据表的指定列进行聚合查询,得到聚合查询结果;接收对SparkSQL系统中的数据表的查询请求,根据该请求查找相应的聚合查询结果;将查找到的聚合查询结果返回给所述请求的发送方。可选地,所述根据所述聚合查询预处理任务,获取所述数据表的数据并对所述数据表的指定列进行聚合查询,得到聚合查询结果包括:接收以数据流方式推送的,当所述数据表的指定列的数据发生改变时产生的增量数据,和/或,在聚合查询预处理任务执行的时间点发送数据获取请求,接收返回的所述数据表的全部数据,或所述数据表自上一次任务执行的时间点开始,因指定列的数据改变产生的增量数据;根据已接收到的所述数据表的最新数据,对数据表的指定列进行聚合查询,得到聚合查询结果。可选地,根据所述聚合查询预处理任务,获取所述数据表的数据并对所述数据表的指定列进行聚合查询,得到聚合查询结果包括:根据选定的至少一种聚合查询方法,和/或自定义的至少一种聚合查询方法,利用获取的所述数据表的数据,对所述数据表的指定列进行聚合查询,得到聚合查询结果。依据本专利技术的又一方面,提供了一种SparkSQL系统中的数据处理装置,包括:请求处理单元,适于当接收到对SparkSQL系统中的数据表的查询请求时,判断该请求是否命中聚合查询预处理任务的列;如果命中,则将所述查询请求发送至联机分析处理OLAP引擎,接收所述OLAP引擎返回的聚合查询结果;如果未命中,则调用SparkSQL系统的SQL查询模块完成本次查询请求。可选地,该装置还包括:聚合查询预处理单元,适于为SparkSQL系统中的数据表的指定列建立聚合查询预处理任务,以使所述OLAP引擎根据所述聚合查询预处理任务,对所述数据表的指定列进行聚合查询,得到聚合查询结果。可选地,所述聚合查询预处理单元,适于当所述数据表的指定列的数据发生改变时,将增量数据以数据流方式推送至所述OLAP引擎,和/或,记录聚合查询预处理任务执行的时间点,在接收到所述OLAP引擎发送的数据获取请求时,将所述数据表的全部数据,或所述数据表自上一记录的时间点开始,因指定列的数据改变产生的增量数据返回给所述OLAP引擎。可选地,所述聚合查询预处理单元,适于选定所述OLAP引擎中的至少一种聚合查询方法,和/或自定义至少一种聚合查询方法。可选地,所述请求处理单元,适于从所述查询请求中解析出待查询的表名和列名;根据所述待查询的表名,判断相应的数据表是否存在与待查询的列名对应的聚合查询预处理任务,若存在则判断为命中,若不存在则判断为未命中。可选地,所述请求处理单元,适于从所述查询请求中解析出类型为聚合查询请求的子请求;从所述子请求中解析出待查询的表名和列名。可选地,所述请求处理单元,还适于在该数据表的表结构中标识聚合查询预处理任务的列;所述根据所述待查询的表名,判断相应的数据表是否存在与待查询的列名对应的聚合查询预处理任务包括:根据所述待查询的表名,从相应数据表的表结构中读取该数据表的聚合查询预处理任务的列,根据所述待查询的列名判断所述表结构中是否存在与该列名对应的聚合查询预处理任务。依据本专利技术的再一方面,提供了一种SparkSQL系统中的数据处理装置,包括:数据通信单元,适于接收为SparkSQL系统中的数据表的指定列建立的聚合查询预处理任务;根据所述聚合查询预处理任务,获取所述数据表的数据;以及适于接收对SparkSQL系统中的数据表的查询请求,将聚合查询单元查找到的相应的聚合查询结果返回给所述请求的发送方;所述聚合查询单元,适于根据所述聚合查询预处理任务和所述数据表的数据,对所述数据表的指定列进行聚合查询,得到聚合查询结果;以及适于根据对SparkSQL系统中的数据表的查询请求,查找到相应的聚合查询结果。可选地,所述数据通信单元,适于接收以数据流方式推送的,当所述数据表的指定列的数据发生改变时产生的增量数据,和/或,在聚合查询预处理任务执行的时间点发送数据获取请求,接收返回的所述数据表的全部数据,或所述数据表自上一次任务执行的时间点开始,因指定列的数据改变产生的增量数据;所述聚合查询单元,适本文档来自技高网...
【技术保护点】
一种SparkSQL系统中的数据处理方法,其中,该方法包括:当接收到对SparkSQL系统中的数据表的查询请求时,判断该请求是否命中聚合查询预处理任务的列;如果命中,则将所述查询请求发送至联机分析处理OLAP引擎,接收所述OLAP引擎返回的聚合查询结果;如果未命中,则调用SparkSQL系统的SQL查询模块完成本次查询请求。
【技术特征摘要】
1.一种SparkSQL系统中的数据处理方法,其中,该方法包括:当接收到对SparkSQL系统中的数据表的查询请求时,判断该请求是否命中聚合查询预处理任务的列;如果命中,则将所述查询请求发送至联机分析处理OLAP引擎,接收所述OLAP引擎返回的聚合查询结果;如果未命中,则调用SparkSQL系统的SQL查询模块完成本次查询请求。2.如权利要求1的方法,其中,该方法还包括:为SparkSQL系统中的数据表的指定列建立聚合查询预处理任务,以使所述OLAP引擎根据所述聚合查询预处理任务,获取所述数据表的数据,对所述数据表的指定列进行聚合查询,得到聚合查询结果。3.一种SparkSQL系统中的数据处理方法,其中,该方法包括:接收为SparkSQL系统中的数据表的指定列建立的聚合查询预处理任务;根据所述聚合查询预处理任务,获取所述数据表的数据并对所述数据表的指定列进行聚合查询,得到聚合查询结果;接收对SparkSQL系统中的数据表的查询请求,根据该请求查找相应的聚合查询结果;将查找到的聚合查询结果返回给所述请求的发送方。4.如权利要求3所述的方法,其中,所述根据所述聚合查询预处理任务,获取所述数据表的数据并对所述数据表的指定列进行聚合查询,得到聚合查询结果包括:接收以数据流方式推送的,当所述数据表的指定列的数据发生改变时产生的增量数据,和/或,在聚合查询预处理任务执行的时间点发送数据获取请求,接收返回的所述数据表的全部数据,或所述数据表自上一次任务执行的时间点开始,因指定列的数据改变产生的增量数据;根据已接收到的所述数据表的最新数据,对数据表的指定列进行聚合查询,得到聚合查询结果。5.如权利要求3所述的方法,其中,根据所述聚合查询预处理任务,获取所述数据表的数据并对所述数据表的指定列进行聚合查询,得到聚合查询结果包括:根据选定的至少一种聚合查询方法,和/或自定义的至少一种聚合查询方法,利用获取的所述数据表的数据,对所述数据表的指定列进行聚合查询,得到聚合查询结果。6.一种Spark...
【专利技术属性】
技术研发人员:李远策,李振炜,
申请(专利权)人:北京奇虎科技有限公司,奇智软件北京有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。