如果你曾經將資料從SQL Server中移入或者移出,那麼你現在就可以使用微軟的DTS或者微軟的Data Transmission Service工具來完成了。DTS是一個ETL(是抽取、傳輸和載入的縮寫)的工具,它可以讓資料庫管理員們建立一系列步驟來描述資料是如何被傳輸的。這些“包”,正如它們的名字,是可以通過一些不同的程式語言或者直接在SQL 伺服器自身啟動並執行。
這個想法一直以來都是一個不錯的想法,但是無論如何還是有局限的——如果使用早期版本的SQL Server的塊拷貝系統的版本很方便的話,它還是能夠繼續榮耀下去的。在SQL Server2005上,微軟決定將DTS變成一種全新的ETL工具——SQL Server綜合服務(SSIS)。將資料從一個資料庫移動到另外一個資料庫上或者是以另外一種格式匯出資料庫,是你可以使用的SSIS的最基本的用途。這裡是一些使用SSIS的一些其他原因:
資料清潔
如果你有一個資料集是不“乾淨”的,例如它沒有被標準化,SSIS有一系列的工具集可以用來清潔和標準化資料。其中包括類似“模糊”匹配和分組的函數,那麼那些看起來是一樣的資料(只是經過了不同的匯入和匯出)就可以被過濾掉並標準化。有關這一點的一個很好的例子就是來自不同地理地區的擁有不同種類的資料:同樣的想法也可以通過不同的方式來表達,它們在被處理之前需要被標準化。
串連到分析服務立方體上
你可以使用SSIS將資料直接通過管道串連到立方體上,以便於資料採礦。除了將這些資料匯入本機資料庫,然後在那裡進行挖掘之外,SSIS包自身也可以用於資料來源。
與SQL Server報表服務整合
對於分析立方體,SSIS包還可以直接用於資料來源來建立報告。
完全的.NET報告
這或許是假設的,但是SSIS編程的確可以在本地或者通過COM對象介面在任何一種.NET語言中完成——或者,實際上,任何支援COM對象的語言。
最終的結果就是你匯入資料集的系統,以及你建立的包可以更加像是經過變成的對象,而不是靜態資料那樣工作。正是這種想法,它允許使用者預先以報表服務的方式進行編程,分析家說。
服務,資料和資料庫自身,都會彼此之間對話。例如,歸檔的遺留資料可以繼續為形式分析師或者資料採礦使用,即使它們在技術上說已經是下線了。另外一個例子就是資料從多個靜態集合中活動的整合,例如我前面的提到的那種情況,來自多個地理位置的資料。
因為SSIS是可程式化的,它的功能就可以在很大範圍內被環境所調用。例如,一個ASP.NET驅動的網站可以是運行SSIS包的管理前端,或者可以是一個獨立的串連到SSIS的應用程式,出於自己的使用而擷取並提煉資料。能夠程式地驅動SQL Server的想法已經出現很長一段時間了,但是是SSIS使得能夠與所有事物對話成為可能,包括SQL Server也使用的東西——一次,並且是以統一的方式。一個程式員也可以建立定製的SSIS擴充,例如客戶資料轉送或者計數器。你可以在另外一個應用程式或者其他的整個環境中再次利用它們。
SSIS中的包可以用商務智能設計套件(Business Intelligence Design Studio)來編寫,這個工具是隨SQL Server2005發售的。結果檔案大多數都是XML格式,所以如果需要的話,它們可以被察看或者手工地修改。注意,SSIS中的一些功能——資料採礦串連和模糊群組及尋找,這兩項——都只有在企業版的SQL Server2005中才可以找到。SSIS不是在所有的SQL Server 2005 Express Edition中都可以獲得,所以如果你建立了SSIS包,那麼你就只能在SQL Server的完全版本中使用它們。最後,當你使用SSIS建立程式性的解決方案的時候,它們需要的確是設計用來在完全支援SSIS的其他環境中工作。