# 変換フローを追加

変換タスクにフローを含めることができます。フロー デザイナーを使用すれば、ソース、プロセッサー、ターゲットを使って変換フローを作成し、複雑または単純な変換を定義できるようになります。

変換フローとプロセッサーは論理表現です。つまり、ELT タスクではターゲットごとにテーブルが 1 つのみ作成され、どのプロセッサーもターゲットごとに 1 つの SQL 文にコンパイルされます。

## サポートされるターゲット プラットフォーム

変換フローでは、次のプラットフォームがサポートされています。

* Snowflake

* Databricks

* Google BigQuery

* Azure Synapse Analytics

* Microsoft Fabric

* Microsoft SQL Server

* Amazon Redshift

  情報メモUUID 文字列生成および Edit Distance の Amazon Redshift 関数は使用できません。

## 前提条件

変換フローを作成する前に、次の操作が必要です:

* 変換フローで使用したいオンボード データをストレージ タスクに入力するか、既存のデータを登録します。データのオンボードと登録方法の詳細については、「 [データ ウェアハウスへのデータのオンボーディング](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Onboarding/Onboarding-data.htm) および [データ プラットフォームに既存のデータを登録する](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Onboarding/Registering-data.htm)」を参照してください。
* 変換フローでソースとして使用するストレージまたは変換タスクを準備し、実行します。ストレージ タスクの実行は必須ではありませんが、フローの各ステップでデータ プレビューを表示できるようにすることをお勧めします。

## 変換フローを作成

有効な変換フローを作成するには、少なくともソース データセットが 1 つ、および定義されたキーを持つ名前付きターゲットが 1 つ必要です。

1. データ パイプラインで [データを変換] タスクを開きます。

2. [変換] で、変換フローに含めるソース データセットを選択して [変換フローを追加] をクリックします。

   [変換フローを追加] が表示されます。ここで変換を設定できます。

3. [名前] にターゲット データセットの名前を入力します。

   [説明] に長い説明を追加することもできます。

4. [実体化] で、変換された出力を実体化するかどうかを選択します。データ タスク設定から設定を継承することを選択できます。

   * [オン] にするとテーブルが作成され、関連する ELT 処理が実行されます。

   * [オフ] にすると、オンザフライで変換を実行するビューが作成されます。

5. [履歴データ ストア (タイプ 2)] で、履歴データを保存するかどうかを選択します。データ タスク設定から設定を継承することを選択できます。この設定では、 [実体化] がオンになっている必要があります。

6. 増分ロードを使用すると、マクロを使用して処理されるデータのセットを減らすためにフィルターまたはその他の条件を適用することで、増分データ ロードのクエリを調整できます。増分ロードは、データがテーブルとして実体化されている場合にのみ使用できます。

   * 増分ロードが [オン] の場合

     タスクの最初の実行では初期ロードが実行され、クエリのすべての結果がターゲット テーブルに挿入されます。後続の実行では、増分処理用に定義したフィルターまたは特定の条件を利用して、増分ロードが実行されます。増分ロード中、タスクはデータを更新または挿入としてのみ処理し、削除は管理されません。

   * 増分ロードが [オフ] の場合

     タスクの最初の実行では初期ロードが実行され、クエリのすべての結果がターゲット テーブルに挿入されます。後続の実行では、クエリのすべての結果をターゲット テーブルと比較し、新規、変更、または削除されたレコードを処理します。

   情報メモクエリがターゲットに存在する必要があるすべてのレコードを選択する場合は、増分ロードをオフに設定します。選択されていないレコードはターゲットで削除されます。

7. 変換フローを作成する準備ができたら、 [追加] をクリックします。

   フロー デザイナーが開き、ターゲットが作成されてターゲット コンポーネントとしてフローに表示されます。

   情報メモフロー ターゲットには一意の名前を付ける必要があります。後でフロー ターゲットの名前を変更する場合は、そのターゲットを選択し、 [データセット名] に新しい名前を入力します。

8. ターゲットにキーが定義されていない場合は、 [キーと Null 許容文字] 項目の横にある [編集] をクリックします。設定ウィンドウが開きます。

   情報メモキーはソース データセットから継承されないため、手動で定義する必要があります。Null 許容文字はソース データセットから継承され、変更も可能です。

9. [キーと Null 許容文字を設定] で、プライマリ キーとして定義する列で [キー] を、Null 許容文字として定義する列で [Null 許容文字] を選択します。

10. [確認] をクリックして変更を保存し、設定ウィンドウを閉じます。

変換フローのステータスが有効であれば、フローを閉じてデータを準備できます。

マテリアライゼーションと増分ロードの設定は、後でターゲット設定で変更できます。

* ターゲットを選択し、ターゲット構成の [設定] の横にある [編集] をクリックします。

## プロセッサーを追加

フローにプロセッサーを追加できます。

プロセッサーとはパイプラインに追加できるフローのことで、受信されるデータを変換し、変換されたそのデータがフローの次のステップに返されるようにします。

1. フロー デザイナーで、プロセッサーを追加するフロー コンポーネントを選択します。
2. フロー コンポーネントで the 垂直の省略記号アイコン icon をクリックし、次に [プロセッサーを追加] をクリックして、追加するプロセッサーを選択します。左のパネルからキャンバスにプロセッサーをドラッグすることもできます。

   ヒント メモ[プロセッサー] パネルからプロセッサーを選択すると、そのプロセッサーの簡単な説明が表示されます。
