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. Hadoop 50090端口的页面, Replication的数字是真实的文件备份数吗? (不是)

    红色方框的部分,代表Hadoop系统,人工设定的文件备份数,但不是实际的备份数.文件备份数 不会大于集群机器的总数目(因为备份文件不会同时存在一台机器上,这样就没有意义),所以如果总集群数目是2,即使 ...

  2. 手把手教你nginx/linux下如何增加网站

    先进入到nginx的配置文件目录请输入以下命令 cd /alidata/server/nginx/conf/vhosts 再输入   ll 看看是不是像下面截图的一样 用神器xftp将default. ...

  3. linux 信号屏蔽

    <span style="font-size:18px;">#include <sys/types.h> #include <unistd.h> ...

  4. windows下的txt格式转换成linux下的TXT

    存在的问题是 多出一个方框或者黑格子 主要是因为bash 不能忽略windows的问题 用sed 命令来处理,分别是windows转linux,linux转windows sed -e 's/.$// ...

  5. Linux中ctrl+z 、ctrl+c、 ctrl+d差别

    ctrl+c,ctrl+d,ctrl+z在linux程序中意义和差别 ctrl+c和ctrl+z都是中断命令,可是他们的作用却不一样.   ctrl+c是强制中断程序的运行,,进程已经终止.   ct ...

  6. 【Web探索之旅】第三部分第一课:server

    wx_fmt=jpeg" alt="0? wx_fmt=jpeg" style="height:auto"> 内容简单介绍 .第三部分第一课:s ...

  7. Chisel辅助iOS 应用程序调试,MusicApp模仿酷狗4.0 UI框架

    本文转载至 http://www.cocoachina.com/ios/20140825/9446.html Chisel Chisel集合了大量的LLDB 命令来辅助iOS 应用程序调试,并支持添 ...

  8. wcf系列(一)--- 寄宿方式

    一.自我寄宿(self-hosting) 1.wcf采用基于终结点(Endpoint)的通信手段:终结点由:地址(Address)+绑定(Binding)+契约(Contract)组成:  Enpoi ...

  9. Timing breakdown phases explained

    https://developers.google.com/web/tools/chrome-devtools/network-performance/reference#timing-explana ...

  10. Write Custom Java to Create LZO Files

    https://cwiki.apache.org/confluence/display/Hive/LanguageManual+LZO LanguageManual LZO     Skip to e ...