一种what‑if查询处理方法及系统技术方案

技术编号:16327379 阅读:37 留言:0更新日期:2017-09-29 19:10
本发明专利技术公开了一种what‑if查询处理方法及系统,通过图形化界面输入查询语句和假设数据,将用户的图形化表述转换为查询语句以提交给OLAP服务器,同时将所述假设数据存储在差分Delta表中;采用布隆过滤器,过滤掉基表Base Table中被假设更新影响的记录集;将被过滤掉的记录与所述Delta表中的插入记录和更新的记录合并,以生成What‑if数据视图;根据所述查询语句,所述OLAP服务器基于所述What‑if数据视图进行OLAP查询。本发明专利技术使用布隆过滤器与查询缓存机制的结合,使what‑if分析性能显著提高,查询时间大大缩短。

【技术实现步骤摘要】
一种what-if查询处理方法及系统
本专利技术涉及数据库查询
,尤其涉及一种what-if查询处理方法及系统。
技术介绍
数据仓库存储大量的历史数据,从历史数据中挖掘有价值的信息,对企业的运营及策略调整起着至关重要的作用。基于OLAP的多维分析是企业决策的重要方法。在OLAP系统中,What-if分析又叫假设分析,它是基于历史数据对假设场景进行分析的一类OLAP技术。在企业决策支持系统中,What-if分析(What-ifAnalysis)用于根据决策者的思路调整数据,并反映策略调整后对其它数据的影响,特别适合决策者对多种决策方案进行预测和评估。然而,what-if分析当前存在的难点是:如何来表示数据仓库上的假设数据、如何快速生成假设更新视图以及如何高效的执行OLAP查询。当前研究中,表示假设数据常用的方法有查询重写和delta表存储两类。前者是将对假设数据的操作,通过查询重写转换为对真实数据的操作,适用于简单的代数更新,无法进行多版本的复杂假设查询;后者是用delta表单独存储假设数据,并与历史数据合并生成假设更新视图,最后基于假设更新视图进行OLAP查询,该方法适用于所有的假设场景,支持多版本管理。在基于delta表的假设数据表示方法中,合并算法主要通过表连接操作实现。当数据量较大时,合并开销较大,会严重影响what-if查询的性能。此外,当what-if查询中包含多表连接、Groupby、Orderby等操作时,查询处理过程中涉及的数据量与计算量进一步增加,what-if分析的效率也进一步下降。
技术实现思路
本专利技术提供一种what-if查询处理方法及系统,解决现有技术中数据采集存在非连续性,导致重要信息丢失的技术问题。本专利技术的目的是通过以下技术方案实现的:一种what-if查询处理方法,包括:通过图形化界面输入查询语句和假设数据,将用户的图形化表述转换为查询语句以提交给OLAP服务器,同时将所述假设数据存储在差分Delta表中;采用布隆过滤器,过滤掉基表BaseTable中被假设更新影响的记录集;将被过滤掉的记录与所述Delta表中的插入记录和更新的记录合并,以生成What-if数据视图;根据所述查询语句,所述OLAP服务器基于所述What-if数据视图进行OLAP查询。前述的what-if查询处理方法,所述根据所述查询语句,所述OLAP服务器基于所述What-if数据视图进行OLAP查询的步骤,包括:将所述查询语句映射为Redis存储系统对应的key值;判断所述Redis存储系统中是否存在所述key值;当所述Redis存储系统中存在所述key值时,直接输出查询结果;当所述Redis存储系统中不存在所述key值时,从所述OLAP服务器中查询,并将查询结果集写入所述Redis存储系统。前述的what-if查询处理方法,所述采用布隆过滤器,过滤掉基表BaseTable中被假设更新影响的记录集的步骤,包括:利用K个独立的Hash函数,将所述Delta表中的记录集映射为m个bit位{1,……,m}的集合中,并将映射位置置为1;判断BaseTable记录的K个Hash函数值对应的位置是否均为1,当均为1时,过滤掉所述BaseTable记录。一种what-if查询处理系统,包括:输入模块,用于通过图形化界面输入查询语句和假设数据,将用户的图形化表述转换为查询语句以提交给OLAP服务器,同时将所述假设数据存储在差分Delta表中;过滤模块,用于采用布隆过滤器,过滤掉基表BaseTable中被假设更新影响的记录集;视图生成模块,用于将被过滤掉的记录与所述Delta表中的插入记录和更新的记录合并,以生成What-if数据视图;查询模块,用于根据所述查询语句,基于所述What-if数据视图进行OLAP查询。前述的what-if查询处理系统,所述查询模块,包括:第一映射单元,用于将所述查询语句映射为Redis存储系统对应的key值;第一判断单元,用于判断所述Redis存储系统中是否存在所述key值;输出单元,用于当所述Redis存储系统中存在所述key值时,直接输出查询结果;缓存单元,用于当所述Redis存储系统中不存在所述key值时,从所述OLAP服务器中查询,并将查询结果集写入所述Redis存储系统。前述的what-if查询处理系统,所述过滤模块,包括:第二映射单元,用于利用K个独立的Hash函数,将所述Delta表中的记录集映射为m个bit位{1,……,m}的集合中,并将映射位置置为1;第二判断单元,用于判断BaseTable记录的K个Hash函数值对应的位置是否均为1,当均为1时,过滤掉所述BaseTable记录。本专利技术的技术效果为:通过图形化界面输入查询语句和假设数据,将用户的图形化表述转换为查询语句以提交给OLAP服务器,同时将所述假设数据存储在差分Delta表中;采用布隆过滤器,过滤掉基表BaseTable中被假设更新影响的记录集;将被过滤掉的记录与所述Delta表中的插入记录和更新的记录合并,以生成What-if数据视图;根据所述查询语句,所述OLAP服务器基于所述What-if数据视图进行OLAP查询。本专利技术使用布隆过滤器与查询缓存机制的结合,使what-if分析性能显著提高,查询时间大大缩短。附图说明图1为本专利技术实施例提供的一种what-if查询处理方法的流程图;图2为本专利技术实施例提供的what-if视图的合并示意图;图3为本专利技术实施例提供的What-if数据视图的生成过程;图4为本专利技术实施例提供的一种what-if查询处理系统的结构示意图。具体实施方式为使本专利技术的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本专利技术作进一步详细的说明。本专利技术实施例提供了一种what-if查询处理方法,如图1所示,包括:步骤101、通过图形化界面输入查询语句和假设数据,将用户的图形化表述转换为查询语句以提交给OLAP服务器,同时将所述假设数据存储在差分Delta表中;其中,基表(basetable),基表为假设更新的基础数据表,可以是数据库中的任意关系,也可以是某个物化的查询视图,在基于值假设更新的应用场景中,基表主要指的是事实表,我们记为B(D1,D2,…,Dm,M1,M2,…,Mn),其中,D1,…,Dm为维度属性,M1,…,Mn为度量值属性。差分表(deltatable),delta表为在基表上进行假设更新的物化数据集,除与基表对应的属性外,还需要增加若干个附加属性来表示假设更新的类型和版本等信息.我们记为D(d1,d2,…,dm,m1,m2,…,mn,FLAG,VER),其中,VER表示假设更新记录的版本信息,FLAG表示假设更新的类型,假设更新包括update(0),insert(1)和delete(-1)这3种类型,分别以U,I和D来表示。步骤102、采用布隆过滤器,过滤掉基表BaseTable中被假设更新影响的记录集;其中,布隆过滤器通过Hash值构建,并使用不同的hash函数。步骤103、将被过滤掉的记录与所述Delta表中的插入记录和更新的记录合并,以生成What-if数据视图;其中,基于BaseTable和Delta表的集合操作生成What-if数据视图,所谓本文档来自技高网...
一种<a href="http://www.xjishu.com/zhuanli/55/201710427114.html" title="一种what‑if查询处理方法及系统原文来自X技术">what‑if查询处理方法及系统</a>

