创建cube 维度层次

http://blog.programmingsolution.net/ssas-2008/period-dimension-time-dimension-creation-with-year-month-day-hierarchy/

假设我们有一个周期表,其中包含了一些典型周期列,像Period_Key,日,月,年 

在该表中,我们也典型的期间内的行,如

PeriodTable1

 

 

现在,我们要创建一个时期从它的尺寸。

通常,我们可以创建一个数据源和数据源视图中的分析服务项目。 我不打算在它的细节。 现在我们可以从这一时期表创建维度使用维度向导。

 

这将启动维度向导。 从现有的表中,我们可以选择创建维度,这是我们的周期表。

 

由于尺寸的表,我们将选择的周期表。 对于这个尺寸的键列,我们选择PeriodKey的。 显示名称(名称列),我们选择PeriodKey的。

对于维度属性,我们选择了所有四个可用的属性。 我们肯定会在以后配置它们。 现在,我们让他们定期

然后,我们即将完成以下步骤创建期间尺寸。

当我们完成创造我们的尺寸,我们会看到这个窗口。

 

现在,我们想进入我们自己定制的,现在所提供的向导。 我们将创建层次和另外解决的一些问题,我们创建的层次。

在这个阶段,我们可以处理该维度,它会被成功处理。 但我们要创建的层次结构。 我们希望有一个自然周期的层次,就会像

年 - >月 - >日

可以拖动年度的属性在层次结构板(中间面板)。 然后,我们可以拖动一个月属性,并保持低于去年,同样拖动天属性,并把它在层次结构中低于月。 最后一个层次,应该这个样子。

这里谈到一个有趣的事情。 我们看到一个警告的层次。

警告: 属性关系不存在,在此层次结构中的一个或多个级别之间。 这可能会导致查询性能下降。

现在是什么属性的关系。 在右侧的尺寸结构中,我们可以看到一个标签名为属性的关系。

如果我们点击,我们将看到由向导设置的属性的默认关系。

这意味着数据将被收集的所有属性。 PeriodKey这个尺寸是关键。 因此立方体从底层表数据PeriodKey属性。 那时,若​​有人想要看到的数据,在今年的水平,将汇总数据的PeriodKey会给值。 同样的事情也会发生的月和日。 但我们知道,获得年度电平值,我们做了需要聚集所有的数据在PeriodKey水平。 我们可以很容易地聚合数据月水平,这应该是30倍左右,天级数据少。 因此,这将提高查询的性能。 如果我们需要的总天级的数据年份,这将不会是良好的表现。 这是警告消息提的东西。

因此,我们可以象下面这样设置的关系。 点击上月,将其拖动到新年。 再次点击日,将其拖动到月。

现在,如果我们去维度结构“选项卡,在这里我们首先是,我们将看到警告了。

记住:如果你不设置的属性关系,那么你也将得到正确的值,而是根据你的数据量,它可能会很慢。 有时在其他维度,我们创建的层次,但我们真的不希望设置的属性关系的水平。 我们希望所有级别越来越属性键的数据。 但是,这是一个不同的场景。

 

现在,我们可以处理的尺寸。 但这里是另一大看点。 处理失败。

它给出了一个重复键错误。 为什么呢?

现在,我们应该寻找到另一件事。 每个属性的属性维度。

点击年度属性,并期待在属性部分。

查看中KeyColumns和NameColumn属性。

KeyColumn成员从底层表的属性。 它会发出不同的查询表的主键列。 返回的行会的成员,这个属性。 name列用于对这些成员的显示值。

年度,我们有键列Period.Year。 因此,它会给我们带来年的成员,通常是,2008年,2009,2010,...

对我们来说,这是确定的。

一个月,我们可以看到以下内容:

用作键列Period.Month。 这看起来不错,但事实并非如此。 如果我们采取不同的月周期表,我们将得到1,2,3,4,........,29,30,31。 但看到月低于去年的层次。 只要我们创建了一个层次,这将涉及作为一个树形结构,其中一年成员将母公司月份成员本月成员年度成员。 一个重要的事情是:一个父成员可以有多个孩子。 但一个孩子成员不能有多个父。 但在我们的例子中,月“1”有一个以上的家长,这是所有年。 所有其他月份相同。 因此,我们需要有多个“1”的成员在一个月的水平,每个人的每一年。 从本质上讲,我们希望有这样的结构

所以,如果发出这样一个明显的周期表上的查询:

选择不同的年,月

从期间

然后,我们会得到这样的:

2008

1

2008

2

2008

3

2009

1

2009

2

2009

3

2010

1

2010

2

2010

3

 

因此,我们将得到所有的个成员每年复制。 通过这种方式,我们可以消除“一个孩子多个父”的问题。

现在,如果我们改变中KeyColumns本月如下属性,那么我们就可以得到这个实施。

按一下按钮,以打开的KeyColumns设置窗口。

我们将会看到,在右侧面板中只有月。

我们将增加今年列。

单击确定后,我们会看到一个错误消息,在本月属性。

的NameColumn应该被定义,因为有多个的KeyColumns。

 

很自然的,是不是?

现在下面的KeyColumns,我们可以设置的NameColumn。 我们将设置的NameColumn月。 所以,我们希望在同一个月要生成的多个成员,但应该显示相同,是不是?

现在我们有我们的KeyColumns年“和”月“作为一个集合,和NameColumn月。

这同样的事情,我们应该做的日属性。 中KeyColumns使用年,月,日,日“名称”列中。

 

 

 

现在,我们已经删除了重复键错误,这实际上大多为独生子女,多个父案发生。

处理的维度和维度浏览器中,你可以看到一个很好的时期层次。

原文地址:https://www.cnblogs.com/ifreesoft/p/3257892.html