什麼情況會用到SqlServer的integration services?愛逗的小夥伴2020-11-07 02:23:41

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 包。