SSIS任务:处理SSAS多维数据集和参数化连接字符串

问题描述 投票:3回答:2

我想在SSIS中处理SSAS多维数据集。有没有办法为Datamart SQL Server数据源参数化连接字符串?我希望能够在Devops中为我们的SSAS Dev,Test和Production Environments设置/配置SQL Server连接字符串。

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

更新:

我在SSIS中听到了一些信息---> Analysis Services执行DDL任务 - >运行XMLA脚本来更改数据库连接字符串。不知道如何进行此操作。

有人可以提供方向或修剪此XMLA脚本以仅更改连接字符串(Sql server和数据库名称)吗?只想改变必要的东西。我正在使用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>  

image

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

这是针对TFS,但是想要使用SSIS:

sql-server ssis ssas sql-server-2016 xmla
2个回答
1
投票

转到SSMS ---> Analysis Services

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

enter image description here

可以在这里更改数据源

enter image description here

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

enter image description here


1
投票

这可以通过将连接字符串DDL存储为SSIS字符串变量中的表达式并使用其中的参数(或变量)来保存更新的连接字符串来完成。在Analysis Services执行DDL任务上,将SourceType属性更改为Variable,并在Source字段中选择保存连接字符串表达式的变量。在下面的示例表达式中,使用$Package::ConnectionString符号在表达式中连接包参数(+)。通过单击SSDT中Expression窗格的Variables字段下方的省略号,然后在双引号内输入表达式,可以为变量定义表达式。表达式中的所有双引号和反斜杠(\),不包括开始和结束双引号,都需要通过反斜杠字符进行转义。如果之前没有使用过SSIS中的表达式,我建议使用表达式生成器上的“评估表达式”按钮验证表达式的结果。这将显示如何在执行期间解析表达式,但是这可以根据表达式中的参数/变量及其值进行更改。

"<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>" + @[$Package::ConnectionString]   +  "</ConnectionString>  
            <ManagedProvider>System.Data.SqlClient</ManagedProvider>  
            <Timeout>PT30S</Timeout>  
        </DataSource>  
    </ObjectDefinition>  
</Alter>"
© www.soinside.com 2019 - 2024. All rights reserved.