# IBM DB2 for iSeries

本節解說如何在資料任務中設定 IBM DB2 for iSeries 來源。在您開始資料任務之前，請確定已滿足[必要條件](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/SourcesConnections/IBM4DB2-iseries/prereq-idb2.htm)、設定[必要權限](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Global_Common/Content/SharedReplicateHDD/IBM4DB2-iseries/required_permissions_iseries.htm)，並且熟悉[限制和考慮事項](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Global_Common/Content/SharedReplicateHDD/IBM4DB2-iseries/iseries_limitations.htm)。

## 設定連線屬性

本節說明可用的連線屬性。除非另有指明，否則所有屬性皆為必要。

若要開啟連接器，進行下列事項：

1. 在連線中，按一下建立連線。

2. 選取 IBM DB2 for iSeries 來源連接器，然後提供下列設定：

### 資料來源

* 資料閘道

  選取 資料移動閘道 以用於移動您的資料。

  如需關於 資料移動閘道 的詳細資訊，請參閱 [Qlik 資料閘道 - 資料移動](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/replication-gateway.htm)。

* 伺服器： IBM DB2 for iSeries 伺服器的 IP 位址或主機名稱。

### 帳戶屬性

* 使用者名稱：存取 IBM DB2 for iSeries 伺服器所需的使用者名稱。

* 密碼：存取 IBM DB2 for iSeries 伺服器所需的密碼。

### 資料庫屬性

