用于数据仓库的选择聚集层和交叉产品层的方法和装置制造方法及图纸

技术编号:2884010 阅读:234 留言:0更新日期:2012-04-11 18:40
一种定义用于在具有一个或多个维度的数据存储的聚集的聚集层(图2B)、聚集子层和交叉产品层的方法(图2A)。层根据维度中的属性来定义,因此数据可以根据那些属性的值被聚集成聚集(图3A和3B)。(*该技术在2020年保护过期,可自由使用*)

【技术实现步骤摘要】
专利技术的背景本专利技术涉及一种选择在数据仓库中产生的聚集(aggregates)的方法。数据仓库通常包含关于一种商业结构的大量的数据,从中信息被检索和分析。Ralph Kimball.John Wiley & Sons公司的数据仓库工具箱ISBN 0-471-15337-0对数据库的背景进行了很好地介绍。建立一个成功的数据库的首要的步骤之一是正确地识别商业结构的不同维度(dimension)和事实(fact)集合,通常称之为维度建模。每个维度表示一个参与在事实集合而独立于来自其它维度的实体的唯一的实体的聚集。事实集合通常包括事项处理数据,其中每个事项处理(或记录)由来自每个维度一个的实体的组合识别。附图说明图1表示了一个用于超级市场经营的星形模式,该星形模式是维度建模过程的结果。每个维度是一个表,其中每个记录包括一个唯一地表示每个实体的码(或复合码)和限定或描述相关实体(或码)的属性(attribute)列表。在事实表中的每个事实记录应包括一个外码用于连接到每个维度和表示事项处理数据的测度(measures)列表。因为维度的大小通常比事实表小得多,维度表通常不进一步的规范化(normalized)。因此,通过规范化节约的空间并不显著。并且,OLAP(联机分析处理)查询工具在查询运行期间连接规范化了的维度并不节省时间。理论上,在上述的星形模式的结构中,OLAP工具可以直接查询包含事项处理数据的数据仓库。但是,为了达到高级查询的快速响应时间,例如,获得一种特定品牌的产品在每个州的月销售量的查询,必须要求数据仓库数据的预聚集。数据预聚集是重要的,因为它促进了OLAP工具在普通请求的查询(问题)方面的快速查询响应时间。因此,能够定义在数据库中产生的正确的聚集集甚至更为重要。但是,OLAP工具可能不会从预计算的聚集中获益。为了聚集的目的,每个维度定义有数据层。根据条件每层定义了一组维度登录项(entry)。例如,在商店维度中,对不同的州定义有一个层,因此对每个州层将包含一个聚集维度记录,其中每个聚集记录表示至少一个商店。换句话说,一个特定的州的聚集维度表示在这个州的所有商店的聚集。同样,我们可以在商店维度中定义另一个城市层以便允许建立聚集维度记录,其中每个登录项表示一个特定的城市中所有商店的聚集。层也称为聚集层。因此,每个层确定在该特定层中产生的聚集组。与每层相关的规则或条件用于识别具体维度记录和聚集维度记录之间的包含关系。条件还将各种分组的具体层维度记录确定成不同的聚集。每个聚集维度记录包括一个替换(或合成)码,因为在输入维度表中它的维度记录原先没有被提供。码用于将聚集维度记录同输出事实表中产生的聚集相结合。在多数情况下,也产生替换码以用于输入维度记录以便聚集和输入维度记录两者有同样的格式。在此,所有的事实聚集记录也可以有一种格式,因为它们可以连接到的每个维度聚集中或具有相同类型码的输入层记录中。对于一个聚集维度记录,不是所有的属性是有效或有意义的。在某些情况下,某些属性值被删除。例如,在商店维度中,州层中的聚集维度记录将使它的街道地址和城市属性删除,因为这些属性描述单个的商店。删除的属性可以填为无效值或用户定义的缺省值。在输出事实数据中需要的聚集由要聚集的,来自每个维度一个的层的组合来定义。用于定义聚集的层的组合还称为层的交叉产品,以上述的星形模式中的查询某州某品牌的产品月销量为例,相关的层需要在每个维度中定义,同时根据三个特定的层的交叉产品,事项处理数据的聚集需要被要求。用户可以定义一个它们需要聚集的交叉产品的列表。输入层(或具体)的交叉产品表示输入或具体(detan)事实数据。通常在具有一个包括所有的维度记录的单个成员的维度中定义一个“维度”层。使用在交叉产品中的这个层可以有效地从交叉产品删除该维度。例如,如果在上述的交叉产品的产品维度中定义维度层,就可以产生州的月查询。在此文件中所介绍的技术涉及在维度中定义层。今天,许多OLAP工具允许用户定义简单的聚集层。这些层通常建立在表的一个或多个列(column)的不同的值的基础上。此技术满足了大多数重复和单一的OLAP查询的需要。但是,通过列的组合和或使用多重选择标准的更先进的查询可以从更高级的预产生的聚集获益。在某些情况下,这些更高级的查询是规范(norm)。以前的由当前的代理人建立的产品提供了在具体维度记录和聚集维度记录间进行识别包含关系和进行事实数据聚集的咨询服务。用于识别聚集维度记录的层规则严格地以不同的属性值为基础。每个层规则可以有零或多个规则项。如果在层规则中没有定义规则项,就意味着所有的维度记录可以无条件地聚集成聚集记录。每个规则项表示一个不同的维度属性并且规则项既可以是有条件的也可以是无条件的。无条件的规则项仅包括来自相关维度的一个属性。例如,商店维度可以有一个州属性的无条件规则项的层。意味着将对每个输入维度的州属性的不同值产生一个聚集维度记录。有条件的规则项包括一个属性,一个相等或不等的运算符和一个值。例如,如果有条件规则项商店维度为“州等于TX(德克萨斯)”,于是有州等于TX维度记录,就产生一个聚集维度。如果有条件规则项是“州不等于TX”,于是除了TX每个州属性的不同(distinct)值产生一个聚集维度记录。多规则项的层规则对于规则项聚集的每个不同的组合属性值产生一个聚集维度记录。定义的多规则项考虑了在属性或层的实际分层顺序未知时识别分层层。例如,层规则可以有两个无条件的规则项一个用于州属性,另一个用于城市属性。如果两个城市有相同的名称,但是却来自不同的州,它们将适当地产生两个不同的聚集记录。另一方面,如果层规则只有一个城市属性的无条件规则项,则两个城市的事实数据将错误地聚集为一个记录。另一个提供聚集的产品是微软的SQL Server 7.0 Beta OLAP服务器,代号为Plato。每层与一维属性关联。但是,所有的层按分层的顺序定义,所以当前的和所有的更高的层的每个特殊属性值组合产生一个聚集记录。因此,它类似于上述的当前代理人的以前产品的无条件的层规则。OLAP和聚集产品需要一个识别聚集层的精确和灵活的方法。通常的运算是根据在维度表的一个或多个列中提供的不同值识别层。每个唯一的层列的组合表示在此层的一个聚集。例如,层列的城市和州可以是休斯顿和德克萨斯州唯一的组合,其表示在城市聚集层的一个聚集。由于以下一些原因,通常在实践中不太灵活需要的功能有能够定义可以限制产生的聚集的层以便不产生所有的组合。重要的是控制数据仓库的增长,并产生不太有用的聚集或不包含过多的昂贵又浪费空间的数据的聚集。例如,如果在德克萨斯州的奥斯汀只有一个商店,用户应该能够防止奥斯汀的聚集记录被增加到维度中。以此方式,用户可以调整到真正需要加速OLAP分析的聚集。先前的产品在一定程度上提供了选择的功能,但是它们用起来很麻烦。需要的功能有能够定义不是容易地从维度属性导出的层。例如,给定的州、城市和人口属性,我们可以需要州的小城镇的聚集。虽然可以容易地建立包括城市、州和人口<50000的层(容易假设你有基于表达式的层识别),这产生单个的聚集维度记录,如那瓦沙达、德克萨斯、23450和巴黎、德克萨斯、34982。没有迅速的方法以获得州的所有的人口<5本文档来自技高网...

【技术保护点】
一种对应于数据库中的具体数据登录项的分组定义至少一个维度的聚集层的方法,所述的维度具体登录项表示所述的维度的实体的集合,其中每个维度具体登录项包括至少一个属性字段,所述的属性对每个所述的实体是共同的,所述的定义聚集层的方法包括如下步骤: 在所述的维度中定义与所述的层有关的至少一个属性的一个层规则,这里所述的层至少有一个成员,每个成员对应于所述的至少一个属性的每个中的一个属性值,每个成员相关于至少一个与层成员具有相同属性值的所述维度的具体登录项;其中所述的规则中的至少一个 包括根据在所述的层定义中合成的一个属性的属性值的逻辑表达式并判断是否满足所述的逻辑表达式的表示属性值的层成员存在于层中;在所述的数据库中聚集的数据可以基于在所述的层规则中合成的属性值被分组,并且可以作出如是否一个特别的数据登录项根据它是 否满足与所述的层规则相关的逻辑表达式应该对对应的组有贡献的决定。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:迈克尔迪安洛尔伊娃曼燕采
申请(专利权)人:白金技术IP公司
类型:发明
国别省市:US[美国]

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

1