分享方式:


定義狀態變數

適用於:Azure Data Factory 中的 SQL Server SSIS Integration Runtime

重要

CDC 流程元件,包括 CDC 控制工作、CDC 來源和 CDC 分隔器,皆已被取代。 如需詳細資訊,請參閱公告

此程序描述如何定義 CDC 狀態儲存所在的封裝變數。

CDC 狀態變數是由 CDC 控制工作所載入、初始化及更新,並且由 CDC 來源資料流程元件用來判斷變更記錄目前的處理範圍。 CDC 狀態變數可定義於 CDC 控制工作和 CDC 來源通用的任何容器上。 這可以在封裝層級,但也可以位於其他容器上,例如迴圈容器。

不建議手動修改 CDC 狀態變數值,不過瞭解其內容很有用。

下表提供 CDC 狀態變數值各項元件的進階說明。

元件 Description
<state-name> 此為目前 CDC 狀態的名稱。
CS 此標示目前處理範圍的起點 (Current Start)。
<cs-lsn> 此為上一個 CDC 回合最後處理的 LSN (記錄序號)。
CE 此標示目前處理範圍的終點 (Current End)。 CDC 狀態中若存在 CE 元件,代表目前正在處理 CDC 封裝,或是 CDC 封裝在其 CDC 處理範圍未處理完全之前即已失敗。
<ce-lsn> 此為目前 CDC 回合要處理的最後一個 LSN。 一律假設要處理的最後一個序號是最大值 (0xFFF...)。
IR 此標示初始處理範圍。
<ir-start> 此為初始載入剛要開始前之異動的 LSN。
<ir-end> 此為初始載入才剛結束後之異動的 LSN。
TS 此標示上次 CDC 狀態更新的時間戳記。
<timestamp> 此為 64 位元 System.DateTime.UtcNow 屬性的十進位表示法。
ER 此將在上次作業失敗時出現,且包含錯誤原因的簡短描述。 若存在此元件,則其一定出現於最後。
<short-error-text> 此為簡短的錯誤描述。

每個 LSN 和序號都是編碼為多達 20 位數的十六進位字串,代表 Binary(10) 的 LSN 值。

下表描述可能的 CDC 狀態值。

State 描述
(INITIAL) 這是在目前 CDC 群組上執行任何套件之前的初始狀態。 這也是 CDC 狀態為空白時呈現的狀態。
ILSTART (初始載入開始) 這是在 CDC 控制工作的 MarkInitialLoadStart 作業呼叫之後,初始載入封裝開始時的狀態。
ILEND (初始載入結束) 這是在 CDC 控制工作的 MarkInitialLoadEnd 作業呼叫之後,初始載入封裝順利結束時的狀態。
ILUPDATE (初始載入更新) 這是緊接於初始載入之後而仍在處理初始處理範圍期間執行 Trickle 摘要更新封裝時的狀態。 發生於 CDC 控制工作的 GetProcessingRange 作業呼叫之後。

如果使用 __$reprocessing 數據行,則會將其設定為 1,表示封裝可能已在目標端重新處理數據列。
TFEND (Trickle 摘要更新結束) 這是一般 CDC 回合所預期的狀態。 這種狀態表示上一個回合已順利完成,而且可以啟動具有新處理範圍的新回合。
TFSTART 這是在 GetProcessingRange 作業呼叫 CDC 控制工作之後,在一次不初始化的 Trickle 摘要更新套件執行時的狀態。

這表示已啟動一般 CDC 執行,但尚未完成或尚未完成、完全完成 (MarkProcessedRange)。
TFREDO (重新處理 Trickle 摘要更新) 這是在 TFSTART 之後發生 GetProcessingRange 時的狀態。 這表示先前的執行未順利完成。

如果使用 __$reprocessing 數據行,則會將其設定為 1,表示封裝可能已在目標端重新處理數據列。
錯誤 CDC 群組處於 ERROR 狀態。

以下是 CDC 狀態變數值的範例。

  • ILSTART/IR/0x0000162B158700000000//TS/2011-08-07T17:10:43.0031645/

  • ILSTART/IR/0x0000162B158700000000//TS/2011-08-07T17:10:43.0031645/

  • TFEND/CS/0x0000025B000001BC0003/TS/2011-07-17T12:05:58.1001145/

  • TFSTART/CS/0x0000030D000000AE0003/CE/0x0000159D1E0F01000000/TS/2011-08-09T05:30:43.9344900/

  • TFREDO/CS/0x0000030D000000AE0003/CE/0x0000159D1E0F01000000/TS/2011-08-09T05:30:59.5544900/

若要定義 CDC 狀態變數

  1. 在 SQL Server Data Tools 中,開啟 SQL Server 2019 Integration Services (SSIS) 套件 (其中有您需要定義變數的 CDC 流程)。

  2. 選取 [ 套件總管] 索引標籤 ,然後新增變數。

  3. 為變數指定可辨識的名稱,做為狀態變數。

  4. 為變數指定 字串 資料類型。

請勿為變數提供值做為其定義的一部分。 此值必須是由 CDC 控制工作所設定。

如果您打算搭配自動狀態持續性使用 CDC 控制工作,CDC 狀態變數會從您指定的資料庫狀態數據表讀取,並在其值變更時更新回該相同數據表。 如需狀態數據表的詳細資訊,請參閱 CDC 控制工作CDC 控制工作編輯器

如果您未使用 CDC 控制工作搭配自動狀態持續性,則必須從上次執行封裝時儲存其值的永續性記憶體載入變數值,並在處理目前處理範圍完成時將其寫回永續性記憶體。

另請參閱

CDC 控制工作
CDC 控制工作編輯器