• 创建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使用年,月,日,日“名称”列中。

     

     

     

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

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

  • 相关阅读:
    进程、线程、协程嵌套出现内层程序丢失
    ResourceServerConfiguration关键代码
    BPwdEncoderUtils关键代码
    SwaggerConfig关键代码
    解决:Data source rejected establishment of connection, message from server: "Too many connections"
    HttpUtils关键代码
    解决:Could not autowire. No beans of 'XXXXXXXXXX' type found.
    UserUtils关键代码
    解决:Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.
    JwtConfiguration关键代码
  • 原文地址:https://www.cnblogs.com/ifreesoft/p/3257892.html
Copyright © 2020-2023  润新知