Business Intelligence——SSIS專案從建立到部署的簡單總結(一)

CodeRookieGuo發表於2016-01-06

最近在給專案部署測試環境,需要進行部分資料遷移的工作。第一次接觸到了SSIS,研究了半天,總算是把專案部署到了資料庫中。由於接觸SSIS還比較淺,寫這篇文章也是圍繞工作中實際使用到的部分,我相信對於剛接觸SSIS的同學,在瞭解如何使用SSIS應該會有一定的幫助。廢話不多說,我們進入正題。

1、安裝BI開發工具
Business Intelligence開發工具整合自微軟SQL Server Data Tools。安裝Integration Services 專案模板需要我們從SQL Server 2012的安裝包中選中該功能。如圖1.1:
圖1.1
這裡需要注意的一點是,使用SQL Server 2012安裝SQL Server Data Tools的同學,可能需要同時提供Visual Studio 2010的安裝包來安裝Visual Studio 2010 Shell(我是這麼被提示的),因為SQL Server 2012自帶的SQL Server Data Tools是針對Visual Studio 2010的。也就是說安裝完成之後,我們其實是在VS2010的環境中編寫SSIS的。所以,如果想使用VS2012開發的同學可以移步到微軟的官方網站上下載這個工具:https://www.microsoft.com/zh-CN/download/details.aspx?id=36843
等待安裝完成之後,我們的VS2012中,就會出現Integration Services 專案。如圖1.2:
圖1.2
至此,開發環境安裝完成。

2、編寫IS專案
新建IS專案後,我們先熟悉一下工作環境。如圖2.1:
圖2.1
可以看到,微軟同樣給我們提供了很多控制元件,通過這些控制元件,我們很容易就可以完成原本只能在SQL Server Management Studio中才能完成的任務。
下面,我們要做的就是把源資料庫中的某張表裡的資料複製到目標資料庫中對應的表中。其實,SSIS最典型的用途在於能夠從不同版本或者不同型別的資料庫間很方便的遷移資料。為了操作方便,我在這裡僅僅使用了SQL Server做為唯一資料來源。
2.1 建立資料庫
這裡,為了演示方便,我在同一個例項下建立了兩個資料庫,分別為DBSource和DBTarget。在DBSource和DBTarget下,又分別建立了一張Student表。如圖2.2:
圖2.2
在DBSource的Student表中,先錄入資料,為一會兒的操作做準備。
2.2 配置連線管理器
在解決方案資源管理器中,右鍵連線管理器,選擇“新建連線管理器”。我們選擇OLEDB做為連結管理器的型別。如圖2.3:
圖2.3
然後,在彈出的“配置 OLE DB 連線管理器”中,選擇新建。因為我使用的是SQL Server資料庫,所以一般使用預設的提供程式“SQL Server Native Client 11.0”。如果你的源資料庫是Oracle,則選擇”Oracle Provider for OLE DB”做為提供程式即可。如果列表中沒有“Oracle Provider for OLE DB”,可以搜一下,網上有很多解決辦法。選擇完提供程式並且輸入了伺服器的登陸資訊後,我們可以測試一下連線是否成功。單擊“測試連結”,如果沒有問題,我們就可以選擇源資料庫了。具體如圖2.4:
圖2.4
單擊“確定”,我們就開啟了一條通向源資料庫的通道。
用同樣的方法,我們再次建立一個用於目標資料庫的連線管理器。由於步驟相同,不再贅述。
2.3 編輯SSIS包
在我們建立專案的時候,預設已經新建了一個SSIS包,我們對其進行重新命名為“Student”,與我們需要進行操作的表名相同。如圖2.5:
圖2.5
雙擊“Student.dtsx”檔案,開啟包。切換到“控制流”檢視下,我們向設計器中拖入“執行SQL任務”控制元件。這個控制元件的作用是執行SQL語句,我們使用這個控制元件的目的是,在每次從源資料庫獲取資料存入目標資料庫之前,先將目標資料庫中的資料清空。如圖2.6:
圖2.6
雙擊該控制元件,開啟編輯器。在Connection屬性中選擇目標伺服器,SQLStatusment屬性中輸入執行的SQL語句。如圖2.7所示:
圖2.7
切換到“表示式”頁中,我們在Expressions屬性下新增兩個表示式,分別為“Name”和“SqlStatementSource”。如圖2.8:
圖2.8
填入相應的資訊(可參考如上寫法,新增變數“System::PackageName”,也就是我們剛才設定過的包名)後,儲存。
接著,我們再在桌面中拖一個“資料流任務”控制元件,並移動箭頭指向資料流任務。如圖2.9:
圖2.9
雙擊“資料流任務”控制元件,切換到“資料流”檢視下,在工具欄中分別拖出“OLE DB源”和“OLE DB目標”控制元件,如圖2.10:
圖2.10
雙擊“OLE DB源”控制元件,開啟編輯器,在“OLE DB 連線管理器”中,選擇源資料庫,“資料訪問模式”選擇“表或檢視”,最後選擇我們需要遷移的資料表,如圖2.11:
圖2.11
單擊儲存,配置完成。我們以同樣的方式,配置“OLE DB目標”控制元件,在“對映”頁中可以檢視源資料庫和目標資料庫的列的對映關係是否正確,如圖2.12:
圖2.12
當然,對於設定為自增的列,我們無法為其插入資料。所以我們可以刪除其對映關係,這樣這一列的資料就不會被轉移到目標資料庫中。
到這裡,編輯SSIS包的工作就完成了。最後讓我們執行一下,看看我們的包是否配置成功。成功的顯示效果如圖2.13:
圖2.13
當然,我們也可以在“進度”檢視下,檢視更具體的執行情況。

3、部署SSIS包
完成了以上步驟後,我們可以開始進行包的部署工作。右鍵解決方案,在右鍵選單中選擇部署,進入“Integration Services 部署嚮導”介面,如圖3.1:
圖3.1
在“選擇目標”標籤頁下,選擇我們要部署包的伺服器,根據個人需要選擇本地伺服器或遠端伺服器,然後選擇包存放的路徑。此時,會提示如下資訊:
圖3.2
這是因為SSIS包固定是存放在SQL Server的“Integration Services 目錄”下的“SSISDB”目錄下,這個目錄預設是沒有的,需要我們自行建立。
開啟SQL Server,在物件資源管理器中找到“Integration Services 目錄”。右鍵,選擇“新建目錄”,開啟“建立目錄”對話方塊,如圖3.3:
圖3.3
勾選“啟用CLR整合”,鍵入密碼。單擊確定,“SSISDB”目錄建立成功。
好了,現在我們回到Visual Studio。再次選擇路徑,剛才的資訊消失了,轉而出現了“通過瀏覽查詢資料夾或專案”對話方塊。我們能看到剛才已經建立好的“SSISDB”檔案。如圖3.4:
圖3.4
SSIS包不能直接存放在“SSISDB”目錄下,我們新建一個資料夾,然後單擊確定,OK,程式已經幫我們把路徑設定好了。
單擊下一步,我們開始執行部署。部署完成後的介面如圖3.5:
圖3.5
現在,我們進入SQL Server。可以看到,包已經部署成功了:
圖3.6

好了,今天先寫到這裡,請檢視我的第二篇部落格:
Business Intelligence——SSIS專案從建立到部署的簡單總結(二)

相關文章