CN100495403C - 联机分析处理系统中处理非空数据的方法和装置 - Google Patents

联机分析处理系统中处理非空数据的方法和装置 Download PDF

Info

Publication number
CN100495403C
CN100495403C CNB2007100030168A CN200710003016A CN100495403C CN 100495403 C CN100495403 C CN 100495403C CN B2007100030168 A CNB2007100030168 A CN B2007100030168A CN 200710003016 A CN200710003016 A CN 200710003016A CN 100495403 C CN100495403 C CN 100495403C
Authority
CN
China
Prior art keywords
data
unit
dimension
original
row
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.)
Active
Application number
CNB2007100030168A
Other languages
English (en)
Other versions
CN101008953A (zh
Inventor
林志贤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kingdee Software China Co Ltd
Original Assignee
Kingdee Software China Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Kingdee Software China Co Ltd filed Critical Kingdee Software China Co Ltd
Priority to CNB2007100030168A priority Critical patent/CN100495403C/zh
Publication of CN101008953A publication Critical patent/CN101008953A/zh
Application granted granted Critical
Publication of CN100495403C publication Critical patent/CN100495403C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种联机分析处理系统中处理非空数据的方法,包括:A、解析定义的多维表达式得到查询轴的原始范围;B、当只需考虑物理存在的数据时,遍历所述原始范围中的点上各个维度成员的组合,并将至少一个维度成员发生数据为空的点过滤得到初始二维表格;C、遍历所述初始二维表格中各个行或列决定的所有单元,当所有单元都没有物理存在的数据时,将该行或列过滤得到所需的二维表格。本发明还公开了一种联机分析处理系统中处理非空数据的装置。本发明通过预处理过滤维度上数据为空的点,然后再对生成的初始二维表格进行过滤,极大减少了使用者的操作时间,提高了过滤效率;并且可以根据实际业务的需要对表格进行非空数据的处理,具有很强的实用性和灵活性。

Description

联机分析处理系统中处理非空数据的方法和装置
技术领域
本发明涉及计算机技术领域,具体的说特别涉及一种联机分析处理系统中处理非空数据的方法和装置。
背景技术
OLAP(On-Line Analytical Processing,联机分析处理)是一种软件技术,它使分析人员能够迅速、一致、交互地从各个方面观察信息,以达到深入理解数据的目的,这些信息是从原始数据直接转换过来的,它们以用户容易理解的方式反映企业的真实情况。OLAP大部分策略都是将关系型或普通的数据进行多维数据存贮,以便于进行分析,从而达到联机分析处理的目的。这种多维数据被看作一个超立方体,沿着各个维的方向存贮数据,它允许用户沿事务的轴线分析数据,实现了共享多维信息的快速分析。
MDX(Multi Dimensional Expressions,多维表达式),是标准的OLAP查询语言。应用MDX查询OLAP后得到的结果集通常是一个二维表格,二维表格的两边是轴,在这个二维表格中很可能遇到整行和整列的数据为空的情况,一般需要对表格中的空数据进行过滤,MDX查询语言中通过Non Empty关键字施加在轴上以指定该轴需要过滤掉空数据的点。现有技术中过滤空数据时,首先从多维数据集中根据需要应用MDX查询得到整个二维表格,然后对生成的二维表格进行遍历,判断二维表格中各个行或列决定的所有单元,如果所有单元中的数据都为空,则说明该行或列为空,最后将二维表格中所有数据为空的行或列过滤后生成新的二维表格即最终需要的二维表格。特别的,对从多维数据集中查询得到的二维表格中的某些维度定义新的计算成员时,很可能出现某一行或列决定的所有非计算成员单元都为空,但该行或列决定的计算成员不为空的情况,那么应用现有方法对该二维表格进行过滤时,则只能将仅有计算成员不为空的行或列整体保留下来,而无法根据业务的需要灵活的选择是否保留仅计算成员不为空的行或列。例如,应用一条多维表达式SELECT{[Measures].[Sales_Dollars],[Measures].[Sales_Units]}ON columns,Crossjoin({[Time].[2000],[Time].[2001]},{[Product].[Bread],[Prodct].[Dairy],[Product].[Meat]})ON rows FROM[Sales]从多维数据集中查询得到如下表1:
从上表1可知,时间维上的成员2000年没有数据发生,应用多维表达式SELECT{[Measures].[Sales_Dollars],[Measures].[Sales_Units]}ON columns,NON EMPTY Crossjoin({[Time].[2000],[Time].[2001]},{[Product].[Bread],[Prodct].[Dairy],[Product].[Meat]})ON rows FROM[Sales]WHERE([State].[Canada],[Employee].[All Employee])对该表格进行再次操作过滤掉数据为空的单元后得到如下所需要的表2:
Figure C200710003016D00052
当应用多维表达式查询多维数据集得到如下表3,该表相对于表1中的度量维增加一个新的计算成员“其它”,计算成员“其它”表示该行是否有数据,具体表3如下:
Figure C200710003016D00061
当应用现有方法对表3进行过滤时,由于2000年上所有非计算成员单元都为空,但计算成员“其它”不为空,所以无法将物理上没有发生数据,即事实表中的度量销售金额和销售数量没有发生数据的时间维度成员2000年过滤,因此现有方法无法根据需要生成仅保留物理上发生数据的二维表格。
由上述分析可知,应用现有方法处理非空数据具有如下局限性:
首先,现有方法只能通过MDX执行引擎从多维数据集中查询或者根据MDX表达式计算得到二维表格,然后再对生成的二维表格进行过滤生成实际需要的二维表格,而无法在得到二维表格之前过滤部分数据,以缩小查询范围。当遇到生成的二维表格中空行或空列非常多的情况时,在遍历表格的过程中,就会浪费大量的时间,使得整个操作过程效率低下;
其次,现有方法没有区分非空过滤是只需考虑物理上发生的数据,还是需要考虑包括计算成员在内的所有数据,因为MDX查询语言标准中的NonEmpty关键字无法区分计算成员。因此,现有方法在进行非空数据的处理时,不能满足某些业务的特定需求,即需要过滤物理上没有发生数据的行或列,而实际的业务应用中存在大量这样的需求,极大地限制了OLAP查询的实用性和灵活性。
发明内容
本发明的目的是提供一种联机分析处理系统中处理非空数据的方法,以克服现有技术中无法在得到二维表格之前过滤部分数据,当遇到生成的二维表格中空行或空列非常多的情况时,在遍历表格的过程中浪费大量时间,降低了操作效率的问题。
本发明的另一目的是提供一种联机分析处理系统中处理非空数据的装置,以解决现有技术中联机分析处理表格中处理非空数据效率低下的问题。
为解决上述技术问题,本发明提供如下技术方案:
一种联机分析处理系统中处理非空数据的方法,包括:
A、根据源数据构造多维数据集;
B、当多维数据集中的维度成员有数据时,设置该维度成员的数据属性为真,否则数据属性为假;
C、解析定义的多维表达式得到查询轴的原始范围;
D、当只需考虑物理存在的数据时,遍历所述原始范围中的点上各个维度成员的组合,并将至少一个维度成员发生数据为空的点过滤得到初始二维表格;
E、遍历所述初始二维表格中各个行或列决定的所有单元,当所有单元都没有物理存在的数据时,将该行或列过滤得到所需的二维表格。
所述步骤B包括:
B1、初始根据源数据的维表构造多维数据集的维度时,将各个维度成员的数据属性均设置为假;
B2、根据源数据的事实表构造多维数据集的度量数据时,更新该事实表中有数据的所述维度成员的数据属性为真。
所述步骤D中将至少一个维度成员发生数据为空的点过滤具体为:
判断所述原始范围中的点上各个维度成员的数据属性,当至少一个维度成员的数据属性为假时将该点过滤。
所述方法还包括:
当需要考虑包括计算成员的所有数据时,根据所述原始范围从所述多维数据集中得到初始二维表格;
遍历所述初始二维表格中各个行或列决定的单元,当所有单元中的数据都为空时,将该行或列过滤得到所需的二维表格。
一种联机分析处理系统中处理非空数据的装置,包括:
构造多维数据集单元,用于根据源数据构造多维数据集;
设置属性单元,用于当多维数据集中的维度成员有数据时,设置该维度成员的数据属性为真,否则数据属性为假;
解析多维表达式单元,用于解析定义的多维表达式得到查询轴的原始范围;
判断条件单元,用于判断是否只需考虑物理存在的数据;
遍历维度成员单元,用于当判断条件单元判断只需考虑物理存在的数据时,遍历所述原始范围中的点上各个维度成员的组合,并将至少一个维度成员发生数据为空的点过滤得到初始二维表格;
处理物理数据单元,用于遍历所述初始二维表格中各个行或列决定的所有单元,当所有单元都没有物理存在的数据时,将该行或列过滤得到所需的二维表格。
所述装置还包括:
获取二维表格单元,用于当判断条件单元判断需要考虑包括计算成员的所有数据时,根据所述原始范围从所述多维数据集中得到初始二维表格;
遍历数据单元,用于遍历所述初始二维表格中各个行或列决定的单元,当所有单元中的数据都为空时,将该行或列过滤得到所需的二维表格。
由以上本发明提供的技术方案可见,本发明具有如下特点和优点:
首先,本发明通过预处理过滤维度上数据为空的成员,然后再对生成的初始二维表格进行过滤。这种方法当只需考虑物理存在的数据时,通过在MDX表达式中设置Non Fact Empty关键字,可以先过滤查询轴原始范围中至少一个维度成员发生数据为空的点,使得后续生成的初始二维表格中数据为空的单元大幅下降,在对该表格进行遍历过滤空数据的时候,极大减少了操作时间,提高了过滤效率;
其次,当需要考虑包括计算成员的所有数据时,本发明方法通过在MDX查询语句中设置Non Empty关键字,可以选择保留生成的二维表格中所有成员不为空的点。因此应用本发明进行非空数据处理时,不仅能够提高操作效率,而且极大提高了过滤的灵活性,使用者可以根据实际业务的需要对表格进行非空数据的处理,具有很强的实用性。
附图说明
图1为本发明方法流程图;
图2A为本发明实施例中时间维度结构图;
图2B为本发明实施例中产品维度结构图;
图3为本发明优选实施例流程图;
图4为本发明第二实施例的流程图;
图5为本发明第三实施例的流程图;
图6为本发明装置的优选实施例框图。
具体实施方式
本发明的核心是提供一种联机分析处理系统中处理非空数据的方法,通过解析定义的多维表达式得到查询轴的原始范围,当只需考虑物理存在的数据时,遍历该原始范围中的点上各个维度成员的组合,并将至少一个维度成员发生数据为空的点过滤得到初始二维表格;再遍历该初始二维表格中各个行或列决定的所有单元,当所有单元都没有物理存在的数据时,将该行或列过滤得到所需的二维表格。
本发明通过MDX查询OLAP获得需要的二维表格:
OLAP的主要特点是直接仿照用户的多角度思考模式,预先为用户组建多维的数据模型,其中维指的是用户的分析角度。例如,多销售数据的分析,时间周期是一个维度,产品类别、分销渠道、地理分布、客户群类也分别是一个维度。一旦多维数据模型建立完成,用户可以快速地从各个分析角度获取数据,也能动态的在各个角度之间切换或者进行多角度综合分析,具有极大的灵活性。MDX主要用于定义、使用及从多维对象中检索数据。通过MDX查询,可以将多维数据生成二维表格显示,二维表格的两边为Axis(轴),通常情况下这两个轴为Columns(列轴)和Rows(行轴);轴上的组成单元为Point(位置),Cube(立方体)是多维数据集;还包括Dimension(维度)、维度上的Member(成员)以及计算成员,其中,计算成员在物理上并不存在,是通过表达式定义的成员,它的值由表达式计算得到,形式上属于维度上的成员。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和实施方式对本发明作进一步的详细说明。
本发明方法流程如图1所示:
步骤101:设置多维数据集中维度成员的数据属性。
当根据源数据构造的多维数据集中维度成员有数据时,设置该维度成员的数据属性为真,否则数据属性为假。具体的,初始根据源数据的维表构造多维数据集的维度时,将各个维度成员的数据属性均设置为假,然后根据源数据的事实表构造多维数据集的度量数据时,更新该事实表中有数据的所述维度成员的数据属性为真。
步骤102:解析定义的多维表达式得到查询轴的原始范围。
步骤103:当只需考虑物理存在的数据时,执行步骤104;当需要考虑包括计算成员的所有数据时,执行步骤106。
步骤104:遍历各个点上维度成员的组合并过滤至少一个维度成员发生数据为空的点。
无论多维表达式中是否有计算成员,当只需考虑物理存在的数据时,遍历所述原始范围中的点上各个维度成员的组合,并将至少一个维度成员发生数据为空的点过滤得到初始二维表格。具体的,判断该点上各个维度成员的数据属性,当至少一个维度成员的数据属性为假时将该点过滤。
步骤105:将所有单元都没有物理存在数据的行或列过滤,结束流程。
遍历生成的初始二维表格中各个行或列决定的所有单元,当所有单元都没有物理存在的数据时,将该行或列过滤得到所需的二维表格。
步骤106:根据原始范围得到初始二维表格。
当多维表达式中有计算成员,且需要考虑包括计算成员的所有数据时,根据原始范围从多维数据集中得到初始二维表格。
步骤107:将所有单元都没有数据存在的行或列过滤,结束流程。
遍历生成的初始二维表格中各个行或列决定的单元,当所有单元中的数据都为空时,将该行或列过滤得到所需二维表格。
当应用MDX对多维数据集进行非空查询时,可以通过在MDX中加入Non Fact Empty关键字或Non Empty关键字对该多维数据集进行处理。其中,当MDX中加入Non Fact Empty关键字时,无论MDX中是否有计算成员,只判断多维数据集中物理上存在数据的点,当该点决定的所有单元物理数据为空时将该点过滤;当MDX中加入Non Empty关键字时,且MDX中有计算成员,判断一个轴上的所有点,当该点决定的所有单元数据为空时将该点过滤。
在通过MDX对多维数据集进行非空处理前首先需要根据源数据构造多维数据集并设置该多维数据集中各个维度成员的数据属性。假设源数据有两个维度,Time(时间)和Product(产品),以及两个度量值Amount(金额)和Quantity(数量)。其中,Time(时间)记录表如表4所示:
 
ID Year
1 2000
2 2001
Product(产品)记录表如表5所示:
 
ID Year
1 Bread
2 Dairy
3 Meat
事实表如表6所示:
 
Time ID Product ID Amout Quantity
2 1 2180.74 1046
2 2 4014.91 1884
遍历上述三个表格的记录,生成时间结构如图2所示,其中图2A为时间维度结构,图2B为产品维度结构。
遍历前述事实表表6,通过与维度关联的字段Time_ID和Product_ID,可以得到每行记录所关联的维度成员,例如根据表6中第一行记录,对应于Time中的2001和Product中的Bread得到如下对应信息:(2001,Product):(2180.74,1046);将以上得到的对应信息写入多维数据集中的存储系统中,即得到了构造的多维数据集。
初始时,将Time(时间)记录表4中的两个成员和Product(产品)记录表5中的三个成员的数据属性(hasData)分别设置为默认的假(false);在遍历事实表6的过程中,相应修改成员的数据属性,如表中的第一行记录,对应于Time的2001和Product的Bread中都有数据,因此将这两个成员的数据属性修改为真(true)。
本发明方法的优选实施例流程如图3所示,该图示出了在设置多维数据集中维度成员的数据属性后,当多维表达式中没有计算成员时通过Non FactEmpty关键字处理非空数据的流程。
步骤301:解析没有计算成员的多维表达式得到查询轴的原始范围。
假设多维表达式为:Select Measures.members on Columns,Non Fact EmptyCrossJoin(Time.members,Product.members)on Rows from cubeName。解析该多维表达式后得到如下各个维度成员,
Measures.members包括两个成员:
{[Measures].[Amount],Measures].[Quantity]};
Product.member包括三个成员:
{[Product].[Bread],[Product].[Dairy],[Product].[Meat]}
Time.members包括两个成员:
{[Time].[2000],[Time].[2001]}
因此,原始查询范围中的点上各个维度成员组合如下:
([Time].[2000],[Product].[Bread]);
([Time].[2000],[Product].[Dairy]);
([Time].[2000],[Product].[Meat]);
([Time].[2001],[Product].[Bread]);
([Time].[2001],[Product].[Dairy]);
([Time].[2001],[Product].[Meat])。
步骤302:过滤至少一个维度成员数据属性为假的点得到初始二维表格。
遍历步骤201中原始范围的点上各个维度成员的组合,判断该点上各个维度成员的数据属性,将至少一个维度成员数据属性为假的点过滤。由于[Time].[2000]的数据属性为假,因此将包含有[Time].[2000]的所有点均删除后,得到如下三个组合:
([Time].[2001],[Product].[Bread]);
([Time].[2001],[Product].[Dairy]);
([Time].[2001],[Product].[Meat])。
对应该结果的查询结构如下表7所示:
 
