構成
Integration Services 包括用於生成和調試包的圖形工具和嚮導;用於執行工作流函式(如 FTP 操作)、執行 SQL 語句或傳送電子郵件的任務;用於提取和載入數據的數據源和目標;用於清理、聚合、合併和複製數據的轉換;用於管理 Integration Services 的管理服務 Integration Services 服務;以及用於對 Integration Services 對象模型編程的應用程式編程接口 (API)。特色
可視化環境
熟悉了SSIS的可視化操作後,給你的感覺應該是震撼的,因為幾乎你所能想得到的ETL操作都能通過簡單托拽控制項加以實現。主要得益於SSIS強大Control Flow Function以及那個靈活多樣並且高效的DataFlow Task (BulkInsertTask和Execute SQL Task等可以看成特殊的DataFlowTask)。Control Flow主要負責高層的邏輯拓撲,完成對各個DataFlowTask單元的串接,而DataFlowTask除了提供簡單的SQL語句的執行,兩個節點之間的數據傳輸外,還提供了Aggregation、DataConversion,Merge、Sort等操作,實現了面向多個源和目的端的複雜數據流的整合。另外值得一提的是,SSIS同時也提供For/Foreach Loop Container來完成類似for語句的循環操作。
強大的參數設定功能
SSIS的另一個特色是的參數設定功能,這一點比DTS有了明顯的進步。連線參數,源與目的關聯的表名或者SQL語句的條件子句,都可以通過參數來構建,甚至參數本身可以由其他參數動態賦值(通過Expression功能),這就給用戶提供了非常廣闊界面編程的空間,充分發揮你的想像力,就能夠在可視化界面上實現複雜邏輯功能的ETL操作。SSIS強大的參數設定功能在一定程度上簡化了SSIS的Package(Package:SSIS基本的可執行單位)程式調用。
功能
SQL Server Integration Services (SSIS) 提供一系列支持業務應用程式開發的內置任務、容器、轉換和數據適配器。您無需編寫一行代碼,就可以創建 SSIS 解決方案來使用 ETL 和商業智慧型解決複雜的業務問題,管理 SQL Server 資料庫以及在 SQL Server 實例之間複製 SQL Server 對象。典型用途
下列情況說明了 SSIS 包的典型用途。合併來自異類數據存儲區的數據
數據通常存儲在很多個不同的數據存儲系統中,從所有源中提取數據並將其合併到單個一致的數據集中確實有一定的難度。這種情況的出現有多個原因。例如:許多單位要對存儲在早期數據存儲系統中的信息進行歸檔。這些數據在日常操作中可能不重要,但對於需要收集過去很長一段時間內的數據的趨勢分析來說很重要。
單位的各個部門可能會使用不同的數據存儲技術來存儲運算元據。包可能需要先從電子表格以及關係資料庫中提取數據,然後才能合併數據。
數據可能存儲在對相同數據使用不同架構的資料庫中。包可能需要先更改列的數據類型或將多個列的數據組合到一列中,然後才能合併數據。
Integration Services 可以連線到各種各樣的數據源,包括單個包中的多個源。包可以使用 .NET 和 OLE DB 訪問接口連線到關係資料庫,還可以使用 ODBC 驅動程式連線到多個早期資料庫。包還可以連線到平面檔案、Excel 檔案和 Analysis Services 項目。
Integration Services 包含一些源組件,這些組件負責從包所連線的數據源中的平面檔案、Excel 電子表格、XML 文檔和關係資料庫中的表及視圖提取數據。
然後,通常要用 Integration Services 包含的轉換功能對數據進行轉換。數據轉換為兼容格式後,就可以將其物理合併到一個數據集中。
數據在合併成功且套用轉換後,通常會被載入到一個或多個目標。Integration Services 包含將數據載入到平面檔案、原始檔案和關係資料庫時所用的目標。數據也可以載入到記憶體中的記錄集中,供其他包元素訪問。
填充數據倉庫和數據集市
數據倉庫和數據集市中的數據通常會頻繁更新,因此數據載入量通常會很大。Integration Services 包含一個可直接將數據從平面檔案大容量載入到 SQL Server 表和視圖中的任務,還包含一個目標組件,該組件可以在數據轉換過程的最後一步將數據大容量載入到 SQL Server 資料庫中。
SSIS 包可配置為可重新啟動。這意味著可以從某個預先確定的檢查點(包中的某個任務或容器)重新運行包。重新啟動包這一功能可節省很多時間,尤其是包需要處理來自一大批源的數據時。
可以用 SSIS 包載入資料庫中的維度表和事實數據表。如果維度表的源數據存儲在多個數據源中,包可以將該數據合併到一個數據集中,並在單個進程中載入維度表,而不是為每個數據源使用單獨的進程。
更新數據倉庫和數據集市中的數據可能很複雜,因為這兩種類型的數據存儲區通常都包含可能難以通過數據轉換過程管理的漸變維度。由於能夠動態創建用於插入和更新記錄、更新相關記錄以及向表添加新列的 SQL 語句,因此,漸變維度嚮導可自動支持漸變維度。
此外,Integration Services 包中的任務和轉換可以處理 Analysis Services 多維數據集和維度。包更新了建立多維數據集所基於的資料庫中的表後,您可以使用 Integration Services 任務和轉換來自動處理多維數據集和維度。自動處理多維數據集和維度有助於使以下兩種環境中的用戶始終獲得最新的數據:訪問多維數據集和維度中信息的用戶和訪問關係資料庫中數據的用戶。
Integration Services 還可以在數據載入到其目標之前計算函式。如果數據倉庫和數據集市存儲了聚合信息,那么 SSIS 包可以計算 SUM、AVERAGE 和 COUNT 之類的函式。SSIS 轉換還可以透視關係數據,並將其轉換為不太規範的格式,以便更好地與數據倉庫中的表結構相兼容。
清除數據和將數據標準化
無論數據是載入到在線上事務處理 (OLTP)、在線上分析處理 (OLAP) 資料庫、Excel 電子表格還是載入到檔案,都需要在載入前將數據進行清理和標準化。數據可能由於下列原因而需要更新:數據由一個單位的多個部門提供,每個部門使用不同的約定和標準。可能需要對數據進行不同的格式處理,然後才能使用這些數據。例如,可能需要將名和姓組合到一列中。
數據是租用或購買的。可能需要將數據進行標準化和清理以滿足業務標準,然後才能使用這些數據。例如,單位需要驗證所有記錄使用了相同的狀態縮寫集或相同的產品名稱集。
數據是區域設定特定的。例如,數據可能使用不同的日期/時間和數值格式。如果要合併來自不同區域設定的數據,那么在載入數據前必須先將其轉換到同一區域設定以避免數據損壞。
Integration Services 包含一些內置轉換,可將其添加到包中以清理數據和將數據標準化、更改數據的大小寫、將數據轉換為不同類型或格式或者根據表達式創建新列值。例如,包可將姓列和名列連線成單個全名列,然後將字元更改為大寫。
Integration Services 包還可以使用精確查找或模糊查找來找到引用表中的值,通過將列中的值替換為引用表中的值來清理數據。通常,包首先使用精確查找,如果該查找方式失敗,再使用模糊查找。例如,包首先嘗試通過使用產品的主鍵值來查找引用表中的產品名。如果此搜尋無法找到產品名,包再嘗試使用產品名模糊匹配方式進行搜尋。
另一種轉換通過將數據集中相似的值分組到一起來清理數據。有些記錄可能是重複的,所以不應未經進一步計算就將其插入到資料庫中。這種轉換對識別此類記錄很有用。例如,通過比較客戶記錄中的地址可以識別許多重複的客戶。
將商業智慧型置入數據轉換過程
數據轉換過程需要內置邏輯來動態回響其訪問和處理的數據。可能需要根據數據值對數據進行匯總、轉換和分發。根據對列值的評估,該過程甚至可能需要拒絕數據。
若要滿足此需求,SSIS 包中的邏輯可能需要執行以下類型的任務:
合併來自多個數據源的數據。
計算數據並套用數據轉換。
根據數據值將一個數據集拆分為多個數據集。
將不同的聚合套用到一個數據集的不同子集。
將數據的子集載入到不同目標或多個目標。
Integration Services 提供了用於將商業智慧型置入 SSIS 包的容器、任務和轉換。
容器通過枚舉檔案或對象和計算表達式來支持重複運行工作流。包可以計算數據並根據結果重複運行工作流。例如,如果日期在當月,則包執行某一組任務;如果不在,則包執行另一組任務。
使用輸入參數的任務也可以將商業智慧型置入包中。例如,輸入參數的值可以篩選任務檢索的數據。
轉換可以計算表達式,然後根據結果將數據集中的行傳送到不同的目標。數據劃分完成後,包可以對數據集的每個子集套用不同的轉換。例如,表達式可以計算日期列,添加相應期間的銷售數據,然後僅存儲摘要信息。
還可以將一個數據集傳送到多個目標,然後對此相同數據套用不同的轉換集。例如,一組轉換可以匯總此數據,而另一組轉換通過查找引用表中的值並添加其他源的數據來擴展此數據。
使管理功能和數據載入自動化
管理員經常希望將管理功能自動化,例如備份和還原資料庫、複製 SQL Server 資料庫及其包含的對象、複製 SQL Server 對象和載入數據。Integration Services 包可以執行這些功能。Integration Services 包含專為以下目的設計的任務:複製 SQL Server 資料庫對象,例如表、視圖和存儲過程;複製 SQL Server 對象,例如資料庫、登錄和統計信息;使用 Transact-SQL 語句添加、更改和刪除 SQL Server 對象和數據。
OLTP 或 OLAP 資料庫環境的管理通常包括數據的載入。Integration Services 包含幾個使數據大容量載入更加便利的任務。可以使用某個任務將文本檔案中的數據直接載入到 SQL Server 表和視圖中,還可以在對列數據套用轉換後使用目標組件將數據載入到 SQL Server 表和視圖。
Integration Services 包可運行其他的包。包含多個管理功能的數據轉換解決方案可分為多個包,使管理和重用包更為容易。
如果需要在不同的伺服器上執行相同的管理功能,可以使用包。包可以使用循環對伺服器進行枚舉並在多台計算機上執行相同的功能。為了支持 SQL Server 的管理,Integration Services 提供了可以遍歷 SQL 管理對象 (SMO) 的對象的枚舉器。例如,包可使用 SMO 枚舉器對某個 SQL Server 安裝中的 Jobs 集合中的每個作業執行相同的管理功能。
另外,還可以使用 SQL Server 代理作業來安排 SSIS 包