# データセットを変換するルールの作成

再利用可能な変換ルールを作成して、レプリケーション、ランディング、ストレージ、変換、データ マートのデータ タスクでデータセットに対してグローバル変換を実行できます。

情報メモ[スキーマの進化](https://help.qlik.com/ja-JP/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/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Transformation/Transformation-rules.htm#Using)」を参照してください。

## 変換するスコープ

複数の変換が同じデータセットまたは列に適用される場合、スコープは常に元のソース名にあり、アクションは前のルールが適用された後の値に関連します。たとえば、次のルールがあるとします。

1. Abc\_ (`Abc_%`) で始まるすべてのデータセットの名前を変更して、プレフィックスを ABC\_ に変更します。

2. ABC\_ (`ABC_%`) で始まるデータセットに接尾辞 \_zzz を追加します。

これらのデータセットにルールを適用すると、これらの結果が得られます。2 番目のルールの後、スコープは常に元の名前 (Abc\_customers) にあるため、\_zzz サフィックスは ABC\_customers に追加されないことに注意してください。

| 元のデータセット名 | ルール 1 の後のデータセット名 | ルール 2 の後のデータセット名 |
| --- | --- | --- |
| Abc\_customers | ABC\_customers | ABC\_customers |
| ABC\_Suppliers | ABC\_Suppliers | ABC\_Suppliers\_zzz |

## データセットの名前の変更

1. [データセットの名前を変更] を選択し、[次へ] をクリックします。

2. 変換スコープ、つまり名前を変更するデータセットを設定します。% をワイルドカード文字として使用して、1 つ以上のデータ アセットから複数のデータセットを選択できます。

   [次へ] をクリックします。

3. 変換アクションを設定します。次のアクションを実行できます。

   * データセットの名前を固定名に変更します。

   * プレフィックスまたはサフィックスを追加します。

   * プレフィックスまたはサフィックスを削除します。

   * プレフィックスまたはサフィックスを置換します。

   * 大文字または小文字に変更します。

   * 式を使用してデータセット名を置き換えます。

   * 辞書を使ってデータセット名を置き換えます。

     詳細については、「[辞書を使ってデータセットまたは列の名前を変更する](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Transformation/Transformation-rules.htm#Renaming)」を参照してください。

   準備ができたら、[次へ] をクリックします。

4. ルールの名前を設定し、[完了] をクリックします。

## データ メッセージの公開をカスタマイズ

情報メモKafka ターゲットでのみ使用できます。

1. [データメッセージの公開をカスタマイズ] を選択し、 [次へ] をクリックします。

2. 変換スコープ、つまりデータ メッセージの公開設定をオーバーライドするデータセットを設定します。% をワイルドカード文字として使用して、1 つ以上のデータ アセットから複数のデータセットを選択できます。

   [次へ] をクリックします。

3. 変換アクションを設定します。

   各設定について、現在のタスク設定は [タスク設定: &lt;設定&gt;] 項目で示されます (例: タスク設定: 特定のトピック)。

   これらの設定の説明については、「[データ メッセージの公開](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Replicating/replicating-settings.htm#Data3)」を参照してください。

   タスク設定を保持するか、式ビルダーを使用してカスタム トピック、メッセージ キー、またはパーティション キーを指定できます。

   情報メモこれらの設定はタスク設定を上書きしますが、個々のデータセットに対して構成された設定は上書きしません。

   式ビルダーを使用するには:

   1. 

      必要に応じて、 [カスタム トピック]、 [カスタム メッセージ キー]、または [カスタム パーティション キー] 項目を選択し、the 数式アイコン icon をクリックします。

      情報メモカスタム トピックがすでに存在しているか、ブローカーがトピックを作成するように構成されている必要があります。

      式ビルダーが開きます。

   2. 

      式をビルドします。

      関数、演算子、およびメタデータを使用して式を作成できます。

      the 右矢印アイコン icon をクリックして項目を式に移動します。

      Kafka でサポートされているすべての関数を式で使用することもできます。

   3. 

      [パラメーターの抽出] をクリックします。

      すべてのパラメーターについて、テストする値にテスト値を追加できるようになりました。

   4. 

      [式をテスト] をクリックします。

      テスト値を使用した、式の結果が表示されるはずです。

   5. 

      準備ができたら、[OK]をクリックします。

      式が項目に追加されます。

   ### 式の構築

   カスタム値を定義する式を作成する必要があります。以下を使用できます。

   * 関数

     文字列関数、数値関数、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. 変換スコープ、つまり名前を変更する列を設定します。% をワイルドカード文字として使用して、1 つ以上のデータ タスクおよびデータセットから複数の列を選択できます。

   アクションを特定のデータ型に制限することもできます。データ型に関係なく、一致するすべての列に対してアクションを実行するには、データ型を UNSPECIFIED に設定します。

   [次へ] をクリックします。

   スコープをキーまたは Null 許容の列に制限することもできます。

3. 変換アクションを設定します。次のアクションを実行できます。

   * 列名を固定名に変更します。

   * プレフィックスまたはサフィックスを追加します。

   * プレフィックスまたはサフィックスを削除します。

   * プレフィックスまたはサフィックスを置換します。

   * 列の文字を小文字または大文字に変更します。

   * 式を使用して列名を置き換えます。

   * 辞書を使って列名を置き換えます。

     詳細については、「[辞書を使ってデータセットまたは列の名前を変更する](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Transformation/Transformation-rules.htm#Renaming)」を参照してください。

   準備ができたら、[次へ] をクリックします。

4. ルールの名前を設定し、[完了] をクリックします。

## 列の追加

1. [列を追加] を選択し、[次へ] をクリックします。

2. 変換スコープ、つまり列を追加するデータセットを設定します。% をワイルドカード文字として使用して、列を 1 つ以上のデータセットに追加できます。

   [次へ] をクリックします。

3. 新しい列の詳細を設定します。

   * 列名。

   * 式ビルダーを使用して、列の値を設定します。

   * この列を主キーとして使用するには、[主キーに追加] を選択します。

   * ターゲットのデータ型でデータ型を設定します。

   * データ型が BYTES、STRING、または WSTRING の場合は、長さも指定します。

     データ型が NUMERIC の場合は、有効桁数とスケールも指定します。

   準備ができたら、[次へ] をクリックします。

4. ルールの名前を設定し、[完了] をクリックします。

## 列のドロップ

1. [列をドロップ] を選択し、[次へ] をクリックします。

2. 変換スコープ、つまりドロップする列を設定します。% をワイルドカード文字として使用して、1 つ以上のデータ アセットおよびデータセットから複数の列を選択できます。

   アクションを特定のデータ型に制限することもできます。データ型に関係なく、一致するすべての列に対してアクションを実行するには、データ型を UNSPECIFIED に設定します。

   [次へ] をクリックします。

   スコープをキーまたは Null 許容の列に制限することもできます。

3. ルールの名前を設定し、[完了] をクリックします。

## データ型の変換

1. [データ型の変換] を選択し、[次へ] をクリックします。

2. 変換スコープ、つまりデータ型を変換する列を設定します。% をワイルドカード文字として使用して、1 つ以上のデータ アセットおよびデータセットから複数の列を選択できます。

   アクションを特定のデータ型に制限することもできます。データ型に関係なく、一致するすべての列に対してアクションを実行するには、データ型を UNSPECIFIED に設定します。

   [次へ] をクリックします。

   スコープをキーまたは Null 許容の列に制限することもできます。

3. 変換アクションを設定します。

   * [ターゲット データ型] を変換先のデータ型に設定します。

     * データ型が BYTES、STRING、または WSTRING の場合は、次のいずれかを選択して長さを変更します。

       * 固定値: 長さを指定します。

       * 数式: 以下の [数式の作成](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Transformation/Transformation-rules.htm#Creating) の説明に従って式を作成します。

     * データ型が NUMERIC または DATETIME の場合は、 [精度 ] と [スケール] について次のいずれかを選択します。

       * 固定値: 値を指定します。

       * 数式: 以下の [数式の作成](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Transformation/Transformation-rules.htm#Creating) の説明に従って式を作成します。

4. 準備ができたら、[次へ] をクリックします。

5. ルールの名前を設定し、[完了] をクリックします。

参照先: [データ型の管理](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Introduction/Managing-data-types.htm)

### 数式の作成

式を作成するには、次を実行します。

1. 関数、演算子、メタデータを使用して式を作成します。

   the 右矢印アイコン icon をクリックして、アイテムを [式をビルド] エリアに移動します。

   クラウド データ プラットフォームでサポートされているすべての関数を式で使用することもできます。

2. [パラメーターの抽出] をクリックします。

   すべてのパラメーターについて、テストする値にテスト値を追加できるようになりました。

3. [式をテスト] をクリックします。

   テスト値を使用した、式の結果が表示されるはずです。

4. 準備ができたら、[OK]をクリックします。

   ターゲット データ型は、使用した式に基づいて定義されます。

データ型の長さの式の例:

$Q\_M\_DATATYPE\_LENGTH\*2

## 列の値の置換

1. [列の値を置換] を選択し、[次へ] をクリックします。

2. 変換スコープ、つまり値を置換する列を設定します。% をワイルドカード文字として使用して、1 つ以上のデータ アセットおよびデータセットから複数の列を選択できます。

   アクションを特定のデータ型に制限することもできます。データ型に関係なく、一致するすべての列に対してアクションを実行するには、データ型を UNSPECIFIED に設定します。

   [Next] (次へ)をクリックします。

   スコープをキーまたは Null 許容の列に制限することもできます。

3. 変換アクションを設定します。

   * ターゲット値に置換値を定義する式を設定します。

   * ターゲット データ型を、置き換えられた列のデータ型に設定します。

   * データ型が BYTES、STRING、または WSTRING の場合は、長さも指定します。

     データ型が NUMERIC の場合は、有効桁数とスケールも指定します。

   準備ができたら、[次へ] をクリックします。

4. ルールの名前を設定し、[完了] をクリックします。

## 辞書を使ってデータセットまたは列の名前を変更する

辞書を使ってデータセットまたは列の名前を変更します。これは、暗号関係の命名方法を使用する大量のオブジェクトを処理している場合に有用です。辞書エディターに翻訳を追加するか、または翻訳を含む CSV ファイルをインポートすることができます。辞書を CSV ファイルにエクスポートして、別のデータ アセットに再利用することもできます。

[辞書で名前を変更する] は、[データセットの名前を変更] または [列の名前を変更] を選択した場合に、[変換アクション] で表示されます。the ブック icon をクリックして、辞書エディタを開きます。

* [翻訳を追加] をクリックして、[ソース名] と [翻訳された名前] に情報を入力して、辞書に翻訳を追加します。

必要な翻訳を作成したら、[OK] をクリックして辞書エディタを閉じます。

情報メモ辞書のソース名と完全に一致した場合にのみ、名前が置換されます。部分一致はサポートされていません。

### 翻訳のインポート

辞書を含む CSV ファイルから翻訳をインポートできます。ファイルには、行ごとに 1 つの翻訳が含まれている必要があります。例:

```
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 に変更します。

## ルールの管理

[ルール] パネルでルールを管理できます。

* [ルール] をクリックします。

ルールの有効化/無効化、ルールの削除、およびルールの編集を行うことができます。