首页 > 解决方案 > SSIS 任务:处理 SSAS 多维数据集并参数化连接字符串

问题描述

我想在 SSIS 中处理一个 SSAS Cube。有没有办法为 Datamart SQL Server 数据源参数化连接字符串?我希望能够在 Devops 中为我们的 SSAS 开发、测试和生产环境设置/配置 SQL Server 连接字符串。

目前数据集市多维数据集在 SSAS 中硬编码连接,SSAS 似乎没有像 SSIS 这样的项目连接字符串。

更新:

我听说过 SSIS ---> Analysis Services Execute DDL Task --> 运行 XMLA 脚本来更改数据库连接字符串。不知道如何进行。

有人可以提供方向或修剪此 XMLA 脚本以仅更改连接字符串(Sql 服务器和数据库名称)吗?只想改变必要的。我正在使用 SSAS 2016,因此可能需要更新架构 xmlns。

也收到此错误:拥有 SQL Server 2016 和 2016 SSAS

元数据管理器中的错误。为 ALTER 语句提供的对象定义与要更改的对象引用的类型不同。

我将如何解决这个问题?

<Alter ObjectExpansion="ObjectProperties" xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">  
    <Object>  
        <DatabaseID>Adventure Works DW Multidimensional 2012</DatabaseID>  
        <DataSourceID>AdventureWorksDW2012</DataSourceID>  
    </Object>  
    <ObjectDefinition>  
        <DataSource xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="RelationalDataSource">  
            <ID>AdventureWorksDW2012</ID>  
            <Name>AdventureWorksDW2012</Name>  
            <ConnectionString>Data Source=fr-dwk-02;Initial Catalog=AdventureWorksDW2008R2;Integrated Security=True</ConnectionString>  
            <ManagedProvider>System.Data.SqlClient</ManagedProvider>  
            <Timeout>PT30S</Timeout>  
        </DataSource>  
    </ObjectDefinition>  
</Alter>  

图片

以下来自 Microsoft 的链接使用 2001-2003 架构并更改超时秒数。我只想更改数据库源和服务器。

这适用于 TFS,但是想要利用 SSIS:

标签: sql-serverssisssassql-server-2016xmla

解决方案


转到 SSMS ---> 分析服务

脚本数据源 --> 更改为 ---> 新查询窗口

在此处输入图像描述

可以在此处更改数据源

在此处输入图像描述

将 Alter Scripts 命令复制到 SSIS 中的变量中,并使用“执行 Analysis Services DDL 任务”

在此处输入图像描述


推荐阅读