实时OLAP查询方法和装置制造方法及图纸

技术编号:14517275 阅读:80 留言:0更新日期:2017-02-01 19:43
本发明专利技术涉及一种实时OLAP查询方法和装置,该方法包括:获取请求客户端发送的待查询文件的维表信息、事实表信息和查询参数;根据查询参数和维表信息对对应的维表进行过滤,并根据过滤后的结果构建多维布隆过滤器;将多维布隆过滤器以广播的方式传输到各个节点,并对事实表信息对应的方体数据进行过滤;将过滤后的维表和过滤后的方体数据连接,得到查询结果;将查询结果发送至对应的查询请求客户端。该方法通过使用多维布隆过滤器实现快速查找算法,其存储空间为位向量,从而具有很小的存储空间要求,能够以广播方式实现事实表的过滤操作,从而降低通过I/O数量,造提高查询效率。

【技术实现步骤摘要】

本专利技术涉及数据库
,特别是涉及一种实时OLAP查询方法和装置。
技术介绍
OLAP(On-LineAnalyticalProcessing)即联机分析处理,它能够帮助分析人员、管理人员或执行人员从多角度快速、一致、交互地存取信息和更加深入的了解信息,OLAP的目标是满足决策支持或者满足在多维环境下特定的查询和报表需求。传统的OLAP系统利用周期性更新的数据静态计算整个方体或者部分方体,以保证用户查询性能。然而,随着人们对实时数据交互分析需求的提高,比如在线购物网站实时用户行为分析及商品浏览销售统计等,实时OLAP(RTOLAP,RealTimeOLAP)技术获得了广泛关注,实时OLAP要求对实时数据进行实时分析,而不是预计算。然而,对实时数据完成实时计算,需要高性能计算平台的支撑。传统的OLAP系统中,星型连接中需要将维表构建为一个Hash表(哈希表),Hash表需要占用较大的存储空间,当广播到所有节点时,产生大量的通信I/O,造成效率低下。
技术实现思路
基于此,有必要提供一种效率高的实时OLAP查询方法和装置。一种实时OLAP查询方法,包括:获取请求客户端发送的待查询文件的维表信息、事实表信息和查询参数;根据所述查询参数和维表信息对对应的维表进行过滤,并根据过滤后的结果构建多维布隆过滤器;将所述多维布隆过滤器以广播的方式传输到各个节点,并对所述事实表信息对应的方体数据进行过滤;将过滤后的维表和过滤后的方体数据连接,得到查询结果;将所述查询结果发送至对应的查询请求客户端。在一个实施例中,所述根据所述查询参数和维表信息对所述维表进行过滤,并根据过滤后的结果构建多维布隆过滤器的步骤包括:根据所述查询参数和维表信息对应的维表的大小确定多维布隆过滤器的存储空间的位数和哈希函数的个数;利用Spark内存的过滤器和循环操作,根据所述维表信息对对应的维表进行过滤,并根据过滤后的结果构建多维布隆过滤器。在一个实施例中,所述将所述多维布隆过滤器以广播的方式传输到各个节点,并对所述事实表信息对应的方体数据进行过滤的步骤包括:将所述多维布隆过滤器添加为广播变量,并广播到各个节点;根据所述事实表信息,读取与所述事实表信息对应的方体数据;利用多维布隆过滤器对所述方体数据进行过滤。在一个实施例中,所述利用多维布隆过滤器对所述方体数据进行过滤的步骤包括:对所述方体数据的每一条记录中不同的连接属性,分别计算其多个哈希值,读取对应不同位置的位向量值,并进行与查询请求对应的运算,从运算结果中获取满足对应条件的记录得到过滤后的方体数据。在一个实施例中,实时OLAP查询方法还包括:预先将维数相同的属性组合的立方体计算生成一个作业,每个作业计算一个维属性组合的立方体单元;从上往下,对每一层立方体单元的聚焦结果进行剪枝操作作为下一层的输入,直至计算完最后一层得到方体数据。一种实时OLAP查询装置,包括:接收模块,用于获取请求客户端发送的待查询文件的维表信息、事实表信息和查询参数;维过滤模块,用于根据所述查询参数和维表信息对对应的维表进行过滤,并根据过滤后的结果构建多维布隆过滤器;事实过滤模块,用于将所述多维布隆过滤器以广播的方式传输到各个节点,并对所述事实表信息对应的方体数据进行过滤;连接模块,用于将过滤后的维表和过滤后的方体数据连接,得到查询结果;发送模块,用于将所述查询结果发送至对应的查询请求客户端。在一个实施例中,所述维过滤模块包括计算模块和过滤器处理模块;所述计算模块,用于根据所述查询参数和维表信息对应的维表的大小确定多维布隆过滤器的存储空间的位数和哈希函数的个数;所述过滤器处理模块,用于利用Spark内存的过滤器和循环操作,根据所述维表信息对对应的维表进行过滤,并根据过滤后的结果构建多维布隆过滤器。在一个实施例中,所述事实过滤模块,包括广播模块、读取模块和处理模块;所述广播模块,用于将所述多维布隆过滤器添加为广播变量,并广播到各个节点;所述读取模块,用于根据所述事实表信息,读取与所述事实表信息对应的方体数据;所述处理模块,用于利用多维布隆过滤器对所述方体数据进行过滤。在一个实施例中,所述处理模块,具体用于对所述方体数据的每一条记录中不同的连接属性,分别计算其多个哈希值,读取对应不同位置的位向量值,并进行与查询请求对应的运算,从运算结果中获取满足对应条件的记录得到过滤后的方体数据。在一个实施例中,实时OLAP查询装置还包括:作业生成模块,用于预先将维数相同的属性组合的立方体计算生成一个作业,每个作业计算一个维属性组合的立方体单元;迭代模块,用于从上往下,对每一层立方体单元的聚焦结果进行剪枝操作作为下一层的输入,直至计算完最后一层得到方体数据。上述的实时OLAP查询方法,根据查询参数和维表信息对维表进行过滤,并根据过滤后的结果构建多维布隆过滤器,将多维布隆过滤器以广播的方式传输到各个节点,并对事实表信息对应的方体数据进行过滤,将过滤后的维表和过滤后的方体数据连接,得到查询结果,并反馈至用户。该方法通过使用多维布隆过滤器实现快速查找算法,其存储空间为位向量,从而具有很小的存储空间要求,能够以广播方式实现事实表的过滤操作,从而降低通过I/O数量,造提高查询效率。附图说明图1为一个实施例的实时OLAP查询系统的结构示意图;图2为一个实施例的实时OLAP查询方法的流程图;图3为一个实施例的维布隆过滤器的查找过程示意图;图4为一个实施例的星型模型存储模式的示意图;图5为一个实施例的星型连接的流程示意图;图6为一个实施例的方体计算的方法示意图;图7为一个实施例的实时OLAP查询装置的功能模块示意图;图8为另一个实施例的实时OLAP查询装置的功能模块示意图。具体实施方式在一个实施例中,如图1所示,一种实时OLAP查询系统包括服务器10和多个客户端30通过网络连接。客户端30向服务器10发送查询请求,服务器10根据查询请求执行查询操作,得到查询结果,并将查询结果发送至对应的客户端30。该系统采用B/S模式,用户打开浏览器便可实现与服务器的交互。在另一个实施例中,一种实时OLAP查询方法运行于服务器10,如图2所示,该方法包括以下步骤:S202:获取请求客户端发送的待查询文件的维表信息、事实表信息和查询参数。维表包含了事实表中指定属性的相关详细信息,比如,详细的产品对应的产品维表,或按时间分析的时间维表。维表示人们分析数据的方式,也是组成方体的基本元素,可以包含多个层次,每个层次有多个成员,例如,包括产品信息的维表通常包含将产品分为食品、饮料、非消费品等若干类层次结构,维表中的列字段可以将信息分为不同的层次的结构。用户对维表的访问,一般是和某个维层次相关的,因此维表采用列簇存放,根据维具有的维层次(Hierarchy)划分为多个列簇,每个列簇包含主键和对应的维层次属性。在一个具体的实施方式中,Customer维表可以划分为如下四个列簇:{[CUSTKEY,NAME],[CUSTKEY,CITY],[CUSTKEY,NATION],[CUSTKEY,REGIN]本文档来自技高网...

【技术保护点】
一种实时OLAP查询方法,包括:获取请求客户端发送的待查询文件的维表信息、事实表信息和查询参数;根据所述查询参数和维表信息对对应的维表进行过滤,并根据过滤后的结果构建多维布隆过滤器;将所述多维布隆过滤器以广播的方式传输到各个节点,并对所述事实表信息对应的方体数据进行过滤;将过滤后的维表和过滤后的方体数据连接,得到查询结果;将所述查询结果发送至对应的查询请求客户端。

【技术特征摘要】
1.一种实时OLAP查询方法,包括:获取请求客户端发送的待查询文件的维表信息、事实表信息和查询参数;根据所述查询参数和维表信息对对应的维表进行过滤,并根据过滤后的结果构建多维布隆过滤器;将所述多维布隆过滤器以广播的方式传输到各个节点,并对所述事实表信息对应的方体数据进行过滤;将过滤后的维表和过滤后的方体数据连接,得到查询结果;将所述查询结果发送至对应的查询请求客户端。2.根据权利要求1所述的方法,其特征在于,所述根据所述查询参数和维表信息对所述维表进行过滤,并根据过滤后的结果构建多维布隆过滤器的步骤包括:根据所述查询参数和维表信息对应的维表的大小确定多维布隆过滤器的存储空间的位数和哈希函数的个数;利用Spark内存的过滤器和循环操作,根据所述维表信息对对应的维表进行过滤,并根据过滤后的结果构建多维布隆过滤器。3.根据权利要求1所述的方法,其特征在于,所述将所述多维布隆过滤器以广播的方式传输到各个节点,并对所述事实表信息对应的方体数据进行过滤的步骤包括:将所述多维布隆过滤器添加为广播变量,并广播到各个节点;根据所述事实表信息,读取与所述事实表信息对应的方体数据;利用多维布隆过滤器对所述方体数据进行过滤。4.根据权利要求3所述的方法,其特征在于,所述利用多维布隆过滤器对所述方体数据进行过滤的步骤包括:对所述方体数据的每一条记录中不同的连接属性,分别计算其多个哈希值,读取对应不同位置的位向量值,并进行与查询请求对应的运算,从运算结果中获取满足对应条件的记录得到过滤后的方体数据。5.根据权利要求1所述的方法,其特征在于,还包括:预先将维数相同的属性组合的立方体计算生成一个作业,每个作业计算一个维属性组合的立方体单元;从上往下,对每一层立方体单元的聚焦结果进行剪枝操作作为下一层的输入,直至计算完最后一层得到方体数据。6.一种实时OLAP查询装置,包...

【专利技术属性】
技术研发人员:王桂兰周国亮
申请(专利权)人:华北电力大学保定
类型:发明
国别省市:河北;13

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

1