0

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

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

除了使用 Analysis Services 处理任务从 SSIS 执行此操作之外,我可以在 SSAS 中的任何地方配置构建顺序吗?

非常感谢!

4

3 回答 3

1

处理多维数据集不会处理与其相关的维度,因为它们在 SSAS 中构造为单独的实体。在实践中,这意味着维度可以在与多维数据集无关的情况下存在、处理和访问。

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

  1. SSIS:分析服务处理任务
  2. 配置 SQL 代理作业。
  3. 使用 SSMS 执行手动过程。
  4. 使用 AMO 对您的处理活动进行编程
  5. ...

重要的是您应该在处理多维数据集之前处理您的维度。一个简单的解决方案是处理整个 SSAS 数据库(包含您的多维数据集和维度)。这样,SSAS 将在处理多维数据集之前自动处理维度。

有关处理 Analysis Services 对象的文档

于 2013-02-15T12:10:18.817 回答
0

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

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

高温高压

于 2013-04-10T06:45:34.220 回答
0

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

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

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

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

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

于 2013-04-11T08:17:46.387 回答