# Teradata 變更處理

Teradata 來源不會產生可直接讀取以進行變更處理的交易記錄。若要擷取變更，Qlik Talend Cloud Data Integration 會掃描來源資料表中的內容資料行，以識別 INSERT、UPDATE 和 DELETE 作業。

## 必要條件

在設定變更處理之前，請確保來源資料表中至少存在一個特殊內容資料行。上下文欄位可讓 Qlik Talend Cloud Data Integration 判斷資料是否已變更。

* 專門針對變更處理新增內容資料行，或使用包含合適內容資料的現有資料行。
* 您可以使用多個內容資料行，但所有來源資料表中的資料行名稱必須相同。
* 上下文欄位中的每個值都必須是唯一的。
* 對於非日期時間上下文欄位，例如計數器、字串以及非以 Epoch 時間為基準的數值，請使用單例實體來產生這些值。從多個並行來源產生值可能會導致遺漏事件。

### 範例

在下列範例中，已將 `cf` 內容資料行新增至資料表。此資料行包含時間戳記，Qlik Talend Cloud Data Integration 透過比較目前的時間戳記與其存放庫中儲存的時間戳記，來判斷是否發生變更。

![包含具有時間戳記之 cf 上下文欄位的資料表](<https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Resources/Images/Replicate/context columns.png>)

依預設，所有變更都會視為 INSERT 操作。如果來源資料表也會接收 UPDATE 或 DELETE 作業，請定義更新與刪除運算式以識別作業類型。

## 設定變更處理設定

1. 選取來源連線並開啟 CDC 屬性 區段。
2. 在 上下文欄位 中，以區分大小寫且以逗號分隔的清單形式輸入上下文欄位的名稱。例如，`context1,context2`。
3. 選取遞增或遞減作為內容資料行的排序順序。選取的順序必須與來源資料表中值的實際順序相符。否則，會發生錯誤。
4. 設定 每隔 (秒) 檢查變更 以指定檢查變更的頻率。預設值為 10 秒。
5. 輸入更新運算式以識別 UPDATE 作業。
6. 輸入 刪除運算式 以識別 DELETE 作業。

如果您未定義更新或刪除運算式，或者運算式不相符，則在遞增排序時上下文高於前一個上下文值、或在遞減排序時低於前一個上下文值的資料列，將會被視為 INSERT 操作。

### 運算式

以來源資料庫的原生語法撰寫運算式。下列範例使用 `oper` 欄位，其中包含用於更新的 `U` 以及用於刪除的 `D`：

* 更新運算式: `case when oper='U' then 1 else 0 end`
* 刪除運算式: `case when oper='D' then 1 else 0 end`

若要處理 DELETE 作業，請使用軟刪除。軟刪除會將資料列標記為已刪除，而不是將其從資料表中移除。

如需其他 Teradata 變更處理限制，請參閱 [限制和考慮事項](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/SourcesConnections/Teradata/limitations-teradata-source.htm)。

## 其他設定與摘要

在 CDC 屬性 區段中，您還可以設定內部參數、新增更多選項，以及檢視變更處理設定的摘要。

### 內部參數

內部參數不會在標準使用者介面中公開。僅在 Qlik 支援指示時才新增或變更它們。

1. 開啟內部參數設定。
2. 輸入參數名稱並將其新增至參數清單。
3. 按照 Qlik 支援的指示變更參數值。

### 更多選項

不會在標準使用者介面中暴露更多選項，且僅適用於特定版本或環境。除非 Qlik 支援或產品說明文件指示您這麼做，否則請勿設定這些選項。

### 覆寫連線字串參數

您可以附加未在使用者介面中公開的連線字串參數。通常不需要這些參數。在新增它們之前，請諮詢 Qlik 支援。

### 設定摘要

當您需要檢閱或向 Qlik 支援提供組態詳細資訊時，檢視變更處理設定摘要。