# 建立規則以轉換資料集

您可建立能重複使用的轉換規則，對複寫、登陸、儲存、轉換和資料超市資料任務中的資料集執行全面轉換。

資訊備註由於[結構描述演變](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Landing/Landing-data-data-sources.htm#Schema)而新增至任務的資料集和欄不支援全域轉換。

選取資料集，按一下轉換規則，然後按新增轉換規則以建立新的轉換規則。

1. 選取轉換類型，再按下一步。

   您可執行以下轉換操作：

   * 重新命名資料集

   * 覆寫資料訊息發佈

     資訊備註

     * 僅適用於 Kafka 目標。

     * 如果您正在使用 Data Movement gateway (內部部署 Kafka 所需)，則需要 2025.5.40 或更新版本。

   * 重新命名欄

   * 新增欄

   * 捨棄欄

   * 轉換資料類型

   * 取代欄值

2. 選取轉換範圍，再按下一步。

3. 選取要執行的轉換動作，再按下一步。

4. 為規則新增名稱和描述，再按一下完成。

即可在您執行資料任務時套用規則。若您新增多個規則，規則的執行順序會與列出順序相同。

提示備註您可以在規則的運算式中使用變數，例如欄名稱。如需詳細資訊，請參閱 [在運算式中包含中繼資料](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Transformation/Transformation-rules.htm#Using)。

## 轉換範圍

當有數項轉換適用於相同的資料集或欄時，範圍始終在於原始來源名稱，而在先前的規則套用之後，動作便與值建立關聯。例如，假設您有以下規則：

1. 將所有開頭為 Abc\_ (`Abc_%`) 的資料集重新命名，使前置詞改為 ABC\_。

2. 對開頭為 ABC\_ () 的資料集新增後置詞 \_zzz`ABC_%`。

將規則套用到這些資料集，即可得到這樣的結果。請注意，經過第二個規則之後，\_zzz 後置詞不會加入至 ABC\_customers，因為範圍始終落在原始名稱 (Abc\_customers)。

| 原始資料集名稱 | 經過規則 1 之後的資料集名稱 | 經過規則 2 之後的資料集名稱 |
| --- | --- | --- |
| Abc\_customers | ABC\_customers | ABC\_customers |
| ABC\_Suppliers | ABC\_Suppliers | ABC\_Suppliers\_zzz |

## 為資料集重新命名

1. 選取重新命名資料集，再按下一步。

2. 設定轉換範圍，亦即要重新命名的資料集。可用 % 做為萬用字元，從一或多個資料資產選取數個資料集。

   按一下下一步。

3. 設定轉換動作。您可執行以下動作：

   * 將資料集重新命名為固定名稱。

   * 新增前置詞或後置詞。

   * 移除前置詞或後置詞。

   * 取代前置詞或後置詞。

   * 改變大小寫。

   * 使用運算式取代資料集名稱。

   * 使用字典取代資料集名稱。

     如需詳細資訊，請參閱 [使用字典重新命名資料集或欄](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Transformation/Transformation-rules.htm#Renaming)。

   在您準備好時按一下下一步。

4. 設定規則的名稱，再按一下完成。

## 自訂資料訊息發佈

資訊備註僅適用於 Kafka 目標。

1. 選取自訂資料訊息發佈，然後按一下下一步。

2. 設定轉換範圍，亦即針對哪些資料集覆寫資料訊息發佈設定。可用 % 做為萬用字元，從一或多個資料資產選取數個資料集。

   按一下下一步。

3. 設定轉換動作。

   對於每個設定，目前的任務設定會由欄位任務設定: &lt;設定&gt;指示 (例如，任務設定: 特定主題)。

   如需這些設定的說明，請參閱[資料訊息發佈](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Replicating/replicating-settings.htm#Data3)。

   您可以保留任務設定，或使用「運算式建置器」來指定自訂主題、訊息金鑰或分割區金鑰。

   資訊備註這些設定將會覆寫任務設定，但不會覆寫為個別資料集設定的設定。

   若要使用「運算式建置器」：

   1. 

      視需要選取自訂主題、自訂訊息金鑰或自訂分割區金鑰欄位，然後按一下the 運算式圖示 icon。

      資訊備註自訂主題必須已經存在或代理程式必須設定為建立主題。

      即開啟運算式建立器。

   2. 

      建置運算式。

      您可以使用函數、運算子和中繼資料來建立運算式。

      按一下 the 向右鍵圖示 icon 可將項目移至運算式。

      您也可以將 Kafka 支援的所有函數使用在運算式中。

   3. 

      按一下擷取參數。

      現在，您可為所有參數新增測試值到要測試的值。

   4. 

      按一下測試運算式。

      即顯示使用測試值的運算式執行結果。

   5. 

      準備就緒後，按一下確定。

      運算式已新增至欄位。

   ### 建置運算式

   您需要建置運算式，以定義自訂值。您可使用：

   * 函數

     字串函數、數值函數、Null 檢查函數、資料與時間函數，及邏輯函數。

   * 運算子

     數學與邏輯運算子。部分運算子也在運算式上方的工具列中提供使用。字串串連 || 的運算子也可在此找到。

   * 中繼資料

     下列中繼資料可供使用：

     * $Q\_M\_SCHEMA\_NAME
     * $Q\_M\_SOURCE\_SCHEMA\_NAME
     * $Q\_M\_SOURCE\_TABLE\_NAME
     * $Q\_M\_TABLE\_NAME

   按一下 the 向右鍵圖示 icon 可將項目移至運算式。

   也可將 Kafka 支援的所有函數使用在運算式中。

   在您準備好時按一下下一步。

4. 設定規則的名稱，再按一下完成。

## 為欄重新命名

1. 選取重新命名欄，再按下一步。

2. 設定轉換範圍，亦即要重新命名的欄。可用 % 做為萬用字元，從一或多個資料任務和資料集選取數個欄。

   也可將動作限定為某些資料類型。將資料類型設定為 UNSPECIFIED 以對所有相符的欄執行動作，不論資料類型為何。

   按一下下一步。

   您也可以將範圍限制為是金鑰或可為 Null 的欄。

3. 設定轉換動作。您可執行以下動作：

   * 將欄重新命名為固定名稱。

   * 新增前置詞或後置詞。

   * 移除前置詞或後置詞。

   * 取代前置詞或後置詞。

   * 改變欄的大小寫。

   * 使用運算式取代欄的名稱。

   * 使用字典取代欄名稱。

     如需詳細資訊，請參閱 [使用字典重新命名資料集或欄](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Transformation/Transformation-rules.htm#Renaming)。

   在您準備好時按一下下一步。

4. 設定規則的名稱，再按一下完成。

## 新增欄

1. 選取新增欄，再按下一步。

2. 設定轉換範圍，亦即要新增欄的資料集。可用 % 做為萬用字元，將欄新增到一或多個資料集。

   按一下下一步。

3. 設定新欄的詳細資料：

   * 欄名稱。

   * 使用運算式建立器設定欄的值。

   * 選取新增至主要金鑰以將此欄做為主要金鑰使用。

   * 在目標資料類型中設定資料類型。

   * 如果資料類型是 BYTES、STRING 或 WSTRING，請也指定長度。

     如果資料類型是 NUMERIC，請也指定精確度和刻度。

   在您準備好時按一下下一步。

4. 設定規則的名稱，再按一下完成。

## 捨棄欄

1. 選取捨棄欄，再按下一步。

2. 設定轉換範圍，亦即要捨棄的欄。可用 % 做為萬用字元，從一或多個資料資產和資料集選取數個欄。

   也可將動作限定為某些資料類型。將資料類型設定為 UNSPECIFIED 以對所有相符的欄執行動作，不論資料類型為何。

   按一下下一步。

   您也可以將範圍限制為是金鑰或可為 Null 的欄。

3. 設定規則的名稱，再按一下完成。

## 轉換資料類型

1. 選取轉換資料類型，再按下一步。

2. 設定轉換範圍，亦即要轉換資料類型的欄。可用 % 做為萬用字元，從一或多個資料資產和資料集選取數個欄。

   也可將動作限定為某些資料類型。將資料類型設定為 UNSPECIFIED 以對所有相符的欄執行動作，不論資料類型為何。

   按一下下一步。

   您也可以將範圍限制為是金鑰或可為 Null 的欄。

3. 設定轉換動作。

   * 將目標資料類型設定為要轉換成的資料類型。

     * 如果資料類型是位元組、字串，或寬字串，請選擇下列其中一項來變更其長度：

       * 固定值: 指定長度。

       * 表達式： 建立一個表達式，如 [建立運算式](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Transformation/Transformation-rules.htm#Creating) 所述。

     * 如果資料類型是數值或日期時間，請選擇下列其中一項作為精確度和小數位數：

       * 固定值： 指定一個值。

       * 表達式： 建立一個表達式，如 [建立運算式](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Transformation/Transformation-rules.htm#Creating) 所述。

4. 在您準備好時按一下下一步。

5. 設定規則的名稱，再按一下完成。

另請參閱：[管理資料類型](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Introduction/Managing-data-types.htm)

### 建立運算式

建立運算式：

1. 您可以使用 函數、運算子 和 中繼資料 來建立運算式。

   按一下the 向右鍵圖示 icon 可將項目移至 建置運算式 區域。

   也可將雲端資料平台支援的所有函數使用在運算式中。

2. 按一下擷取參數。

   現在，您可為所有參數新增測試值到要測試的值。

3. 按一下測試運算式。

   即顯示使用測試值的運算式執行結果。

4. 準備就緒後，按一下確定。

   目標資料類型將根據您使用的表達式來定義。

資料類型長度的範例表達式：

$Q\_M\_DATATYPE\_LENGTH\*2

## 取代欄值

1. 選取取代欄值，再按下一步。

2. 設定轉換範圍，亦即要取代值的欄。可用 % 做為萬用字元，從一或多個資料資產和資料集選取數個欄。

   也可將動作限定為某些資料類型。將資料類型設定為 UNSPECIFIED 以對所有相符的欄執行動作，不論資料類型為何。

   按一下下一步。

   您也可以將範圍限制為是金鑰或可為 Null 的欄。

3. 設定轉換動作。

   * 設定運算式，以定義目標值中的取代值。

   * 將目標資料類型設定為被取代欄的資料類型。

   * 如果資料類型是 BYTES、STRING 或 WSTRING，請也指定長度。

     如果資料類型是 NUMERIC，請也指定精確度和刻度。

   在您準備好時按一下下一步。

4. 設定規則的名稱，再按一下完成。

## 使用字典重新命名資料集或欄

您可以使用字典重新命名資料集或欄。若您處理使用隱密命名慣例的大量物件，則這很實用。您可以在字典編輯器中新增翻譯或匯入包含翻譯的 CSV 檔案。您也可以將字典匯出為 CSV 檔案並在另一個資料資產中重複使用。

若您已選取重新命名資料集或重新命名欄，則依字典重新命名可用於轉換動作。按一下the 書 icon 可開啟字典編輯器。

* 按一下新增翻譯並填入來源名稱和翻譯名稱以將翻譯新增至字典。

建立所需的翻譯操作之後，按一下確定以關閉字典編輯器。

資訊備註若有完全符合字典中來源名稱的內容，才會取代名稱。不支援部分相符。

### 匯入翻譯

您可以從包含字典的 CSV 檔案匯入翻譯。檔案應包含每列一個翻譯。範例：

```
sourcename1,translatedname1
sourcename2,translatedname2
sourcename3,translatedname3
```

* 按一下從 CSV 附加並選取要匯入的 CSV 檔案。

匯入的字典中的翻譯就會附加至您的字典。

### 匯出翻譯

您可以將字典匯出為 CSV 檔案，以便在其他資料資產中重複使用。

* 按一下匯出為 CSV。

字典就會匯出為 CSV 檔案。

## 在運算式中包含中繼資料

運算式編輯器的中繼資料索引標籤包含下列您可以用於轉換規則之運算式的變數。

資訊備註在資料移動期間，原始來源資料類型會對應至 Qlik Talend Data Integration 資料類型，然後才選擇性地轉換並對應至目標。例如，MySQL 中的 BIT 資料類型會映射到 Qlik Talend Data Integration 中的 BOOLEAN 資料類型。因此，名稱中包含 DATATYPE 的變數，指的是 Qlik Talend Data Integration 資料類型或轉換後的資料類型，而非原始來源資料類型。

可用於轉換規則的變數

| 變數 | 描述 |
| --- | --- |
| $Q\_D\_COLUMN\_DATA | 來源表格中的欄值。 |
| $Q\_M\_COLUMN\_NAME | 已修改的欄名稱。 |
| $Q\_M\_DATATYPE\_LENGTH | 已修改的欄資料類型長度。 |
| $Q\_M\_DATATYPE\_NAME | 已修改的欄資料類型。 |
| $Q\_M\_DATATYPE\_PRECISION | 已修改的欄資料類型精確度。 |
| $Q\_M\_DATATYPE\_SCALE | 已修改的欄資料比例。 |
| $Q\_M\_SCHEMA\_NAME | 來源結構描述的名稱。 |
| $Q\_M\_SOURCE\_COLUMN\_NAME | 來源表格中的欄名稱。 |
| $Q\_M\_SOURCE\_DATATYPE\_LENGTH | 來源表格中的欄資料類型長度。 |
| $Q\_M\_SOURCE\_DATATYPE\_NAME | 來源表格中的欄資料類型。 |
| $Q\_M\_SOURCE\_DATATYPE\_PRECISION | 來源表格中的欄資料類型精確度。 |
| $Q\_M\_SOURCE\_DATATYPE\_SCALE | 來源表格中的欄資料類型比例。 |
| $Q\_M\_SOURCE\_TABLE\_NAME | 來源表格的名稱。 |
| $Q\_M\_TABLE\_NAME | 已修改的來源表格名稱。 |

您可以重新命名轉換範圍中的所有表格，以透過下列運算式新增結構描述名稱作為前置詞：

`${Q_M_SCHEMA_NAME}||'.'||${Q_M_SOURCE_TABLE_NAME}`.

例如，這會將 dwprod 結構描述中的表格 products 重新命名為 dwprod.products。

## 管理規則

您可在規則窗格中管理規則。

* 按一下規則。

您可啟用/停用規則、刪除規則，及編輯規則。