2

我们正在使用 SSIS 包来处理 SQL Server 2008 R2 Analysis Services 中的多维数据集。到目前为止,我们一直在使用包中的 Analysis Services 处理任务,并手动将所有 Cube 和 Dimension 对象添加到该任务的处理队列中。这也意味着当我们将维度添加到多维数据集或多维数据集到 SSAS 数据库时,我们必须调整包。

但是现在我们需要一个 SSIS 包来处理选定的整个 SSAS数据库,以便我们稍后可以修改 Cube,可能添加维度,而无需修改包。

在 SQL Server Management Studio 中,可以右键单击 SSAS 数据库并选择“进程...”,但对于相应的 SSIS 任务,我无法找到如何执行此操作。

有没有办法在 SSIS 包中处理整个 SSAS 数据库?

在此先感谢,克里斯蒂安

4

3 回答 3

4

我对为什么不能使用 SSIS 分析服务处理任务感到困惑。我相信您必须选择在处理设置中选择数据库。您可以选择整个数据库,而不是选择该数据库上的单个多维数据集或维度。只要确保类型说数据库。

在此处输入图像描述

我还使用了@Meff 提供的 XMLA 答案,它也可以正常工作。

于 2013-07-30T20:38:41.300 回答
2

您也可以使用 AMO,您需要将 Microsoft.AnalysisServices 引用包含到 SSIS 脚本任务并提供变量值。这种方式不会将您锁定到数据库 ID,但稍微复杂一些:

   string cubeConnectionString = Dts.Variables["User::CubeConnectionString"].Value.ToString();
    string databaseName = Dts.Variables["User::DatabaseName"].Value.ToString();

    Server server = new Server();
    server.Connect(cubeConnectionString);

    Database database = server.Databases.FindByName(databaseName);
    database.Process(ProcessType.ProcessFull);

    server.Disconnect();
    Dts.TaskResult = (int)ScriptResults.Success;
于 2013-07-30T13:38:30.310 回答
1

当你去处理整个数据库时,在你点击“确定”之前,你应该在处理窗口的左上角看到一个“脚本”按钮。这将生成处理 XMLA 到一个新窗口。

现在处理 XMLA 并在“Analysis Services Execute DDL”控制流组件中使用它。

小心多维数据集的重新部署,因为您会看到 XMLA 使用 Id 而不是数据库的名称。

于 2013-07-30T13:17:32.503 回答