我正在SSAS上创建一个POC . 最终目标是能够执行任何类型的计算,无论是临时计算还是预先计算好的性能 . 现有的解决方案基于SQL服务器,但由于面临巨大数据的性能问题 .

我需要了解Cube如何工作以提供更快的输出 . 我创建了日期维度,其层次结构为Year-> Semester-> Quarter - > Month - > Week - > Date . 其他几个维度与日期维度相关联 . 我的立方体有几乎10到15维度,有几个角色扮演维度 . 每个事实表中几乎有两到三个日期 .

  • 多维数据集如何根据与事实相关联的维度聚合数据?

  • 它是否在内部创建维度值的所有组合并在内部保存事实聚合数据?

  • 这里我附加了一个MDX脚本,该脚本具有YTD,MTD,QTD计算度量 . [度量] . [值]度量必须根据应用于日期维度的函数添加 . SSAS内部总结了[度量] . [值]日期/其他维度/ s的各种层次结构? SSAS究竟做了什么来快速提供最终 Value ?

  • 我们的系统有大量字段,其计算取决于最终用户选择的数值,必须通过汇总其他一些度量来计算运行时的数字 . 通过使用多维数据集处理期间生成的内部聚合值,SSAS是否能够快速提供Calcualted Member输出?

With Member [Measures].[YTDValue] as ([Measures].[Value],
 OpeningPeriod([Rundate].[Calendar].[Date],[Rundate].[Calendar].CurrentMember.Parent.Parent.Parent.Parent.Parent))
 Member [Measures].[QTDValue]
                        as ([Measures].[Value],OpeningPeriod([Rundate].[Calendar].[Date],[Rundate].[Calendar].CurrentMember.Parent.Parent.Parent))
 Member [Measures].[MTDValue]
                        as ([Measures].[Value],OpeningPeriod([Rundate].[Calendar].[Date],[Rundate].[Calendar].CurrentMember.Parent.Parent))

        SELECT 

                    {   
                        [Measures].[YTDValue],
                        [Measures].[QTDValue],
                        [Measures].[MTDValue],
                    } on 0,

                    {   
                        [Rundate].[Calendar].[Date].Members
                    } ON 1

                    FROM  
                    (
                        select 
                        {
                            [Rundate].[Calendar].[Date].&[2015-01-09T00:00:00]
                        } on 0 
                        from [Cube_Sample]
                    )