一种SparkSQL系统中的数据处理方法和装置制造方法及图纸

技术编号:15228307 阅读:130 留言:0更新日期:2017-04-27 12:51
本发明专利技术公开了一种SparkSQL系统中的数据处理方法和装置,其中方法包括:为SparkSQL系统中的数据表的指定列建立索引;当接收到对数据表的查询请求时,判断该请求是否命中具有索引的列;如果命中,则使用命中的列的索引完成本次查询请求;如果未命中,则通过遍历所述查询请求对应的数据表完成本次查询请求。该技术方案通过为SparkSQL系统中数据表的指定列建立索引的方式显著提高了对SparkSQL系统中数据表的查询速度,在大数据场景下,如果查询请求命中具有索引的列,相比于利用SparkSQL提供的查询方式会有指数级的性能提升,对大数据查询具有极大意义。

【技术实现步骤摘要】

本专利技术涉及计算机
,具体涉及一种SparkSQL系统中的数据处理方法和装置。
技术介绍
SparkSQL是一个使用SQL进行大数据分析的系统,可以进行TB至PB级的数据统计。但是SparkSQL批处理的计算模型,限制了其进行SQL查询的速度。这是由于SparkSQL系统中数据表的原始数据是以文件的形式存储在HDFS(HadoopDistributedFileSystem,Hadoop分布式文件系统)上的,在对SQL查询请求进行处理时,为从数据表中提取符合条件的记录,需要把相应数据表中的数据逐条读取进行判断,因此不能很好地实现交互式即时查询的效果。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的SparkSQL系统中的数据处理方法和装置。依据本专利技术的一个方面,提供了一种SparkSQL系统中的数据处理方法,包括:为SparkSQL系统中的数据表的指定列建立索引;当接收到对数据表的查询请求时,判断该请求是否命中具有索引的列;如果命中,则使用命中的列的索引完成本次查询请求;如果未命中,则通过遍历所述查询请求对应的数据表完成本次查询请求。可选地,所述为SparkSQL系统中的数据表的指定列建立索引包括:为数据表的指定列建立JSON格式的索引,所述索引包括:索引号和数据位置标识。可选地,所述索引号包括:指定列的列名、该条索引对应的列值;所述数据位置标识包括:该数据表的存储路径、该条索引对应的数据在该数据表中的偏移量。可选地,所述为SparkSQL系统中的数据表的指定列建立索引还包括:将建立的索引保存在指定搜索服务器的文件系统中。可选地,所述使用命中的列的索引完成本次查询请求包括:将所述查询请求发送至所述指定搜索服务器,接收所述指定搜索服务器返回的查询结果;其中,所述查询结果为空,或者为一个或多个数据位置标识;当所述查询结果不为空时,根据所述指定搜索服务器返回的一个或多个数据位置标识,从数据表中读取与相应数据位置标识匹配的数据。可选地,所述判断该请求是否命中具有索引的列包括:从所述查询请求中解析出待查询的表名和列名;根据所述待查询的表名,判断相应的数据表是否存在与待查询的列名对应的索引,若存在则判断为命中,若不存在则判断为未命中。可选地,所述为SparkSQL系统中的数据表的指定列建立索引还包括:在该数据表的表结构中标识已建立索引的列;所述根据所述待查询的表名,判断相应的数据表是否存在与待查询的列名对应的索引包括:根据所述待查询的表名,从相应数据表的表结构中读取该数据表已建立的索引的列,根据所述待查询的列名判断所述表结构中是否存在与该列名对应的索引。依据本专利技术的另一方面,提供了一种SparkSQL系统中的数据处理装置,包括:索引建立单元,适于为SparkSQL系统中的数据表的指定列建立索引;请求处理单元,适于在接收到对数据表的查询请求时,判断该请求是否命中具有索引的列;如果命中,则使用命中的列的索引完成本次查询请求;如果未命中,则通过遍历所述查询请求对应的数据表完成本次查询请求。可选地,所述索引建立单元,适于为数据表的指定列建立JSON格式的索引,所述索引包括:索引号和数据位置标识。可选地,所述索引号包括:指定列的列名、该条索引对应的列值;所述数据位置标识包括:该数据表的存储路径、该条索引对应的数据在该数据表中的偏移量。可选地,所述索引建立单元,适于将建立的索引保存在指定搜索服务器的文件系统中。可选地,所述请求处理单元,适于将所述查询请求发送至所述指定搜索服务器,接收所述指定搜索服务器返回的查询结果;其中,所述查询结果为空,或者为一个或多个数据位置标识;当所述查询结果不为空时,根据所述指定搜索服务器返回的一个或多个数据位置标识,从数据表中读取与相应数据位置标识匹配的数据。可选地,所述请求处理单元,适于从所述查询请求中解析出待查询的表名和列名;根据所述待查询的表名,判断相应的数据表是否存在与待查询的列名对应的索引,若存在则判断为命中,若不存在则判断为未命中。可选地,所述索引建立单元,还适于在该数据表的表结构中标识已建立索引的列;所述请求处理单元,适于根据所述待查询的表名,从相应数据表的表结构中读取该数据表已建立的索引的列,根据所述待查询的列名判断所述表结构中是否存在与该列名对应的索引。由上述可知,本专利技术的技术方案,通过为SparkSQL系统中的数据表的指定列建立索引,在接收到对数据表的查询请求时,判断该请求是否命中具有索引的列,如果命中,则使用命中的列的索引完成本次查询请求;如果未命中,则通过遍历查询请求对应的数据表完成本次查询请求。该技术方案通过为SparkSQL系统中数据表的指定列建立索引的方式显著提高了对SparkSQL系统中数据表的查询速度,在大数据场景下,如果查询请求命中具有索引的列,相比于利用SparkSQL提供的查询方式会有指数级的性能提升,对大数据查询具有极大意义。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1示出了根据本专利技术一个实施例的一种SparkSQL系统中的数据处理方法的流程示意图;图2示出了根据本专利技术一个实施例的一种SparkSQL系统中的数据处理装置的结构示意图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。图1示出了根据本专利技术一个实施例的一种SparkSQL系统中的数据处理方法的流程示意图,如图1所示,该方法包括:步骤S110,为SparkSQL系统中的数据表的指定列建立索引。步骤S120,当接收到对数据表的查询请求时,判断该请求是否命中具有索引的列。步骤S130,如果命中,则使用命中的列的索引完成本次查询请求。步骤S140,如果未命中,则通过遍历查询请求对应的数据表完成本次查询请求。可见,图1所示的方法,通过为SparkSQL系统中的数据表的指定列建立索引,在接收到对数据表的查询请求时,判断该请求是否命中具有索引的列,如果命中,则使用命中的列的索引完成本次查询请求;如果未命中,则通过遍历查询请求对应的数据表完成本次查询请求。该技术方案通过为SparkSQL系统中数据表的指定列建立索引的方式显著提高了对SparkSQL系统中数据表的查询速度,在大数据场景下,如果查询请求命中具有索引的列,相比于利用SparkSQL提供的查询方式会有指数级的性能提升,对大数据查询具有极大意义。在本专利技术的一个实施例中,图1所示的方法中,为SparkSQL系统中的数据表的指定列建立索引包括:为数据表的指定列建立JSON格式的索引,索引包括:索引号和数据位置标识。本文档来自技高网...