Time Product Amout Quantity
2001 Bread
2001 Dairy
2001 Meat
根据查询结构表7得到初始二维表格如下表8所示
 
Time Product Amout Quantity
2001 Bread 2180.74 1046
2001 Dairy 4014.91 1884
2001 Meat
步骤303:将初始二维表格中所有单元数据为空的行或列过滤。
遍历初始二维表格表8,判断Amount和Quantity是否都为空,将该表格中数据都为空的最后一行过滤后得到最终需要的二维表格如下表9所示:
 
Time Product Amout Quantity
2001 Bread 2180.74 1046
2001 Dairy 4014.91 1884
由于以上实施例的多维表达式中没有计算成员,因此也可以通过NonEmpty关键字处理非空数据,该多维表达式具体为:Select Measures.memberson Columns,Non Empty CrossJoin(Time.members,Product.members)on Rowsfrom cubeName。处理的具体流程同Non Fact Empty,在此不再赘述。
本发明方法的第二实施例流程如图4所示,该图示出了在设置多维数据集中维度成员的数据属性后,当多维表达式中有计算成员且只需考虑物理存在的数据时,通过Non Fact Empty关键字处理非空数据的流程。
步骤401:解析有计算成员的多维表达式得到查询轴的原始范围。
假设该多维表达式为:With[Measures].[Note]as‘说明’Select(Measures.members,[Measures].[Note])on Columns,Non Fact EmptyCrossJoin(Time.members,Product.members)on Rows from cubeName。该多维表达式为度量维定义了一个计算成员,该成员的值永远为字符串‘说明’。解析该多维表达式得到各个维度成员如下,
Measures.members包括两个成员:
{[Measures].[Amount],[Measures].[Quantity]}
(Measures.members,[Measures].[Note])包括三个成员:
{[Measures].[Amount],[Measures].[Quantity],[Measures].[Note]}
Product.members包括三个成员:
{[Product].[Bread],[Product].[Dairy],[Product].[Meat]}
Time.members包括两个成员:
{[Time].[2000],[Time].[2001]}
因此,原始查询范围中的点上各个维度成员组合如下:
([Time].[2000],[Product].[Bread]);
([Time].[2000],[Product].[Dairy]);
([Time].[2000],[Product].[Meat]);
([Time].[2001],[Product].[Bread]);
([Time].[2001],[Product].[Dairy]);
([Time].[2001],[Product].[Meat])。
步骤402:过滤至少一个维度成员数据属性为假的点得到初始二维表格。
遍历步骤401中原始范围中的点上各个维度成员的组合,判断该点上各个维度成员的数据属性,将至少一个维度成员数据属性为假的点过滤。由于[Time].[2000]的数据属性为假,因此将包含有[Time].[2000]的所有点均删除后,得到如下三个结果:
([Time].[2001],[Product].[Bread]);
([Time].[2001],[Product].[Dairy]);
([Time].[2001],[Product].[Meat])。
对应该结果的查询结构如下表10所示:
 
