构建整个SSAS多维数据集不起作用,按维度构建维度 - 构建顺序?

时间:2013-02-15 10:48:15

标签: ssas bids dimension

在SSAS上构建多维数据集时,我遇到了一个奇怪的问题。我有一个事实表,让我们说FactActivity。然后我有一个维度DimActivity,它与这个事实有1对1的关系,所有外键都绑定到维度。所以日期尺寸,产品尺寸等都与DimActivity绑定。

当我构建整个多维数据集时,它似乎是在维度之前构建事实,因此它给了我错误。但是,如果我在事实之前手动构建维度,它就可以工作。

除了使用Analysis Services处理任务从SSIS执行此操作之外,SSAS中是否可以配置构建顺序?

非常感谢!

3 个答案:

答案 0 :(得分:1)

处理多维数据集不会处理与其相关的维度,因为它们在SSAS中构建为单独的实体。实际上,这意味着维度可以存在,处理和访问而不需要与多维数据集的关系。

没有“配置常规构建顺序”这样的东西。由您决定应如何处理AS对象。有许多工具可以促进这一点,他们都会做同样的事情:构建XMLA脚本以在AS服务器上运行。

  1. SSIS:Analysis Services处理任务
  2. 配置SQL代理作业。
  3. 使用SSMS执行手动过程。
  4. 使用AMO编制处理活动
  5. ...
  6. 重要的是,您应该在处理多维数据集之前处理维度。一个简单的解决方案是处理整个SSAS数据库(包含您的多维数据集和维度)。这样,SSAS将在处理多维数据集之前自动处理维度。

    Documentation on processing Analysis Services objects

答案 1 :(得分:0)

处理维度或整个多维数据集时,在单击“运行”之前,单击“更改设置...”按钮。在那里你可以改变它应该处理的方式。此链接描述了可用选项的效果。

http://technet.microsoft.com/en-us/library/ms174774.aspx

HTH

答案 2 :(得分:0)

对于遇到类似问题的其他人......

我偶尔会遇到多维数据集处理错误的原因是,由于计划的每小时导入,刷新发生在同一时间。

我现在正在使用日志来查看正在运行的SSIS包。导入活动时,我在此表中插入了一条记录,其状态为“正在运行”。

在处理多维数据集之前,我有一个信号量来检查此表中的记录是否为数据导入且具有“正在运行”状态。如果当前没有正在运行的导入,我只允许刷新多维数据集。处理多维数据集时,导入也有一个信号量,并且不会开始导入,除非当前没有多维数据集处理“正在运行”。

实现此逻辑后,我在处理多维数据集时从未遇到任何错误。