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

 

 

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

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

创建cube 维度层次

创建cube 维度层次

 

 

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

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

创建cube 维度层次

 

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

 

创建cube 维度层次

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

创建cube 维度层次

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

创建cube 维度层次

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

创建cube 维度层次

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

 

创建cube 维度层次

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

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

年 - >月 - >日

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

创建cube 维度层次

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

创建cube 维度层次

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

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

创建cube 维度层次

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

创建cube 维度层次

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

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

创建cube 维度层次

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

创建cube 维度层次

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

 

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

创建cube 维度层次

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

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

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

创建cube 维度层次

查看中KeyColumns和NameColumn属性。

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

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

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

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

创建cube 维度层次

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

创建cube 维度层次

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

选择不同的年,月

从期间

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

2008

1

2008

2

2008

3

2009

1

2009

2

2009

3

2010

1

2010

2

2010

3

 

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

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

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

创建cube 维度层次

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

创建cube 维度层次

我们将增加今年列。

创建cube 维度层次

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

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

 

创建cube 维度层次

很自然的,是不是?

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

创建cube 维度层次

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

创建cube 维度层次

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

创建cube 维度层次

 

创建cube 维度层次

 

 

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

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

创建cube 维度层次

相关文章: