顯示具有 SQL-SSIS 標籤的文章。 顯示所有文章
顯示具有 SQL-SSIS 標籤的文章。 顯示所有文章

2014年1月8日 星期三

疑難排除與效能調整

封裝執行

有數種方法都可以用來執行封裝,不過這些方法大抵可以被區分二個類別:

  • On-demand:依需求使用人工操作的方法來啟動執行。
  • Automated:由 SSIS Service 自動啟動執行。

2014年1月5日 星期日

動態封裝

有時候為了便方將封裝在不同環境下執行(例如開發、測試和產品等不同環境),這時就必須採用動態方式來設計SSIS封裝。 動態封裝指的就是不用開啟或變更封裝內容,就能夠直接變更執行封裝要使用的設定值。 要達到這樣子的目的,除了原本就有的 Package Configuration 功能外, 在 SQL 2012 中也新引入了 Parameter 和 peoject-level Connection Manager 觀念來達到這樣子的效果。

下面幾個主題,都與動態封裝有關。

2014年1月3日 星期五

強化封裝

SSIS封裝除了可以用來執行資料轉移工作,它還包含許多其它有用的功能,可以用來強化整個封裝。例如:

  • 使用 error handle 來協助封裝測試與問題排除。
  • 使用 transaction 來達到封裝的交易能力。
  • 使用 checkkpoint 來接續封裝上次執行失敗的地方。
  • 利用 event-handling 來補捉各種不同的事件,如 OnWarning, OnError 。

2013年12月31日 星期二

異動資料擷取

什麼是「異動資料擷取」

在 DW 的設定過程中,有些來源資料表會隨著時間不停的在變更,例如訂單資料表。 若要將這些變更定期載入到 DW 中,不可能每次都 Copy 整個來源快照集,因為這樣會耗費較多時間和資源。 所以「遞增載入」(Incremental Load)的需求就此產生,也就是每次執行 ETL 時只會轉移新增或異動的資料。

在處理這類問題時,你可以會遇到情況:

  • 你可以區分出何謂新的資料,所以,你只要轉移新增或異動的資料即可。
  • 你無法區分新舊的界線,但是你可以區分特定區間的資料,例如每次轉移特定月或特定天的資料。
  • 沒有任何資訊可以讓你區分新舊資料的界線。

本章節將介紹幾種方法來解決「異動資料擷取」的問題。

2013年12月24日 星期二

緩時變維度

緩時變維度(Slowly Changing Dimensions, SCD)

當 OLTP 資料庫中的資料發生變更時,如何在 DW 中適當的反應出這個資訊,這就是緩時變維度要解決的問題。 例如:因為每個業務員有其所屬的銷售區域,所以我們可以由銷售員的角度,來檢視各區的報表。可是如果這個銷售員轉換了銷售區域,那該時何來處理這樣子的變化,以反應出正確的報表結果。

「緩時變維度」問題是設計 DW 時很常遇到的狀況,在 SSIS 中,你除了可以在 Control Flow 和 Data Flow 中自訂解決方法外, 最簡單的方法,就是直接使用 Slowly Changing Dimension Transformation 來簡化處理緩時變問題。

變數、運算式、主要封裝

2013年12月19日 星期四

SSIS安裝

由 SQL Server 2005 開始,新的 SSIS 平台取代了原本的 DTS 功能,你可以在這個平台上執行資料整合與工作流程作業。 而 SSIS 的核心元素就是「SSIS Service」,無論封裝是部署到檔案系統或者資料庫系統,所有的封裝都會掛載到這個服務之中,由該服務負責執行。

不過,到了 SQL Server 2012 ,「SSIS Service」這個服務程式就不再是必須的,它的存的,只是為了回溯相容於舊的封裝部署模式。 而封裝的管理與執行都由新的服務程式「SSIS Server」負責,它就是 SQL Server 執行個體本身,只不過要在執行個體上,特別掛載 SSISDB catalog 。 因為所有的 project, package, parameter 等等的資料,都儲存在這個 catalog 之中。

2013年12月15日 星期日

Data Flow

Control Flow

控制流程(Control Flow)是 SSIS package 中很重要的元素。 每一個 SSIS package 都會包含一個「控制流程」和數個「資料流程」構成的。

SSIS 中的「控制流程」,大至包含以下三種不同類型的元素:

  • 工作(Tasks):負責內容的執行。
  • 容器 (Containers):結構化封裝內容。
  • 優先順序條件約束(Precedence Constraints) Constraints:控管工作或容器的執行順序。

建立 SSIS 專案

要建立倉儲資料,就一定會用到資料轉移。 要轉移資料,使用匯出匯入精靈是最方便的,但是如果有下列情況,它就變的不太好用。 例如:轉移資料前必須做適當的資料修改或資料轉換,或者轉移的資料必須與目標中已存在的資料做合併。 而 SSIS 正是用來協助執行資料轉移的好工具。