Time Product Amout Quantity Note
2001 Bread
2001 Dairy
2001 Meat
根据查询结构表10得到初始二维表格如下表11所示:
 
Time Product Amout Quantity Note
2001 Bread 2180.74 1046 说明
2001 Dairy 4014.91 1884 说明
2001 Meat 说明
步骤403:只考虑物理上存在数据的点,过滤初始二维表格中所有单元物理数据为空的行或列。
遍历初始二维表格11,判断Amount和Quantity是否都为空,由于计算成员Note物理上不存在数据所以不考虑,因此将该表格中最后一行过滤后得到最终需要的二维表格如下表12所示:
 
Time Product Amout Quantity Note
2001 Bread 2180.74 1046 说明
2001 Dairy 4014.91 1884 说明
本发明方法的第三实施例流程如图5所示,该图示出了在设置多维数据集中维度成员的数据属性后,当多维表达式中有计算成员且需要考虑所有数据时,通过Non Empty关键字处理非空数据的流程。
步骤501:解析有计算成员的多维表达式得到查询轴的原始范围。
假设该多维表达式为:With[Measures].[Note]as‘说明’Select(Measures.members,[Measures].[Note])on Columns,Non EmptyCrossJoin(Time.members,Product.members)on Rows from cubeName。该多维表达式为度量维定义了一个计算成员,该成员的值永远为字符串‘说明’,在过滤时需要考虑计算成员‘Note’中的数据。解析该多维表达式得到各个维度成员如下,
Measures.members包括两个成员:
{[Measures].[Amount],[Measures].[Quantity]}
(Measures.members,[Measures].[Note])包括三个成员:
{[Measures].[Amount],[Measures].[Quantity],[Measures].[Note]}
Product.members包括三个成员:
{[Product].[Bread],[Product].[Dairy],[Product].[Meat]}
Time.members包括两个成员:
{[Time].[2000],[Time].[2001]}
因此,原始查询范围中的点上各个维度成员组合如下:
([Time].[2000],[Product].[Bread]);
([Time].[2000],[Product].[Dairy]);
([Time].[2000],[Product].[Meat]);
([Time].[2001],[Product].[Bread]);
([Time].[2001],[Product].[Dairy]);
([Time].[2001],[Product].[Meat])。
步骤502:根据各个维度成员组合查询得到初始二维表格。
首先得到的查询结构如下表13所示:
 
