在计算中访问系统表

时间:2012-10-25 18:21:56

标签: sql sql-server ssas mdx

有没有办法在SSAS多维数据集计算中访问系统表?

例如,可以在SSAS多维数据集上执行以下查询以返回上次处理的日期:

SELECT LAST_DATA_UPDATE FROM $System.MDSCHEMA_CUBES WHERE CUBE_NAME = 'Cube'

如何在计算中访问此信息?

背景:我们之前使用ASSP(第三方sproc)来获取最后一个多维数据集处理日期。最近,这个sproc在我们的一个立方体上引发了一个例外,导致SSAS崩溃。使用上面的MDX行没有这种行为。我宁愿不让我们的立方体依赖于第三方代码,所以我正在寻找一种方法来访问特定多维数据集名称的计算中的LAST_DATA_UPDATE。

1 个答案:

答案 0 :(得分:1)

我通常在我的多维数据集中包含一个分离的Dimension,例如“。立方体信息”,包括这样的属性。其他有用的属性可以暴露数据的货币,例如什么时候最后一个底层ETL过程完成,或者你的多维数据集的发布/构建。

我从SQL视图中提供此“多维数据集信息”维度,该视图返回包含所需数据的单行 - 您可以使用SELECT语句。它还需要返回具有固定值的Key列,例如1。

“分离”是指“多维数据集信息”维度在“多维数据集维度关系”选项卡中没有条目。

在多维数据集计算脚本中,我将该维度的DEFAULT_MEMBER属性分配给SSAS视图中的固定Key值。

然后,任何客户端工具都可以访问这些Dimension属性。