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

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

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

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

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

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

由于尺寸的表,我们将选择的周期表。 对于这个尺寸的键列,我们选择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使用年,月,日,日“名称”列中。

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

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

创建cube 维度层次的更多相关文章

  1. SSAS系列——【06】多维数据(创建Cube)

    原文:SSAS系列--[06]多维数据(创建Cube) 1.文件类型说明 项目定义文件 (.dwproj).项目用户设置 (.dwproj.user).数据源文件 (.ds).数据源视图文件 (.ds ...

  2. SSAS Cube 维度成员关系Rigid 和 Flexible

    维度成员关系指示成员关系是否随时间而更改.  值为 Rigid 和 Flexible,前者表示成员之间的关系不随时间而更改,后者表示成员之间的关系随时间而更改. 默认值为 Flexible.  指定适 ...

  3. 《BI项目笔记》创建父子维度

    创建步骤: 而ParentOriginID其实就是对应的ParentOriginID,它的 Usage 必须是 Parent 才能表示这样的一个父子维度. 查看OriginID属性, Usage 是 ...

  4. 《BI项目笔记》创建时间维度(1)

    SSAS Date 维度基本上在所有的 Cube 设计过程中都存在,很难见到没有时间维度的 OLAP 数据库.但是根据不同的项目需求, Date 维度的设计可能不大相同,所以在设计时间维度的时候需要搞 ...

  5. 《BI项目笔记》创建时间维度(2)

    创建步骤:   序号 选择的属性 重命名后的名称 属性类别 1 DateKey DateKey 常规 2 Month Key Month Key 月份 3 English Month Name Eng ...

  6. Tensor的创建和维度的查看

    常见的Tensor创建方法 1,基础Tensor函数:torch.Tensor(2,2)32位浮点型 2,指定类型: torch.DoubleTensor(2,2)64位浮点型 3,使用python的 ...

  7. 《BI项目笔记》创建标准维度、维度自定义层次结构

  8. Transform数据权限浅析1之mdl语句批量加载权限

    Cognos建模工具除了Framework之外,还有一个Transform,两者的最大区别就是在于Framework是通过结构直连关系数据库的,数据根据数据仓库的变化而变化,而Transform是生产 ...

  9. 微软BI 之SSAS 系列 - 实现Cube 以及角色扮演维度,度量值格式化和计算成员的创建

    在熟悉完下面这三种维度的创建方式之后,就可以开始创建我们的第一个 Cube 了. SSAS 系列 - 自定义的日期维度设计 SSAS 系列 - 基于雪花模型的维度设计 SSAS系列 - 关于父子维度的 ...

随机推荐

  1. Android 学习之逐帧动画(Frame)

    帧动画就是将一些列图片.依次播放. 利用肉眼的"视觉暂留"的原理,给用户的感觉是动画的错觉,逐帧动画的原理和早期的电影原理是一样的. a:须要定义逐帧动画,能够通过代码定义.也能够 ...

  2. Android系统开发(6)——Linux底层输入输出

    一.操作系统的体系结构 计算机是由一堆硬件组成的,操作系统是为了有效的控制这些硬件资源的软件.操作系统除了有效地控制这些硬件资源的分配.并提供计算机执行所须要的功能之外,为了提供程序猿更easy开发软 ...

  3. 笔记04 WPF对象引用

    转自:http://www.fx114.net/qa-261-90254.aspx 我们应该都知道,XAML是一种声明式语言,XAML的标签声明的就是对象.一个XAML标签会对应着一个对象,这个对象一 ...

  4. adb tcp 调试

    su setprop service.adb.tcp.port 5555 stop adbd start adbd

  5. sap保存时小写字母自己主动转大写字母的解决方法

    在实际应用中.ABAP保存数据到后台数据库表中时.会自己主动把前台输入的小写字母自己主动转换为大写字母来保存.有时候客户可能不须要转换,就须要用到以下的方法:       1.找到相应字段的Data ...

  6. 记使用WaitGroup时的一个错误

    记使用WaitGroup时的一个错误 近期重构我之前写的server代码时,不当使用了WaitGroup,碰到了个错误,记录下. package main import ( "fmt&quo ...

  7. unity3d从零開始(五):了解摄像机

    1.简单介绍         Unity的摄像机是用来将游戏世界呈现给玩家的,游戏场景中至少有一台摄像机.也能够有多台. 2.类型         Unity中支持两种类型的摄像机,各自是Perspe ...

  8. SAM4E单片机之旅——8、UART初步

    通信还是比让LED灯闪烁实用得多的. 这次试试使用UART,实现开发版和PC间的通信.功能比较简单,就是把PC发向开发版的内容发送回去.这次主要介绍一下UART的配置,至于通信,则使用较为简单的不断查 ...

  9. Android笔记之dp与px之间的转换以及LayoutParams

    dp与px之间的转换公式 px = dp * (dpi / 160) dp = px / (dpi / 160) 其中dpi的获取方式如下 private void getDpi() { Displa ...

  10. Kotlin基本语法笔记之函数、变量的定义及null检测

    定义函数 fun sum(a: Int, b: Int): Int { return a + b } 该函数中两个参数的类型都是Int,返回类型是Int 也可以做如下简化 fun sum(a: Int ...