Time Product Amout Quantity Note
2000 Bread
2000 Dairy
2000 Meat
2001 Bread
2001 Dairy
2001 Meat
根据查询结构表13得到初始二维表格如下表14所示:
 
Time Product Amout Quantity Note
2000 Bread 说明
2000 Dairy 说明
2000 Meat 说明
2001 Bread 2180.74 1046 说明
2001 Dairy 4014.91 1884 说明
2001 Meat 说明
步骤503:考虑包括计算成员的所有数据,过滤初始二维表格中所有单元数据为空的行或列。
遍历初始二维表格14,判断Amount、Quantity和Note是否都为空,由于计算成员‘Note’中的数据都不为空,因此遍历该表格后得到最终需要的二维表格同表14。
本发明装置的优选实施例框图如图6所示:
该装置包括:构造多维数据集模块610,用于根据源数据构造多维数据集;与构造多维数据集模块610相连的设置属性模块620,用于当多维数据集中的维度成员有数据时,设置该维度成员的数据属性为真,否则数据属性为假;与设置属性模块620相连的解析多维表达式模块630,用于解析定义的多维表达式得到查询轴的原始范围;与解析多维表达式模块630相连的判断条件模块640,用于判断是否只需考虑物理存在的数据;与判断条件模块640相连的遍历维度成员模块650,用于当判断条件单元判断只需考虑物理存在的数据时,遍历原始范围中的点上各个维度成员的组合,并将至少一个维度成员发生数据为空的点过滤得到初始二维表格;与遍历维度成员模块650相连的遍历物理数据模块660,用于遍历初始二维表格中各个行或列决定的所有单元,当所有单元都没有物理存在的数据时,将该行或列过滤得到所需的二维表格;以及与判断条件模块640相连的获取初始二维表格单元670,用于当判断条件单元判断需要考虑包括计算成员的所有数据时,根据原始范围从所述多维数据集中得到初始二维表格;与获取初始二维表格单元670相连的遍历数据模块680,用于遍历初始二维表格中各个行或列决定的单元,当所有单元中的数据都为空时,将该行或列过滤得到所需二维表格。
虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,希望所附的权利要求包括这些变形和变化而不脱离本发明的精神。

