2008-11-24 38 views

回答

2

SSIS是最簡單的,當我使用SSIS時,我們將我們的軟件包存儲在一個文件中,我們所要做的就是將文件複製到C:\ Program Files \ Microsoft SQL Server \ 90 \ DTS \包。你可以通過將複製任務添加到MSBuild的末尾來完成。我不確定在輸出目錄中默認情況下xml是否可用,所以請注意。

至於SSAS,我從來沒有得到周圍自動化,但,你會想看看分析管理對象(AMO),從書本上拉線上,它說:

分析管理對象(AMO)提供一個編程接口 Analysis Services的完整的指令集作爲提供給 開發商。因此,AMO可以用於部署,也可以用於支持許多其他管理命令。有關AMO的用戶更多的 信息自動化任何 管理任務,請參閱分析管理對象(AMO)。

2

不能幫助SSIS的,但我可以用SSAS和TFS 2010年幫助

一個SSAS項目與團隊建設不會建立在2010年獲得了構建工作需要調用devenv.exe的一個MSBuild項目執行構建,然後將這些文件複製到Team Build輸出目錄。

下面是我用之前的示例性項目:

<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
     <Target Name="Build"> 
      <PropertyGroup> 
        <DevEnvTool Condition="'$(DevEnvTool)'==''">C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe</DevEnvTool> 
        <DevEnvBuildCommand>"$(DevEnvTool)" "$(MSBuildProjectDirectory)\Nexus_VS2008.sln" /Build</DevEnvBuildCommand> 
      </PropertyGroup> 
      <Exec Command="$(DevEnvBuildCommand)" /> 
      <ItemGroup> 
       <SSASSourceFiles Include="$(MSBuildProjectDirectory)\Readify.Nexus.Analysis\bin\Readify.Nexus.Analysis.*"/> 
      </ItemGroup> 

      <Copy SourceFiles="@(SSASSourceFiles)" DestinationFolder="$(OutDir)" /> 
     </Target> 
    </Project> 

這將創建在TFS生成的投遞文件夾的SSAS文物。通過少量的powershell,可以在TFS部署者的幫助下創建和部署SSAS多維數據集。至少powershell腳本需要執行「microsoft.analysisservices.deployment.exe」。該腳本還可用於更改SSAS的各種配置設置。

0

我發現很多帖子崇尚腳本VS自動生成,這並不總是可能在CI的環境。

多一點挖我也發現http://sqlsrvanalysissrvcs.codeplex.com/其中包括在創建的MSBuild文件.asdatabase的MSBuild任務。

2

首先,我總是建議更換分離該構建和部署過程。它們不是相同的,分離使得使用更成熟的配置管理工作流程變得更加容易。一個例子就是能夠推動以前的版本(這是通過一個系統的環境,並給予所有明確的)UAT環境作爲候選版本。你不想重建執行此操作。捕獲你的構建文物,並從他們單獨部署。

反正...

SSIS相當簡單:所有的建設確確實實是複製包到輸出文件夾,所以你只需要以某種方式抓住他們(取決於你用什麼來建立與 - 我用的TeamCity )。然後,在部署過程中,可以很容易使用SMO將它們上傳到服務器SSIS:

$app = new-object Microsoft.SqlServer.Dts.Runtime.Application 
$app.SaveToSqlServerAs($packageObj, $null, "\\$folderName\$($packageObj.Name)$packageNameSuffix", $serverName, $null, $null); 

(有趣的是這似乎不是通過SSIS服務本身去的,而是通過MSDB存儲過程API。並不是說這兩種方法都有很大的區別,但即使用戶由於that DCOM issue

而無法遠程訪問SSIS服務,它也可以工作。SSAS要困難得多。雖然您可以使用AMO做一堆東西,我將其部署爲部分,但我從來沒有找到從解決方案構建(如.asdatabase文件)獲取輸出的簡單方法,並將它們轉換爲XMLA需要從頭開始創建olap數據庫模式。有一個轉型缺失,我不能寫信。

相反,我用的是SSAS deployment utility,它可以在命令行中使用的部署過程的一部分,得到生成XMLA,然後執行:

$asDeploy = "$programfiles32\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\Microsoft.AnalysisServices.Deployment.exe" 

write-host "Generating XMLA" 
start-process -wait -FilePath:$asDeploy -ArgumentList:"$pwd\..\bin\MyOlap\MyOlap.asdatabase","/d","/o:$pwd\MyOlap.xmla" 
if (-not $?){ 
    throw "Failed to generate XMLA: errors were reported above"; 
} 

write-host "Deploying SSAS Database" 
.\ascmd.exe -S $olapServer -i "$pwd\MyOlap.xmla" 
if (-not $?){ 
    throw "Failed to deploy cube: errors were reported above"; 
} 

我要確保部署上面不處理多維數據集(我重寫了.deploymentoptions文件),以便我可以使用AMO運行已部署的多維數據集,並根據需要更新數據源。 然後我啓動了一個進程。

您沒有問過,但對於SSRS,您可以從構建中獲取RDL,並使用webservice API部署它們,顯然對於使用SQL GDR項目的數據庫,並使用命令行部署工具。綜合起來,你可以從一個腳本部署一個完整的商業智能項目,對版本控制等進行嚴格的控制。

我在過去的5年左右在各種項目中使用了這些方法,並且開發了一個真正的庫有用的PowerShells這樣做。有一天我會清理並釋放它們。

[17/5] 注意: SQL 2008 R2版本的部署嚮導(在SQL/100 /文件夾中)被標記爲GUI應用程序,而不是控制檯應用程序(如2005年)以前編寫的腳本不會等待它完成!上面的代碼改爲使用start-process,而不是顯式的'-wait'。這是一個nasty gotcha

+0

腳本powershell是否可以使用Powershell遠程處理? – Kiquenet 2014-06-06 11:46:35

相關問題