我有三种不同的环境;开发,测试和生产。
这三个SSAS环境连接到三个不同的SQL Server实例。
但是,服务器在SSAS数据源中是硬编码的,因此在部署时,实例会因为指向错误的,无法访问的SQL服务器而中断。
如何配置SSAS数据源连接字符串,以便在部署时不会覆盖它,或者,如何使其变量以便为其部署的环境查找正确的值?
在部署到每个环境之前,我一直在手动编辑.asdatabase文件,但这是一个不可接受的违反变更控制程序的行为,所以我必须得到一个更合适的机制。也许有一个非常简单的解决方案,但如果是这样的话,我还没有想出来。
答案 0 :(得分:1)
一种方法可能是在部署SSAS多维数据集时,您可以运行XMLA脚本,在SSAS连接字符串中设置SQL Server数据源。另一种方法是您可以在所有环境中将源设置为具有相同名称的系统DSN,并在ODBC数据源控制面板上进行调整。出于各种原因,我更喜欢前者,但后者可以工作。
答案 1 :(得分:1)
在Visual Studio 2019的SSAS / SSDT版本中,当配置管理器更改时,它似乎被配置管理器下拉更改。这保存在.dwproj文件中。每个配置都有这样的条目。
<Configuration>
<Name>Prod</Name>
<Options>
<ConnectionMappings>
<ConfigurationSetting>
<Id>SII DW</Id>
<Name>SII DW</Name>
<Value xsi:type="xsd:string">Provider=SQLNCLI11.1;Data Source=SERVER;Integrated Security=SSPI;Initial Catalog=SII_DW</Value>
</ConfigurationSetting>
</ConnectionMappings>
<ConnectionSecurityMappings>
<ConfigurationSetting>
<Id>SII DW</Id>
<Name>SII DW</Name>
<Value xsi:type="xsd:int">0</Value>
</ConfigurationSetting>
</ConnectionSecurityMappings>
<DeploymentServerEdition>Standard</DeploymentServerEdition>
<DeploymentServerVersion>13.0</DeploymentServerVersion>
</Options>
</Configuration>
答案 2 :(得分:0)
这最近让我有点疯狂,但我设法做到这一点,是使用部署向导部署到开发(我使用表格,所以我必须使用v17)。然后在SSMS中,我连接到我的开发Analysis Services实例,右键单击数据源并更改其中的连接属性,然后手动处理。
以前如果我在SSDT中使用它,到目前为止它的工作原因并不明确(我希望能够深入到底)。
我觉得这不是最好的解决方案,我尝试使用部署脚本,但这也不起作用。