Claims (6)

1、一种联机分析处理系统中处理非空数据的方法,其特征在于,包括:
A、根据源数据构造多维数据集;
B、当多维数据集中的维度成员有数据时,设置该维度成员的数据属性为真,否则数据属性为假;
C、解析定义的多维表达式得到查询轴的原始范围;
D、当只需考虑物理存在的数据时,遍历所述原始范围中的点上各个维度成员的组合,并将至少一个维度成员发生数据为空的点过滤得到初始二维表格;
E、遍历所述初始二维表格中各个行或列决定的所有单元,当所有单元都没有物理存在的数据时,将该行或列过滤得到所需的二维表格。
2、根据权利要求1所述的方法,其特征在于,所述步骤B包括:
B1、初始根据源数据的维表构造多维数据集的维度时,将各个维度成员的数据属性均设置为假;
B2、根据源数据的事实表构造多维数据集的度量数据时,更新该事实表中有数据的所述维度成员的数据属性为真。
3、根据权利要求1所述的方法,其特征在于,所述步骤D中将至少一个维度成员发生数据为空的点过滤具体为:
判断所述原始范围中的点上各个维度成员的数据属性,当至少一个维度成员的数据属性为假时将该点过滤。
4、根据权利要求1所述的方法,其特征在于,所述方法还包括:
当需要考虑包括计算成员的所有数据时,根据所述原始范围从所述多维数据集中得到初始二维表格;
遍历所述初始二维表格中各个行或列决定的单元,当所有单元中的数据都为空时,将该行或列过滤得到所需的二维表格。
5、一种联机分析处理系统中处理非空数据的装置,其特征在于,包括:
构造多维数据集单元,用于根据源数据构造多维数据集;
设置属性单元,用于当多维数据集中的维度成员有数据时,设置该维度成员的数据属性为真,否则数据属性为假;
解析多维表达式单元,用于解析定义的多维表达式得到查询轴的原始范围;
判断条件单元,用于判断是否只需考虑物理存在的数据;
遍历维度成员单元,用于当判断条件单元判断只需考虑物理存在的数据时,遍历所述原始范围中的点上各个维度成员的组合,并将至少一个维度成员发生数据为空的点过滤得到初始二维表格;
处理物理数据单元,用于遍历所述初始二维表格中各个行或列决定的所有单元,当所有单元都没有物理存在的数据时,将该行或列过滤得到所需的二维表格。
6、根据权利要求5所述的装置,其特征在于,所述装置还包括:
获取二维表格单元,用于当判断条件单元判断需要考虑包括计算成员的所有数据时,根据所述原始范围从所述多维数据集中得到初始二维表格;
遍历数据单元,用于遍历所述初始二维表格中各个行或列决定的单元,当所有单元中的数据都为空时,将该行或列过滤得到所需的二维表格。
CNB2007100030168A 2007-01-30 2007-01-30 联机分析处理系统中处理非空数据的方法和装置 Active CN100495403C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2007100030168A CN100495403C (zh) 2007-01-30 2007-01-30 联机分析处理系统中处理非空数据的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2007100030168A CN100495403C (zh) 2007-01-30 2007-01-30 联机分析处理系统中处理非空数据的方法和装置

