如何从Analysis Services获取“原始”事实数据

时间:2010-01-24 18:17:57

标签: .net sql-server ssas olap mdx

我们开发了一个自定义MOLAP引擎,用于实时处理大量正在处理的数据。现在我们需要将SSAS与我们的系统集成。 Dimension的元信息和属性数据非常容易获得。 但是,如何在不使用SSAS计算聚合(即仅存储在叶子上的数据)的情况下获取事实数据? 我们自己进行的聚合和计算。

从SQL数据库中选择数据不是解决方案,因为加载时Cube可以执行连接,过滤。清理数据等。

实施例

假设我们有产品维度:

  • Product.All
    + Product.Bread
    + Product.Chair
    + Product.Book

事实表 - 销售:

|Product|Qty|  
|Bread  | 1 |  
|Chair  | 3 |  

我想从多维数据集中获取实际数据,而不是聚合一个:

|Product|Qty|
|All    | 4 |  
|Book   | 0 |  
|Bread  | 1 |  
|Chair  | 3 |

3 个答案:

答案 0 :(得分:4)

尝试在SSAS中查看DrillThrough。这可以显示事实纹理数据,并且在双击单元格时可以在Excel中作为默认操作使用。您可以自定义结果集,只要所有度量/维度都来自相关的事实表:

http://csjohnlam.spaces.live.com/Blog/cns!996308EF3A99432B!214.entry?sa=340601263

你也会发现这很有用:

http://asstoredprocedures.codeplex.com/wikipage?title=Drillthrough&referringTitle=Home

答案 1 :(得分:1)

总而言之,如果不重新处理多维数据集,则无法获取更新的事实。如果您想要实时获取原始数据,则必须自己从数据仓库中的维度/事实表中自行计算。

答案 2 :(得分:1)

在ssas中你可以禁用层次结构级别聚合,对于空行,在获取数据之前使用非空作为关键字