[发明专利]一种SparkSQL系统中的数据处理方法和装置在审
申请号: | 201611028735.0 | 申请日: | 2016-11-18 |
公开(公告)号: | CN106599062A | 公开(公告)日: | 2017-04-26 |
发明(设计)人: | 李远策;李振炜;白泉;王锋;武志刚 | 申请(专利权)人: | 北京奇虎科技有限公司;奇智软件(北京)有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京市隆安律师事务所11323 | 代理人: | 权鲜枝,何立春 |
地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 sparksql 系统 中的 数据处理 方法 装置 | ||
技术领域
本发明涉及计算机技术领域,具体涉及一种SparkSQL系统中的数据处理方法和装置。
背景技术
SparkSQL是一个使用SQL进行大数据分析的系统,可以进行TB至PB级的数据统计。但是SparkSQL批处理的计算模型,限制了其进行SQL查询的速度。这是由于SparkSQL系统中数据表的原始数据是以文件的形式存储在HDFS(Hadoop Distributed File System,Hadoop分布式文件系统)上的,在对SQL查询请求进行处理时,为从数据表中提取符合条件的记录,需要把相应数据表中的数据逐条读取进行判断,因此不能很好地实现交互式即时查询的效果。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的SparkSQL系统中的数据处理方法和装置。
依据本发明的一个方面,提供了一种SparkSQL系统中的数据处理方法,包括:
为SparkSQL系统中的数据表的指定列建立索引;
当接收到对数据表的查询请求时,判断该请求是否命中具有索引的列;
如果命中,则使用命中的列的索引完成本次查询请求;
如果未命中,则通过遍历所述查询请求对应的数据表完成本次查询请求。
可选地,所述为SparkSQL系统中的数据表的指定列建立索引包括:
为数据表的指定列建立JSON格式的索引,所述索引包括:索引号和数据位置标识。
可选地,所述索引号包括:指定列的列名、该条索引对应的列值;
所述数据位置标识包括:该数据表的存储路径、该条索引对应的数据在该数据表中的偏移量。
可选地,所述为SparkSQL系统中的数据表的指定列建立索引还包括:
将建立的索引保存在指定搜索服务器的文件系统中。
可选地,所述使用命中的列的索引完成本次查询请求包括:
将所述查询请求发送至所述指定搜索服务器,接收所述指定搜索服务器返回的查询结果;其中,所述查询结果为空,或者为一个或多个数据位置标识;
当所述查询结果不为空时,根据所述指定搜索服务器返回的一个或多个数据位置标识,从数据表中读取与相应数据位置标识匹配的数据。
可选地,所述判断该请求是否命中具有索引的列包括:
从所述查询请求中解析出待查询的表名和列名;
根据所述待查询的表名,判断相应的数据表是否存在与待查询的列名对应的索引,若存在则判断为命中,若不存在则判断为未命中。
可选地,所述为SparkSQL系统中的数据表的指定列建立索引还包括:
在该数据表的表结构中标识已建立索引的列;
所述根据所述待查询的表名,判断相应的数据表是否存在与待查询的列名对应的索引包括:
根据所述待查询的表名,从相应数据表的表结构中读取该数据表已建立的索引的列,根据所述待查询的列名判断所述表结构中是否存在与该列名对应的索引。
依据本发明的另一方面,提供了一种SparkSQL系统中的数据处理装置,包括:
索引建立单元,适于为SparkSQL系统中的数据表的指定列建立索引;
请求处理单元,适于在接收到对数据表的查询请求时,判断该请求是否命中具有索引的列;如果命中,则使用命中的列的索引完成本次查询请求;如果未命中,则通过遍历所述查询请求对应的数据表完成本次查询请求。
可选地,所述索引建立单元,适于为数据表的指定列建立JSON格式的索引,所述索引包括:索引号和数据位置标识。
可选地,所述索引号包括:指定列的列名、该条索引对应的列值;
所述数据位置标识包括:该数据表的存储路径、该条索引对应的数据在该数据表中的偏移量。
可选地,所述索引建立单元,适于将建立的索引保存在指定搜索服务器的文件系统中。
可选地,所述请求处理单元,适于将所述查询请求发送至所述指定搜索服务器,接收所述指定搜索服务器返回的查询结果;其中,所述查询结果为空,或者为一个或多个数据位置标识;当所述查询结果不为空时,根据所述指定搜索服务器返回的一个或多个数据位置标识,从数据表中读取与相应数据位置标识匹配的数据。
可选地,所述请求处理单元,适于从所述查询请求中解析出待查询的表名和列名;根据所述待查询的表名,判断相应的数据表是否存在与待查询的列名对应的索引,若存在则判断为命中,若不存在则判断为未命中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司;奇智软件(北京)有限公司,未经北京奇虎科技有限公司;奇智软件(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611028735.0/2.html,转载请声明来源钻瓜专利网。