Publications (2)

Publication Number Publication Date
CN101008953A CN101008953A (zh) 2007-08-01
CN100495403C true CN100495403C (zh) 2009-06-03

Family

ID=38697386

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2007100030168A Active CN100495403C (zh) 2007-01-30 2007-01-30 联机分析处理系统中处理非空数据的方法和装置

Country Status (1)

Country Link
CN (1) CN100495403C (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9886460B2 (en) * 2012-09-12 2018-02-06 International Business Machines Corporation Tuple reduction for hierarchies of a dimension

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI436222B (zh) * 2011-12-28 2014-05-01 Chunghwa Telecom Co Ltd Real - time multi - dimensional analysis system and method on cloud
CN102938097B (zh) * 2012-09-28 2016-09-28 用友网络科技股份有限公司 用于联机分析处理系统的数据处理装置和数据处理方法
CN110442854B (zh) * 2019-08-13 2023-04-07 北京源清慧虹信息科技有限公司 报表的生成方法、装置、计算机设备和可读存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Microsoft OLAP解决方案. Erik Thomsen,George Spofford,Dick Chase,127-128,人民邮电出版社. 2000
Microsoft OLAP解决方案. Erik Thomsen,George Spofford,Dick Chase,127-128,人民邮电出版社. 2000 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9886460B2 (en) * 2012-09-12 2018-02-06 International Business Machines Corporation Tuple reduction for hierarchies of a dimension

Also Published As

Publication number Publication date
CN101008953A (zh) 2007-08-01

Similar Documents

Publication Publication Date Title
CN109669934B (zh) 一种切合电力客服业务的数据仓库系统及其构建方法
Ghazal et al. Bigbench: Towards an industry standard benchmark for big data analytics
CN107016501A (zh) 一种高效的工业大数据多维分析方法
CN105159971B (zh) 一种云平台数据检索方法
Dehdouh Building OLAP cubes from columnar NoSQL data warehouses
US20150186481A1 (en) Extract, transform and load (etl) system and method
CN101008954A (zh) 联机分析处理系统中多维表达式数据缓存的方法和装置
CN104346371A (zh) 内存数据库驱动业务整合系统报告
CN100495403C (zh) 联机分析处理系统中处理非空数据的方法和装置
Vaisman et al. Data warehouses: Next challenges
Kang et al. Distributed graph cube generation using Spark framework
CN102270201B (zh) 用于网络文件的多维索引的方法和设备
Wang et al. A review of input–output model application hot spots in the energy and environment fields based on co-words network analysis
Suriarachchi et al. Big provenance stream processing for data intensive computations
JP2018037069A (ja) レポートの重要度を分析するメタデータ基盤のオンライン分析処理システム
US10983997B2 (en) Path query evaluation in graph databases
CN113254517A (zh) 一种基于互联网大数据的服务提供方法
US8250024B2 (en) Search relevance in business intelligence systems through networked ranking
WO2016119508A1 (zh) 基于Spark系统的大规模对象识别方法
Shao et al. The establishment of data analysis model about E-commerce’s behavior based on Hadoop platform
CN104899652A (zh) 综合数据交互下的文化演艺运营平台决策支持系统
Priya et al. Entity resolution for high velocity streams using semantic measures
Xiao et al. Nested pattern queries processing optimization over multi-dimensional event streams
Jemal et al. MapReduce-DBMS: an integration model for big data management and optimization
Uzunbaz et al. Shared execution techniques for business data analytics over big data streams

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant