获取SSAS立方体的最后处理时间

在Excel中,我将Analysis Services连接到数据多维数据集。 我希望能够通过在最后一个多维数据集处理时间发生时显示数据来向用户显示数据的当前状态。 在SQL Server Management Studio(SSMS)中build立分析服务连接到多维数据集,我可以右键单击该多维数据集并查看最后一个多维数据集处理时间的属性。 我也可以创build一个MDX查询,如下所示返回上一个处理时间:

SELECT LAST_DATA_UPDATE FROM $system.mdschema_cubes 

我希望能够在Excel中检索相同的信息,无论是通过VBA还是其他一些方法,只要可以在没有外部工具的情况下在Excel中完成。

我实际上find了一种方法来在Excel中执行它,而不必创build任何视图或新的措施。 在Excel 2013中, PowerPivot允许您针对多维数据集创build自己的自定义MDX查询。 您可以打开PowerPivot,连接到您的多维数据集,粘贴在SSMS中使用的MDX查询以返回多维数据集处理时间,

 SELECT LAST_DATA_UPDATE FROM $system.mdschema_cubes 

然后将其导出到数据透视表。 我不需要修改Excel以外的任何东西。 这是一个逐步程序的文件 。

我在项目上也有同样的需求,在Excel中显示最后处理date/时间的多维数据集。 这可能是一个小菜鸟,但它绝对有效。 我在我的DSV中添加了一个针对我的数据库的查询(从技术angular度看,因为我的所有源数据都来自视图而不是命名查询或表)

 Select CURRENT_TIMESTAMP as CubeLastRefreshed 

我把它做成一个与无关的维度。 然后用户可以将其拉入Excel。 你可以用它来制作一个数据透视表。 或者你可以在Excel中编写一个多维数据集函数,在报表的底部显示它。 它看起来像

 =cubemember("Cube","[Cube Process Date].[Cube Last Processed].firstchild") 

只要确保在处理此维度时注意。 如果您在特定date只处理特定维度或措施,请确保将此维度的处理包含在正确的位置。

您可以使用Codeplex上AS StoredProcedures项目的CubeInfo过程 。 您必须将您可以下载到的程序集部署到服务器,然后定义类似于上述引用页面底部查询的WITH子句中描述的度量的度量。

存储过程的所有源代码也可以在CodePlex中使用。

我使用以下VBA将当前date时间放置到电子表格中的单元格中,只要任何数据透视表(包括从SSAS填充的数据透视表)都被更新:

 Private Sub Workbook_SheetPivotTableUpdate(ByVal Sh As Object, ByVal Target As PivotTable) Range("Documentation!B3").Value = Now() End Sub 

这将捕获电子表格从多维数据集中提取数据的时间,而不是处理多维数据集的时间,但也许可能对您有所帮助。