CN106372190A - 实时olap查询方法和装置 - Google Patents
实时olap查询方法和装置 Download PDFInfo
- Publication number
- CN106372190A CN106372190A CN201610792649.0A CN201610792649A CN106372190A CN 106372190 A CN106372190 A CN 106372190A CN 201610792649 A CN201610792649 A CN 201610792649A CN 106372190 A CN106372190 A CN 106372190A
- Authority
- CN
- China
- Prior art keywords
- table information
- multidimensional
- module
- bloom filter
- dimension table
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Mathematical Physics (AREA)
- Fuzzy Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种实时OLAP查询方法和装置,该方法包括:获取请求客户端发送的待查询文件的维表信息、事实表信息和查询参数;根据查询参数和维表信息对对应的维表进行过滤,并根据过滤后的结果构建多维布隆过滤器;将多维布隆过滤器以广播的方式传输到各个节点,并对事实表信息对应的方体数据进行过滤;将过滤后的维表和过滤后的方体数据连接,得到查询结果;将查询结果发送至对应的查询请求客户端。该方法通过使用多维布隆过滤器实现快速查找算法,其存储空间为位向量,从而具有很小的存储空间要求,能够以广播方式实现事实表的过滤操作,从而降低通过I/O数量,造提高查询效率。
Description
技术领域
本发明涉及数据库技术领域,特别是涉及一种实时OLAP查询方法和装置。
背景技术
OLAP(On-Line Analytical Processing)即联机分析处理,它能够帮助分析人员、管理人员或执行人员从多角度快速、一致、交互地存取信息和更加深入的了解信息,OLAP的目标是满足决策支持或者满足在多维环境下特定的查询和报表需求。
传统的OLAP系统利用周期性更新的数据静态计算整个方体或者部分方体,以保证用户查询性能。然而,随着人们对实时数据交互分析需求的提高,比如在线购物网站实时用户行为分析及商品浏览销售统计等,实时OLAP(RTOLAP,Real Time OLAP)技术获得了广泛关注,实时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]}。
S204:根据查询参数和维表信息对对应的维表进行过滤,并根据过滤后的结果构建多维布隆过滤器。
布隆过滤器(MDBF,Multi-Dimensional Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中,优点是空间效率和查询时间都远远超过一般的算法,是处理大规模数据的有效数据结构之一。
多维布隆过滤器由和元素维数相同的多个普通过滤器组成,直接将多维元素的表示和查询分解为单属性值子集合的表示查询,每个普通过滤器表示查询元素的某一维属性。进行元素查询时,通过判断多维元素的各个属性值是否都在相应的过滤器中来判断元素是否属于集合,运行过程如图3所示,判断事实表中的记录是否满足维表过滤条件,需要判断属性值d1、d2、d3经查询是否在对应的属性子集合都命中。
多维布隆过滤器有四个参数{n,m,k,L},n表示数据集中元素的个数,m表示存储空间的位数,k表示每一维布隆过滤器所使用的哈希函数的个数,L表示元素的维数。在多维布隆过滤器中每个普通过滤器使用相同个数和类型的Hash函数。多维布隆过滤器实现简单,而且误判率更低,只有所有维度的属性值均出现误判时,才会导致元素误判,是一种对多维属性同时过滤的有效方式。
S206:将多维布隆过滤器以广播的方式传输到各个节点,并对事实表信息对应的方体数据进行过滤。S208:将过滤后的维表和过滤后的方体数据连接,得到查询结果。
OLAP的数据模型一般是星型结构,即包括一个很大的实时表和多个维表。不同的数据存储格式对算法的性能具有很大的影响,其中列存储以具有较少的I/O代价、更优的缓存特性等,在数据分析型应用中普遍采用。
列存储一般将所有列划分为不同的列簇,经常一起访问的列组成一个簇,从而减少了列组合的代价,也避免了访问不相关的列。但是,在OLAP系统中预测哪些列经常一起访问是非常困难的,因此需要构建多种列组合模式的列簇,也就是说某些列会多次出现在不同的列簇中,从而造成存储空间浪费。考虑到星型模型的结构,事实表很大而且列数较多,而预测哪些列一起访问很难,所以事实表采用每列单独存储。
通过这种方式有效的减少了磁盘I/O,无论事实表还是维表只访问需要操作的列,提高了CPU缓存利用率,使算法具有缓存敏感特性。另外,在星型模型中事实表的每个外键列一般情况下只需要与对应的维表进行联接操作,因此可以将外键列和对应的维表尽量存储在相近的节点上。事实表的外键列一般很大,划分后的数据块会分布到集群中的大部分节点,但维表的列簇较小,可能只有几个数据块分布在有限的节点上。因此对事实表和维表采取不同的复制策略,要求维表的复制数>事实表的复制数。尽量满足事实表和维表的相关存储,从而减少联接操作过程中从其他节点拉取数据的情况,从而减少网络I/O。
星型模型在分布式文件系统上的存储格式可以用图4表述。星型连接的示意图如图5所示。S210:将查询结果发送至对应的查询请求客户端。
上述的实时OLAP查询方法,根据查询参数和维表信息对维表进行过滤,并根据过滤后的结果构建多维布隆过滤器,将多维布隆过滤器以广播的方式传输到各个节点,并对事实表信息对应的方体数据进行过滤,将过滤后的维表和过滤后的方体数据连接,得到查询结果,并反馈至用户。该方法通过使用多维布隆过滤器实现快速查找算法,其存储空间为位向量,从而具有很小的存储空间要求,能够以广播方式实现事实表的过滤操作,从而降低通过I/O数量,造提高查询效率。
在另一种实施方式中,步骤S204包括以下步骤1至步骤2。
步骤1:根据所述查询参数和维表信息对应的维表的大小确定多维布隆过滤器的存储空间的位数和哈希函数的个数。
查询参数具体为查询的准确率要求,由用户在发送查询请求时,在客户端的操作界面上输入。根据准确率要求和维表的大小确ni确定多维布隆过滤器的存储空间的位数和哈希函数的个数。
步骤2:利用Spark内存的过滤器和循环操作,根据所述维表信息对对应的维表进行过滤,并根据过滤后的结果构建多维布隆过滤器。
本实施例的实时OLAP查询系统,采用Spark内存。Spark是支持内存计算的主流框架之一。是加州伯克利大学AMP实验室所开源的通用并行内存计算框架,采用Job中间布式文件系统HDFS(Hadoop Distributed File System),因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce(映射-归约)的算法。另外,Spark启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。OLAP系统中多数运算需要多次迭代完成,比如方体计算等,因此可以基于Spark实现基于SPARK内存的实时OLAP系统。
根据不同维表查询条件过滤维表并构建MDBF{max(ni),m,k,|Dim|},其中max(ni)表时最大维表的个数。此步骤可以利用Spark的过滤转换和循环动作完成。
在构建多维布隆过滤器的过程中,为避免维表数据移动,在每个节点分别构建,并在本地进行填充,然后再将填充后的Bloom Filter在Driver节点汇总,从而避免维表数据移动。
在另一个实施例中,步骤S206包括以下步骤1至步骤3。
步骤1:将所述多维布隆过滤器添加为广播变量,并广播到各个节点。
在具体的实施方式中,该步骤可利用Spark的广播操作完成。
步骤2:根据所述事实表信息,读取与所述事实表信息对应的方体数据。
步骤3:利用多维布隆过滤器对所述方体数据进行过滤。
具体的,步骤3为:对所述方体数据的每一条记录中不同的连接属性,分别计算其多个哈希值,读取对应不同位置的位向量值,并进行与查询请求对应的运算,从运算结果中获取满足对应条件的记录得到过滤后的方体数据。
在另一个实施例中,步骤S202之前,还包括以下步骤1和步骤2。
步骤1:预先将维数相同的属性组合的立方体计算生成一个作业,每个作业计算一个维属性组合的立方体单元。
步骤2:从上往下,对每一层立方体单元的聚焦结果进行剪枝操作作为下一层的输入,直至计算完最后一层得到方体数据
数据立方体是数据仓库和联机分析处理中的核心。数据立方体计算是数据仓库实现的一项基本任务,数据立方体的完全或者部分预计算带来大幅提高响应速度,提高联机分析处理的性能,但是需要大量计算时间和存储空间来计算和存储数据立方体单元。本实施例是,在Spark平台下实现了快速方体计算算法,简称BUCPark(BUC on Spark)算法。
BUCPark算法是按照深度遍历顺序逐个对于方体格的每一个方体进行聚集,而且随着维数的增加需要计算的立方体随之增加,算法的迭代次数和算法的复杂度也会上升。BUCPark将中间结果即需要迭代的立方体单元保存到内存,以便下次迭代时快速进行计算。然而随着维数增加,需要计算的立方体单元数也随之增多,内存中迭代的立方体单元也越积越多且算法迭代的次数会以指数级膨胀,从而导致算法性能下降。为了进一步提高BUCPark算法的性能,结合Spark框架的并行化特点,提出了一种分层次计算的BUC算法(Layerd BUC on Spark,简称LBUCPark)。LBUCPark是在BUCPark算法的基础上对于迭代次序方面进行了改进,并在Spark框架下实现了并行化。
考虑到迭代次数影响BUCPark算法性能的问题,LBUCPark算法采用了分层计算的方法。LBUCPark算法的思想是对于要计算的BUC处理树分层进行计算,即维数相同的属性组合的立方体计算生成一个作业,每一层的聚集结果都会进行剪枝操作作为下一层的输入,从上往下按层计算,直到计算完最后一层。图6为3维BUC处理树的LBUCPark算法的作业流图。
LBUCPark算法作业流图相比BUCPark算法要简洁很多。在BUCPark算法下,图6中的数字代表算法在立方体计算时候的遍历顺序,即在BUCPark算法下计算3维的BUC处理树时,作业流按照深度遍历数序执行,而LBUCPark算法只需自顶向下逐层遍历。如图6中从顶点立方体All开始计算,作业1计算一个维属性组合的立方体单元,对于作业1的输出进行剪枝操作,然后作为2的输入并进行计算。依此类推,直到作业3执行完毕。
在另一个实施例中,在步骤S210之后,还包括以下步骤:
获取图表类型参数,将所述查询结果生成与所述图表类型参数对应的图表并发送至查询请求客户端。
该实时OLAP查询方法提供多种类型的图表显示查询结果,包括曲线图、柱状图、蛛网图、饼图、环形图和极地区域图等。
在另一个实施例中,客户端30还可向服务器10上传本地文件,可以实现本地文件系统到服务器的文件传递。
在一个实施例中,服务器10包括一种实时OLAP查询装置,如图7所示,包括:
接收模块702,用于获取请求客户端发送的待查询文件的维表信息、事实表信息和查询参数。
维过滤模块704,用于根据查询参数和维表信息对对应的维表进行过滤,并根据过滤后的结果构建多维布隆过滤器。
事实过滤模块706,用于将多维布隆过滤器以广播的方式传输到各个节点,并对事实表信息对应的方体数据进行过滤。
连接模块708,用于将过滤后的维表和过滤后的方体数据连接,得到查询结果。
发送模块710,用于将查询结果发送至对应的查询请求客户端。
上述的实时OLAP查询装置,根据查询参数和维表信息对维表进行过滤,并根据过滤后的结果构建多维布隆过滤器,将多维布隆过滤器以广播的方式传输到各个节点,并对事实表信息对应的方体数据进行过滤,将过滤后的维表和过滤后的方体数据连接,得到查询结果,并反馈至用户。该装置通过使用多维布隆过滤器实现快速查找算法,其存储空间为位向量,从而具有很小的存储空间要求,能够以广播方式实现事实表的过滤操作,从而降低通过I/O数量,造提高查询效率。
在又一个实施例中,维过滤模块包括计算模块7041和过滤器处理模块7042。
计算模块7041,用于根据查询参数和维表信息对应的维表的大小确定多维布隆过滤器的存储空间的位数和哈希函数的个数。
过滤器处理模块7042,用于利用Spark内存的过滤器和循环操作,根据维表信息对对应的维表进行过滤,并根据过滤后的结果构建多维布隆过滤器。
在又一个实施例中,事实过滤模块,包括广播模块7061、读取模块7062和处理模块7063。
广播模块7061,用于将多维布隆过滤器添加为广播变量,并广播到各个节点;
读取模块7062,用于根据事实表信息,读取与事实表信息对应的方体数据。
处理模块7063,用于利用多维布隆过滤器对方体数据进行过滤。
具体的,处理模块7063,具体用于对方体数据的每一条记录中不同的连接属性,分别计算其多个哈希值,读取对应不同位置的位向量值,并进行与查询请求对应的运算,从运算结果中获取满足对应条件的记录得到过滤后的方体数据。
在再一个实施例中,实施OLAP查询装置还包括:
作业生成模块700,用于预先将维数相同的属性组合的立方体计算生成一个作业,每个作业计算一个维属性组合的立方体单元;
迭代模块701,用于从上往下,对每一层立方体单元的聚焦结果进行剪枝操作作为下一层的输入,直至计算完最后一层得到方体数据。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种实时OLAP查询方法,包括:
获取请求客户端发送的待查询文件的维表信息、事实表信息和查询参数;
根据所述查询参数和维表信息对对应的维表进行过滤,并根据过滤后的结果构建多维布隆过滤器;
将所述多维布隆过滤器以广播的方式传输到各个节点,并对所述事实表信息对应的方体数据进行过滤;
将过滤后的维表和过滤后的方体数据连接,得到查询结果;
将所述查询结果发送至对应的查询请求客户端。
2.根据权利要求1所述的方法,其特征在于,所述根据所述查询参数和维表信息对所述维表进行过滤,并根据过滤后的结果构建多维布隆过滤器的步骤包括:
根据所述查询参数和维表信息对应的维表的大小确定多维布隆过滤器的存储空间的位数和哈希函数的个数;
利用Spark内存的过滤器和循环操作,根据所述维表信息对对应的维表进行过滤,并根据过滤后的结果构建多维布隆过滤器。
3.根据权利要求1所述的方法,其特征在于,所述将所述多维布隆过滤器以广播的方式传输到各个节点,并对所述事实表信息对应的方体数据进行过滤的步骤包括:
将所述多维布隆过滤器添加为广播变量,并广播到各个节点;
根据所述事实表信息,读取与所述事实表信息对应的方体数据;
利用多维布隆过滤器对所述方体数据进行过滤。
4.根据权利要求3所述的方法,其特征在于,所述利用多维布隆过滤器对所述方体数据进行过滤的步骤包括:对所述方体数据的每一条记录中不同的连接属性,分别计算其多个哈希值,读取对应不同位置的位向量值,并进行与查询请求对应的运算,从运算结果中获取满足对应条件的记录得到过滤后的方体数据。
5.根据权利要求1所述的方法,其特征在于,还包括:
预先将维数相同的属性组合的立方体计算生成一个作业,每个作业计算一个维属性组合的立方体单元;
从上往下,对每一层立方体单元的聚焦结果进行剪枝操作作为下一层的输入,直至计算完最后一层得到方体数据。
6.一种实时OLAP查询装置,包括:
接收模块,用于获取请求客户端发送的待查询文件的维表信息、事实表信息和查询参数;
维过滤模块,用于根据所述查询参数和维表信息对对应的维表进行过滤,并根据过滤后的结果构建多维布隆过滤器;
事实过滤模块,用于将所述多维布隆过滤器以广播的方式传输到各个节点,并对所述事实表信息对应的方体数据进行过滤;
连接模块,用于将过滤后的维表和过滤后的方体数据连接,得到查询结果;
发送模块,用于将所述查询结果发送至对应的查询请求客户端。
7.根据权利要求6所述的装置,其特征在于,所述维过滤模块包括计算模块和过滤器处理模块;
所述计算模块,用于根据所述查询参数和维表信息对应的维表的大小确定多维布隆过滤器的存储空间的位数和哈希函数的个数;
所述过滤器处理模块,用于利用Spark内存的过滤器和循环操作,根据所述维表信息对对应的维表进行过滤,并根据过滤后的结果构建多维布隆过滤器。
8.根据权利要求6所述的装置,其特征在于,所述事实过滤模块,包括广播模块、读取模块和处理模块;
所述广播模块,用于将所述多维布隆过滤器添加为广播变量,并广播到各个节点;
所述读取模块,用于根据所述事实表信息,读取与所述事实表信息对应的方体数据;
所述处理模块,用于利用多维布隆过滤器对所述方体数据进行过滤。
9.根据权利要求8所述的装置,其特征在于,所述处理模块,具体用于对所述方体数据的每一条记录中不同的连接属性,分别计算其多个哈希值,读取对应不同位置的位向量值,并进行与查询请求对应的运算,从运算结果中获取满足对应条件的记录得到过滤后的方体数据。
10.根据权利要求6所述的装置,其特征在于,还包括:
作业生成模块,用于预先将维数相同的属性组合的立方体计算生成一个作业,每个作业计算一个维属性组合的立方体单元;
迭代模块,用于从上往下,对每一层立方体单元的聚焦结果进行剪枝操作作为下一层的输入,直至计算完最后一层得到方体数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610792649.0A CN106372190A (zh) | 2016-08-31 | 2016-08-31 | 实时olap查询方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610792649.0A CN106372190A (zh) | 2016-08-31 | 2016-08-31 | 实时olap查询方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106372190A true CN106372190A (zh) | 2017-02-01 |
Family
ID=57899880
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610792649.0A Pending CN106372190A (zh) | 2016-08-31 | 2016-08-31 | 实时olap查询方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106372190A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018176623A1 (zh) * | 2017-03-28 | 2018-10-04 | 上海跬智信息技术有限公司 | 一种olap预计算模型、自动建模方法及自动建模系统 |
CN108874803A (zh) * | 2017-05-09 | 2018-11-23 | 腾讯科技(深圳)有限公司 | 数据存储方法、装置及存储介质 |
CN109271408A (zh) * | 2018-08-31 | 2019-01-25 | 阿里巴巴集团控股有限公司 | 一种分布式数据连接处理方法、装置、设备及存储介质 |
CN109408711A (zh) * | 2018-09-29 | 2019-03-01 | 北京三快在线科技有限公司 | 数据过滤方法、装置、电子设备及存储介质 |
CN109597807A (zh) * | 2018-10-25 | 2019-04-09 | 阿里巴巴集团控股有限公司 | 数仓表处理方法和装置 |
CN109947787A (zh) * | 2017-10-30 | 2019-06-28 | 阿里巴巴集团控股有限公司 | 一种数据分层存储、分层查询方法及装置 |
CN109977175A (zh) * | 2019-03-20 | 2019-07-05 | 跬云(上海)信息科技有限公司 | 数据配置查询方法和装置 |
CN110704402A (zh) * | 2019-10-18 | 2020-01-17 | 广州趣丸网络科技有限公司 | 一种多数据源的数据分析系统、方法及设备 |
WO2020106971A1 (en) * | 2018-11-21 | 2020-05-28 | The Salk Institute For Biological Studies | Systems and methods for enhanced novelty detection |
CN112925629A (zh) * | 2021-03-31 | 2021-06-08 | 恩亿科(北京)数据科技有限公司 | 布隆过滤器动态调整方法、系统、电子设备及存储介质 |
WO2021143010A1 (zh) * | 2020-01-17 | 2021-07-22 | 平安科技(深圳)有限公司 | 一种分布式计算任务的响应方法及设备 |
US20220147503A1 (en) * | 2020-08-11 | 2022-05-12 | Massachusetts Mutual Life Insurance Company | Systems and methods to generate a database structure with a low-latency key architecture |
CN114547380A (zh) * | 2022-01-25 | 2022-05-27 | 北京元年科技股份有限公司 | 数据遍历查询方法、装置、电子设备及可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080229103A1 (en) * | 2007-03-13 | 2008-09-18 | Board Of Trustees Of Michigan State University | Private entity authentication for pervasive computing environments |
CN101369918A (zh) * | 2008-09-25 | 2009-02-18 | 浙江工业大学 | 网络管理浏览器 |
CN101968812A (zh) * | 2010-10-25 | 2011-02-09 | 中国农业大学 | 调用数据库数据自动生成统计图的方法和装置 |
CN103177308A (zh) * | 2011-12-20 | 2013-06-26 | 中工国际工程股份有限公司 | 一种工程项目管理的智能决策支持系统 |
CN105701200A (zh) * | 2016-01-12 | 2016-06-22 | 中国人民大学 | 一种内存云计算平台上的数据仓库安全olap方法 |
-
2016
- 2016-08-31 CN CN201610792649.0A patent/CN106372190A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080229103A1 (en) * | 2007-03-13 | 2008-09-18 | Board Of Trustees Of Michigan State University | Private entity authentication for pervasive computing environments |
CN101369918A (zh) * | 2008-09-25 | 2009-02-18 | 浙江工业大学 | 网络管理浏览器 |
CN101968812A (zh) * | 2010-10-25 | 2011-02-09 | 中国农业大学 | 调用数据库数据自动生成统计图的方法和装置 |
CN103177308A (zh) * | 2011-12-20 | 2013-06-26 | 中工国际工程股份有限公司 | 一种工程项目管理的智能决策支持系统 |
CN105701200A (zh) * | 2016-01-12 | 2016-06-22 | 中国人民大学 | 一种内存云计算平台上的数据仓库安全olap方法 |
Non-Patent Citations (2)
Title |
---|
周国亮等: "Spark环境下基于多维布隆过滤器的星型连接算法", 《计算机应用》 * |
萨初日拉等: "Spark环境下并行立方体计算方法", 《计算机应用》 * |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018176623A1 (zh) * | 2017-03-28 | 2018-10-04 | 上海跬智信息技术有限公司 | 一种olap预计算模型、自动建模方法及自动建模系统 |
CN108874803A (zh) * | 2017-05-09 | 2018-11-23 | 腾讯科技(深圳)有限公司 | 数据存储方法、装置及存储介质 |
CN108874803B (zh) * | 2017-05-09 | 2023-05-12 | 腾讯科技(深圳)有限公司 | 数据存储方法、装置及存储介质 |
CN109947787A (zh) * | 2017-10-30 | 2019-06-28 | 阿里巴巴集团控股有限公司 | 一种数据分层存储、分层查询方法及装置 |
US11188535B2 (en) | 2018-08-31 | 2021-11-30 | Beijing Oceanbase Technology Co., Ltd. | Distributed join operation processing method, apparatus, device, and storage medium |
WO2020042813A1 (zh) * | 2018-08-31 | 2020-03-05 | 阿里巴巴集团控股有限公司 | 一种分布式数据连接处理方法、装置、设备及存储介质 |
TWI716016B (zh) * | 2018-08-31 | 2021-01-11 | 開曼群島商創新先進技術有限公司 | 分散式資料連接處理方法、裝置、設備及儲存媒體 |
CN109271408A (zh) * | 2018-08-31 | 2019-01-25 | 阿里巴巴集团控股有限公司 | 一种分布式数据连接处理方法、装置、设备及存储介质 |
CN109408711B (zh) * | 2018-09-29 | 2019-12-06 | 北京三快在线科技有限公司 | 数据过滤方法、装置、电子设备及存储介质 |
CN109408711A (zh) * | 2018-09-29 | 2019-03-01 | 北京三快在线科技有限公司 | 数据过滤方法、装置、电子设备及存储介质 |
CN109597807A (zh) * | 2018-10-25 | 2019-04-09 | 阿里巴巴集团控股有限公司 | 数仓表处理方法和装置 |
WO2020106971A1 (en) * | 2018-11-21 | 2020-05-28 | The Salk Institute For Biological Studies | Systems and methods for enhanced novelty detection |
CN109977175A (zh) * | 2019-03-20 | 2019-07-05 | 跬云(上海)信息科技有限公司 | 数据配置查询方法和装置 |
CN109977175B (zh) * | 2019-03-20 | 2021-06-01 | 跬云(上海)信息科技有限公司 | 数据配置查询方法和装置 |
US11281698B2 (en) | 2019-03-20 | 2022-03-22 | Kuyun (Shanghai) Information Technology Co., Ltd. | Data configuration query method and device |
CN110704402A (zh) * | 2019-10-18 | 2020-01-17 | 广州趣丸网络科技有限公司 | 一种多数据源的数据分析系统、方法及设备 |
WO2021143010A1 (zh) * | 2020-01-17 | 2021-07-22 | 平安科技(深圳)有限公司 | 一种分布式计算任务的响应方法及设备 |
US20220147503A1 (en) * | 2020-08-11 | 2022-05-12 | Massachusetts Mutual Life Insurance Company | Systems and methods to generate a database structure with a low-latency key architecture |
CN112925629A (zh) * | 2021-03-31 | 2021-06-08 | 恩亿科(北京)数据科技有限公司 | 布隆过滤器动态调整方法、系统、电子设备及存储介质 |
CN112925629B (zh) * | 2021-03-31 | 2023-10-20 | 恩亿科(北京)数据科技有限公司 | 布隆过滤器动态调整方法、系统、电子设备及存储介质 |
CN114547380A (zh) * | 2022-01-25 | 2022-05-27 | 北京元年科技股份有限公司 | 数据遍历查询方法、装置、电子设备及可读存储介质 |
CN114547380B (zh) * | 2022-01-25 | 2022-11-15 | 北京元年科技股份有限公司 | 数据遍历查询方法、装置、电子设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106372190A (zh) | 实时olap查询方法和装置 | |
JP7273045B2 (ja) | Sqlクエリプランを最適化するための次元コンテキスト伝搬技術 | |
CN101226557B (zh) | 一种高效的关联主题模型数据处理方法 | |
CN103488673B (zh) | 用于执行调和处理的方法、控制器及数据存储系统 | |
CN104205039B (zh) | 使用兴趣驱动数据管线进行数据分析的兴趣驱动商业智能系统和方法 | |
CN106372114B (zh) | 一种基于大数据的联机分析处理系统和方法 | |
CN101183368B (zh) | 联机分析处理中分布式计算及查询海量数据的方法和系统 | |
CN103678520B (zh) | 一种基于云计算的多维区间查询方法及其系统 | |
CN101916261B (zh) | 一种分布式并行数据库系统的数据分区方法 | |
CN107577805A (zh) | 一种面向日志大数据分析的业务服务系统 | |
Hor et al. | A semantic graph database for BIM-GIS integrated information model for an intelligent urban mobility web application | |
CN106202335B (zh) | 一种基于云计算框架的交通大数据清洗方法 | |
CN103853818B (zh) | 多维数据的处理方法和装置 | |
CN109947998A (zh) | 跨异构系统的网络的计算数据沿袭 | |
CN104820708B (zh) | 一种基于云计算平台的大数据聚类方法和装置 | |
CN106095862A (zh) | 集中式可扩展融合型多维复杂结构关系数据的存储方法 | |
CN105488231A (zh) | 一种基于自适应表维度划分的大数据处理方法 | |
CN103488680A (zh) | 建立搜索引擎的组合算符 | |
CN104572833B (zh) | 一种映射规则创建方法及装置 | |
CN111581454A (zh) | 基于深度图压缩算法的并行查询表现预测系统及方法 | |
CN107194533B (zh) | 一种配电网全信息模型构建方法及系统 | |
US11803865B2 (en) | Graph based processing of multidimensional hierarchical data | |
Dehdouh et al. | Columnar NoSQL CUBE: Agregation operator for columnar NoSQL data warehouse | |
CN108520035A (zh) | 基于星形分解的sparql基本图模式查询处理方法 | |
Theeten et al. | Chive: Bandwidth optimized continuous querying in distributed clouds |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170201 |
|
RJ01 | Rejection of invention patent application after publication |