什么情況會用到SqlServer的integration?
Microsoft Integration Services 是用于生成企業級數據集成和數據轉換解決方案的平臺。使用 Integration Services 可解決復雜的業務問題,具體表現為:復制或下載文件,發送電子郵件以響應事件,更新數據倉庫,清除和挖掘數據以及管理 SQL Server 對象和數據。這些包可以獨立使用,也可以與其他包一起使用以滿足復雜的業務需求。Integration Services 可以提取和轉換來自多種源(如 XML 數據文件、平面文件和關系數據源)的數據,然后將這些數據加載到一個或多個目標。
Integration Services 包含一組豐富的內置任務和轉換、用于構造包的工具以及用于運行和管理包的 Integration Services 服務。可以使用 Integration Services 圖形工具來創建解決方案,而無需編寫一行代碼;也可以對各種 Integration Services 對象模型進行編程,通過編程方式創建包并編寫自定義任務以及其他包對象的代碼。
Integration Services 提供一系列支持業務應用程序開發的內置任務、容器、轉換和數據適配器。您無需編寫一行代碼,就可以創建 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 Server 管理對象 (SMO) 的對象的枚舉器。例如,包可使用 SMO 枚舉器對某個 SQL Server 安裝中的 Jobs 集合中的每個作業執行相同的管理功能。
另外,還可以使用 SQL Server 代理作業來安排 SSIS 包。