【技术保护点】
一种SparkSQL系统中的数据处理方法,其中,该方法包括:为SparkSQL系统中的数据表的指定列建立索引;当接收到对数据表的查询请求时,判断该请求是否命中具有索引的列;如果命中,则使用命中的列的索引完成本次查询请求;如果未命中,则通过遍历所述查询请求对应的数据表完成本次查询请求。

【技术特征摘要】
1.一种SparkSQL系统中的数据处理方法,其中,该方法包括:为SparkSQL系统中的数据表的指定列建立索引;当接收到对数据表的查询请求时,判断该请求是否命中具有索引的列;如果命中,则使用命中的列的索引完成本次查询请求;如果未命中,则通过遍历所述查询请求对应的数据表完成本次查询请求。2.如权利要求1所述的方法,其中,所述为SparkSQL系统中的数据表的指定列建立索引包括:为数据表的指定列建立JSON格式的索引,所述索引包括:索引号和数据位置标识。3.如权利要求2所述的方法,其中,所述索引号包括:指定列的列名、该条索引对应的列值;所述数据位置标识包括:该数据表的存储路径、该条索引对应的数据在该数据表中的偏移量。4.如权利要求2或3所述的方法,其中,所述为SparkSQL系统中的数据表的指定列建立索引还包括:将建立的索引保存在指定搜索服务器的文件系统中。5.如权利要求4所述的方法,其中,所述使用命中的列的索引完成本次查询请求包括:将所述查询请求发送至所述指定搜索服务器,接收所述指定搜索服务器返回的查询结果;其中,所述查询结果为空,或者为一个或多个数据位置标识;当所述查询结果不为空时,根据所述指定搜索服务器返回的一个或多个数据位置标识,从数据表中读取与相应数据位置标识匹配的数据。6.如权利要求1-5中任一项所述的方法,其中,所述判断该请求是...

【专利技术属性】
技术研发人员:李远策李振炜白泉王锋武志刚
申请(专利权)人:北京奇虎科技有限公司奇智软件北京有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1