3. 必要に応じてプロセッサーを設定し、 [保存] をクリックして変更を保存してデータ プレビューを更新します。

   情報メモ[SQL] と [データ プレビュー] を使用すれば、データのサンプルをプレビューできます。詳細については、「[結果のプレビュー](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Transformation/Adding-SQL-based-tables.htm#Previewi)」を参照してください。

### 利用可能なプロセッサー

the Aggregate icon

### Aggregate プロセッサー

the 集計 icon

### AI プロセッサー

the Cleanse icon

### Cleanse プロセッサー

the Concatenate (連結) icon

### Concatenate (連結) プロセッサー

the フィルター icon

### Filter (フィルター) プロセッサー

the Fork (フォーク) icon

### Fork (フォーク) プロセッサー

the Hash (ハッシュ) icon

### Hash (ハッシュ) プロセッサー

the Incremental filter (増分フィルター) icon

### Incremental filter (増分フィルター) プロセッサー

the 結合 icon

### 結合プロセッサー

the Math icon

### Math プロセッサー

the Numbers (数値) icon

### Numbers プロセッサー

the Remove columns icon

### Remove columns プロセッサー

the Select columns icon

### Select columns プロセッサー

the SQL 式 icon

### SQL 式プロセッサー

the Strings (文字列) icon

### Strings (文字列) プロセッサー

the Union icon

### Union プロセッサー

### ユース ケース: Snowflake でデータを結合、集計、フィルタリング

このユース ケースでは、Snowflake の顧客データをプロセッサーで変換する必要があります。顧客情報は 2 つのデータセットから来るので、まず Join (結合) プロセッサーを追加してレコードを結合します。また、注文の平均価格を計算するために Aggregate (集計) プロセッサーを使い、出力データセットに残したい顧客レコードのタイプをフィルタリングするために Filter (フィルター) プロセッサーを使います。

![Join (結合) プロセッサー、Aggregate (集計)  プロセッサー、Filter (フィルター) プロセッサーを伴う変換フロー。](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Resources/Images/TransformationFlow/ui_TransformationFlowCanvas.png)

最初のデータセットは CUSTOMER\_ACCOUNT という Snowflake テーブルに基づいており、そのスキーマは次のようになります:

![顧客口座に関する Snowflake テーブル スキーマ](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Resources/Images/TransformationFlow/ui_TransformationFlowCustomerAccount.png)

2 番目のデータセットは CUSTOMER\_ORDER という Snowflake テーブルに基づいており、そのスキーマは次のようになります:

![顧客注文に関する Snowflake テーブル スキーマ](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Resources/Images/TransformationFlow/ui_TransformationFlowCustomerOrder.png)

1. 左パネルの [プロセッサー] から、Join (結合) プロセッサーをキャンバスにドラッグします。

2. 2 番目のソースを Join (結合) プロセッサーにリンクさせ、両方のデータセットからのデータを結合できるようにします。

3. 顧客 ID キー (CUSTOMER\_ID) で 2 つのソース データセットを結合するよう、Join (結合) プロセッサーを設定します。

4. Join (結合) プロセッサーの後ろに Aggregate (集計) プロセッサーをドラッグします。

5. 顧客セグメント タイプ (LEFT\_CUSTOMER\_SEGMENT) 別にレコードをグループ化しながら、顧客の平均購入金額 (ORDER\_TOTAL\_PRICE) を計算して新しい列に追加し、その列に avg\_order\_price という名前を付けられるよう、Aggregate (集計) プロセッサーを設定します。

6. 左パネルの [プロセッサー] から、Filter (フィルター) プロセッサーをキャンバスにドラッグ アンド ドロップします。

7. ビジネス顧客タイプ (Business) でフィルタリングするよう、Filter (フィルター) プロセッサーを設定します。

8. Filter (フィルター) プロセッサーで the 垂直の省略記号アイコン icon を選択してメニューを開き、 [一致しないターゲットを追加] をクリックして、2 番目のターゲットをフローに追加します。

   このターゲットには、フィルター条件に一致しなかったレコード、個々の顧客タイプ (Individual) が含まれます。

9. 新しいターゲット データセットの名前 (individual\_cust など) を入力します。

10. 両方のターゲットで出力プレビューを確認します:

    business\_cust ターゲットは、ビジネス顧客タイプの平均注文価格 (ここでは 157.463687151) を示します。

    ![ビジネス顧客タイプの平均注文価格を示す出力](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Resources/Images/TransformationFlow/ui_TransformationFlowBusinessOutput.png)

    individual\_cust ターゲットは、個人顧客タイプの平均注文価格 (ここでは 153.576530612) を示します。

    ![個人顧客タイプの平均注文価格を示す出力](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Resources/Images/TransformationFlow/ui_TransformationFlowIndividualOutput.png)

11. 変換フローのステータスが有効であることを確認したら、それを閉じます。

12. [変換] ウィンドウで、 [準備] をクリックしてデータを準備します。

## 制限と考慮事項

変換フローでは、次のデータ型を Cleanse、Hash、Filter などのプロセッサーの値として直接使用することはできません:

* TIME

* 日付

* DATETIME

* JSON

これらのデータ型を扱うには、まずサポートされている形式 (例えば STRING や NUMERIC) に変換してから、これらのプロセッサーで使用します。

## ベスト プラクティス

ソース データセットやターゲット データセットをフローに追加する場合は、ターゲット データセットの設定パネルでキーと Null 許容文字を設定する必要があります。