* 使用資料表與結構描述系統名稱： IBM DB2 for iSeries 來源 連接器會根據資料表的 SQL 名稱 (長度不受限制) 載入資料表。如果您的 IBM DB2 for iSeries 資料庫未使用 SQL 名稱，您不妨保留系統名稱。
* 相對記錄編號 (RRN)： 請參閱下方的 [新增 RRN 欄至目標表格](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/SourcesConnections/IBM4DB2-iseries/IBM4DB2-iseries-source.htm#top)。

### CDC 屬性

* 日誌名稱：包含來源資料表的日誌名稱。

  另請參閱：[CDC 先決條件](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/SourcesConnections/IBM4DB2-iseries/prereq-idb2.htm#CDC)

* 日誌物件庫： 日誌所在的物件庫名稱。

  另請參閱：[CDC 先決條件](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/SourcesConnections/IBM4DB2-iseries/prereq-idb2.htm#CDC)

* 在工作啟動時略過日誌驗證： 自 IBM DB2 for iSeries 7.3 起，Qlik Talend Data Integration 會自動驗證指定日誌。這涉及檢查日誌是否存在，並且含有為登陸選取的表格。為登陸選取眾多表格時，此程序可能會花一些時間。如有此情形，若您確定指定日誌存在，也含有正確的表格，您可略過驗證階段。

* 對於下列選項如需詳細資訊，請參閱下方的[擷取變更時使用 R4I UDTF](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/SourcesConnections/IBM4DB2-iseries/IBM4DB2-iseries-source.htm#Using)。

  * 啟用 UDTF 擷取
    * CDC 讀取器 UDTF 名稱
    * UDTF 結果集合大小 (MB)

* 每隔 (秒) 檢查一次變更： 檢查來源資料庫是否有變更的頻率。

### 覆寫 CCSID 對應到代碼頁面

在 CCSID 至字元集對應欄位中，使用以下格式（使用逗號而不是空白格分隔）輸入 CCSID 和字碼頁：

CCSID1,codepage1,CCSID2,codepage2,...

字元集（字碼頁）必須指定使用適當格式（如：ibm-1148\_P100-1997）。有效格式清單，請參閱[ICU Converter Explorer](http://demo.icu-project.org/icu-bin/convexp)。

#### 轉換為自訂代碼頁面

如果使用了不正確的 CCSID 定義來源資料集，且正確的定義實際上位於 UCM 檔案中，請執行下列程序。

1. 在 資料移動閘道 機器上：

   1. 如果未安裝 ICU 套件，請開啟 shell 提示並安裝 [ICU 套件](https://icu.unicode.org/home)。

   2. 將工作目錄變更為 &lt;product\_dir&gt;/bin。

      預設 &lt;product\_dir&gt; 是 /opt/qlik/gateway/movement

   3. 建立檔案延伸為 **.ucm** 的對應資料檔案。

      資訊備註

      如果您編輯現有的 UCM 檔案，則也必須變更 `<code_set_name>` 和 `<icu:alias>` 屬性的值。如果檔案不包含 `<icu:alias>` 屬性，那麼只需要變更 `<code_set_name>` 屬性的值。

   4. 執行以下命令，為 UCM 檔案建立 CNV 檔案：

      `makeconv -v <file_name>.ucm`

      範例：

      `makeconv -v 1047_EX.ucm`

      這將建立與 UCM 檔案名稱相同的 CNV 檔案 (例如 1047\_EX.cnv)。

   5. 在 &lt;product\_dir&gt;/bin 之下建立名為 icudt&lt;XX&gt;l 的新子資料夾，其中 XX 與 libicudata.so.&lt;XX&gt; 檔案名稱中的數字相同。

      例如，如果共用物件檔案名稱為 libicudata.so.69，則請建立名為 icudt69l 的新子資料夾。

   6. 將 CNV 檔案複製到剛剛建立的子資料夾 (&lt;product\_dir&gt;/bin/icudt69l 在上面的範例中)。

2. 在連接器對話方塊的 CCSID 至字元集對應欄位中，輸入原始來源 CCSID 編號，後面接著不含副檔名的 CNV 檔案名稱。

   範例：

   1047,1047\_EX

3. 在 資料移動閘道 機器上，使用以下命令重新啟動 資料移動閘道 服務：

   sudo systemctl restart repagent

### 內部屬性

內部屬性用於特殊使用情況，因此不會在對話方塊中顯示。您只能在 Qlik 支援指示下使用。

根據需要使用欄位右側的 the 新建 icon 和 the 取消 icon 按鈕以新增或移除屬性。

### 名稱

來源連線的顯示名稱。

## 新增 RRN 欄至目標表格

沒有主要金鑰、唯一索引或結合可用作唯一索引的欄位的來源表格，必須在使用相對記錄號碼 (RRN) 的情況下進行註冊。

選擇以下其中一個選項：

* 在無主要金鑰或唯一索引的情況下新增 RRN 欄至目標表格。RRN 欄將自動成為目標表格的主要金鑰。

* 新增 RRN 欄至所有目標表格

* 不要新增 RNN 欄至目標表格

要在有 \*AFTER 圖片記載表格的自動認可模式支援刪除操作，請遵循以下步驟：

1. 啟用 新增 RRN 欄位至所有目標表格 選項。

2. 標記目標上的 RRN 欄為表格單一主要金鑰（使用轉換）。

   請注意，未把 RRN 欄新增為主要金鑰將導致在進行刪除操作時，表格會被停用。

當選擇其中一個「新增 RRN 欄」選項，變更表格和目標表格皆會多出一個欄位：INTEGER 類型的 ATTREP\_RRN，每一列皆會包含唯一數值。此欄包括對應每個來源表格列的 RRN。

資訊備註

iSeries RRN 數值的 IBM DB2 代表保留表格資料檔案結構中列的確切位置。重新組織表格時，表格會重新建立，將會組態*新的*RRN 到每一列。因此，應盡可能避免重新組織使用 RRN 為目標金鑰的表格。如果無法避免重新組織一事，您必須立刻重新載入已組織的表格，避免變更應用於目標時產生無法預測的行為（例如：失敗的刪除、重複插入等等）。

## 擷取變更時使用 R4I UDTF

預設為在Data Movement gateway 機器上使用 standard display\_journal 功能篩選自 iSeries IBM DB2 擷取到的變更。當有大量變更時，這可能會影響變更處理效能。

在 iSeries IBM DB2 上安裝 R4I UDTF 能篩選 iSeries IBM DB2 擷取到的變更，而不是在 Data Movement gateway 機器上進行，這會大幅改善 CDC 效能。

警告備註R4I UDTF 每個任務最多可擷取 300 個表格。如果您每個任務需要擷取超過 300 個表格，請勿使用此選項。

要使用 R4I UDTF 設定變更擷取：

1. 移至 [產品下載](https://community.qlik.com/t5/Downloads/tkb-p/Downloads)。

2. 選取 Qlik 資料整合。

3. 向下捲動產品清單並選取 Replicate。

4. 在下載連結欄中，按一下 QlikReplicate\_\_R4I.zip 連結以開始下載。

5. 將 R4I UDTF 安裝在 IBM DB2 的 iSeries 伺服器上。

6. 選擇啟用 UDTF 擷取選項。

7. 如果在 R4I 安裝期間變更預設 CDC 讀取器 UDTF 名稱，在 CDC 讀取器 UDTF 名稱欄位指定新名稱。

8. 在 UDTF 結果集大小 (MB) 欄位，可設定 R4I UDTF 返回結果集緩衝的最大大小。更大的結果集通常會改善效能，但也會影響 DB2 記憶體消耗。因此，如果您想增加結果集大小，最佳作法是先在測試環境中進行任務，因為在 DB2 上記憶體不足會導致目標資料不一致（因擷取到部分記錄）。