【技术保护点】
一种what‑if查询处理方法,其特征在于,包括:通过图形化界面输入查询语句和假设数据,将用户的图形化表述转换为查询语句以提交给OLAP服务器,同时将所述假设数据存储在差分Delta表中;采用布隆过滤器,过滤掉基表Base Table中被假设更新影响的记录集;将被过滤掉的记录与所述Delta表中的插入记录和更新的记录合并,以生成What‑if数据视图;根据所述查询语句,所述OLAP服务器基于所述What‑if数据视图进行OLAP查询。

【技术特征摘要】
1.一种what-if查询处理方法,其特征在于,包括:通过图形化界面输入查询语句和假设数据,将用户的图形化表述转换为查询语句以提交给OLAP服务器,同时将所述假设数据存储在差分Delta表中;采用布隆过滤器,过滤掉基表BaseTable中被假设更新影响的记录集;将被过滤掉的记录与所述Delta表中的插入记录和更新的记录合并,以生成What-if数据视图;根据所述查询语句,所述OLAP服务器基于所述What-if数据视图进行OLAP查询。2.根据权利要求1所述的what-if查询处理方法,其特征在于,所述根据所述查询语句,所述OLAP服务器基于所述What-if数据视图进行OLAP查询的步骤,包括:将所述查询语句映射为Redis存储系统对应的key值;判断所述Redis存储系统中是否存在所述key值;当所述Redis存储系统中存在所述key值时,直接输出查询结果;当所述Redis存储系统中不存在所述key值时,从所述OLAP服务器中查询,并将查询结果集写入所述Redis存储系统。3.根据权利要求1所述的what-if查询处理方法,其特征在于,所述采用布隆过滤器,过滤掉基表BaseTable中被假设更新影响的记录集的步骤,包括:利用K个独立的Hash函数,将所述Delta表中的记录集映射为m个bit位{1,……,m}的集合中,并将映射位置置为1;判断BaseTable记录的K个Hash函数值对应的位置是否均为1,当均为1时,过滤掉所述BaseTable记录...

【专利技术属性】
技术研发人员:李晖
申请(专利权)人:贵州优联博睿科技有限公司
类型:发明
国别省市:贵州,52

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

1