# データの変換

データ パイプラインの一部として、再利用可能なルール ベースのデータ変換を作成できます。データ オンボーディングの一部として変換を実行したり、再利用可能な変換データ タスクを作成したりできます。行レベルの変換を実行したり、SQL 変換を含めたり、複雑な変換フローを設計したりできます。結果のデータセットは、テーブルとして実現することも、その場で変換を実行するビューとして作成することもできます。

情報メモ高度な変換は、Qlik Talend Cloud Premium または Qlik Talend Cloud Enterprise サブスクリプションで利用できます。

* 明示的なデータセット変換を実行したり、複数のデータセットを変換するグローバル ルールを作成したりできます。データセットをフィルタリングして、行のサブセットを作成することもできます。

* SQL 変換を追加できます。SQL 変換では、SQL SELECT クエリーをパイプラインに入力して、複雑な変換や単純な変換を定義できます。

* SQL ワークベンチを使用して、準備済みのタスク全体でデータを探索し、プロジェクトのコンテキストで SQL クエリを検証できます。詳細については、「[SQL Workbench を使用したデータ探索](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Transformation/SQL-workbench-data-exploration.htm)」を参照してください。

* ソース、プロセッサー、ターゲットを使用して視覚的な変換フローを追加し、複雑な変換または単純な変換を定義できます。

情報メモデータ タスクは、所属するプロジェクトの所有者のコンテキストで動作します。必要なロールと権限の詳細については、「[データスペースのロールと権限](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/DataSpaces/permissions-data-space.htm)」を参照してください。

変換データ タスクには、次の 3 つのビューが含まれます。

* 変換

  このビューには、ソース データセットからターゲット データセットへのフローを視覚化するためのすべての変換が表示されます。

* データセット

  このビューには、データのフィルタリングや列の追加など、データセットのすべての基本的な変換と、グローバル変換を実行するためのルールが表示されます。

* [Model] (モデル)

  このビューでは、含まれるデータセット間の関係を持つデータ モデルを作成できます。詳細については、「[データ モデルの作成](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Transformation/Create-data-model.htm)」を参照してください。

データ ウェアハウスにテーブルを保存するだけでなく、データ プラットフォームによって管理される Iceberg テーブルとしてテーブルを保存することもできます。このオプションは現在、Snowflake プロジェクトでのみ使用できます。これは、タスク設定の [テーブル タイプ] で [Snowflake 管理の Iceberg テーブル] を選択することで可能になります。

## 変換データ タスクの作成

変換データ タスクを作成する最も簡単な方法は、ストレージ データ タスクで [...] をクリックし、[データの変換] を選択することです。

プロジェクトで [作成] をクリックし、 [データの変換] を選択することもできます。この場合、使用するソース データ タスクを定義する必要があります。

1. 変換でソース データとターゲットを定義します。

   次のいずれかを実行できます。

   * データセット変換の実行

     ソース データセットを選択し、 [ターゲットを追加] をクリックして [ターゲット] に追加します。

     その後、 [データセット] で、データのフィルタリングまたは列の追加など、データセットに対する基本的な変換を実行できます。

     詳細については、「[データセットの管理](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Introduction/Managing-datasets.htm)」を参照してください。

   * SQL 変換の追加

     ソース データセットを選択して、 [SQL 変換を追加] をクリックします。

     SQL 変換では、SQL SELECT クエリーをパイプラインに入力して、複雑な変換や単純な変換を定義できます。

     詳細については、「[SQL 変換の追加](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Transformation/Adding-SQL-based-tables.htm)」を参照してください。

   * 変換フローの追加

     ソース データセットを選択して、 [変換フローを追加] をクリックします。

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

     詳細については、「[変換フローを追加](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Transformation/Adding-transformation-flows.htm)」を参照してください。

2. [ソース データの選択] をクリックして、他のストレージ データ タスクからさらにデータセットを追加することもできます。

   現在のプロジェクトまたは別のプロジェクトから、データセットを追加できます。別のプロジェクトからデータセットを追加する場合、次の要件があります。

   * 消費されるプロジェクトのスペースでは、少なくとも [消費可能] ロールを持っている必要があります。

   * 両方のプロジェクトが同じデータ プラットフォーム上にある必要があります。

   選択したプロジェクトがバージョン管理下にある場合は、ソースとして使用するブランチを選択できます。クロスプロジェクト パイプラインの詳細については、「[クロスプロジェクト パイプラインの構築](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Introduction/Data-projects.htm#Building)」を参照してください。

3. 必要な変換を追加したら、 [データセットの検証] をクリックしてデータセットを検証します。検証でエラーが見つかった場合は、先に進む前にエラーを修正してください。

   詳細については、「[データセットの検証と調整](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Introduction/Managing-datasets.htm#Validati)」を参照してください。

4. データ モデルを作成

   [モデル] をクリックして、含まれるデータセット間の関係を設定します。

   詳細については、「[データ モデルの作成](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Transformation/Create-data-model.htm)」を参照してください。

5. [準備] をクリックして、データ タスクと必要なすべてのアーティファクトを準備します。これには少し時間がかかる場合があります。

   画面下部の [準備の進捗状況] で進捗状況を確認できます。

   情報メモタスクを準備する前に、直接ダウンストリームにあるすべてのタスクを停止します。

6. ステータスが [準備済み] と表示されたら、データ タスクを実行できます。

   [...] をクリックしてから [実行] をクリックします。

データ タスクは、データを変換するためのデータセットの作成を開始します。

情報メモデータセットの生成を開始したときに、含めるデータセットを変更することはできません。

## 変換ビューの使用

[変換] では、ソース データセットからターゲット データセットへのフローを視覚化するためのすべての変換が表示されます。

* 変換を選択すると、どのソース データセットが使用され、どのターゲット データセットが作成されるかを確認できます。

* ソースを選択すると、そのソースが使用されているすべての変換と、結果として生じるすべてのターゲットが表示されます。

* ターゲットを選択して、ソース データセットと、このターゲット データセットを作成した変換を確認します。

変換の変換ビュー

変換の変換ビュー

変換の変換ビュー ![変換の変換ビュー](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Resources/Images/qcdi_transform.png)

[表示オプション] をクリックすると、次の設定を変更できます。

* 変換タイプでフィルタリング

  1 つまたは 2 つの変換タイプの変換のみを表示します。

* フィルター

  すべての変換を表示するか、選択した変換のみを表示します。このオプションを有効にするには、変換を選択する必要があります。

* 密度

  変換をコンパクトなレイアウトで表示するか、スペースを広く使用してワイドなレイアウトで表示するかを選択します。

## データセットビューの使用

[データセット] では、変換タスクのすべてのターゲット データセットを表示および編集できます。

詳細については、「[データセットの管理](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Introduction/Managing-datasets.htm)」も参照してください。

### ターゲット データセットの追加

変換タスクにさらにターゲット データセットを追加できます。

1. the データセットを追加 icon をクリックします。

2. データセットの [名前] と、必要に応じて [説明] を入力します。

3. [ソースデータセット] のタスクで、使用可能なデータセットからソースデータセットを選択します。

   ヒント メモ[ソース データセットなし] を選択すると、ソースに接続していない空のデータセットを作成できます。設計中にデータセットに列を追加できますが、タスクを準備する前にソース データセットに接続する必要があります。

ターゲット データセットが追加されました。

### ソース データセットの変更

ターゲット データセットのソース データセットを変更できます。

1. [ソース] の後の the 編集 icon をクリックします: [ソース データセットの名前]。

2. [ソース データセット] のタスクで、使用可能なデータセットから別のソースデータセットを選択します。

   ヒント メモ[ソース データセットなし] を選択すると、ターゲット データセットをソースから切断できます。設計中にデータセットを編集できますが、タスクを準備する前にソース データセットに接続する必要があります。

### 新しい列の追加

ターゲット データセットに新しい列を追加できます。

* 新しい列をゼロから追加する

  [+ 追加] をクリックします。

  列の名前を指定し、列データを定義する数式を設定します。

  詳細については、「[データセットへの列の追加](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Transformation/Add-columns.htm)」を参照してください。

* ソースから列を追加する

  [追加] の横にある the 下 icon をクリックし、 [ソースから列を追加] を選択します。

  ソース データセットから列を選択します。

### 列の並び替え

列の順序を変更できます。

1. 列を選択します。

2. the 順序変更 icon、 [] の順でクリックします。

3. 矢印を使用して列を上または下に移動します。

4. 準備ができたら [序列を変更] を閉じます。

### 変換ルールの作成

再利用可能な変換ルールを作成して、データセットに対してグローバル変換を実行できます。

ルール作成の詳細については、「[データセットを変換するルールの作成](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Transformation/Transformation-rules.htm)」を参照してください。

ヒント メモ[ルール効果を表示] を選択すると、ルールの効果を表示できます。[ルール効果を表示] が有効になっている場合は、データセットを変更できません。

### データセットのフィルタリング

必要に応じて、データをフィルタリングして行のサブセットを作成できます。

* the フィルター icon、 [] の順でクリックします。

フィルタリングの詳細については、「[データセットのフィルタリング](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Transformation/Filter-data.htm)」を参照してください。

## 変換タスクのスケジュール

変換タスクを定期的に更新するようにスケジュールできます。時間ベースのスケジュールを設定することや、入力データ タスクの実行が完了したときにタスクを実行するように設定できます。

データ タスクの [...] をクリックし、[スケジュール] を選択してスケジュールを作成します。デフォルトのスケジュール設定は、プロジェクトの設定から継承されます。設定の詳細については、「[変換のデフォルト](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Introduction/Data-project-settings.htm#Transfor)」を参照してください。

スケジュールを有効にするには、常に [スケジュール] を [オン] に設定する必要があります。

情報メモタスクのすべてのデータセットが非マテリアライズドの場合、ビューで瞬時に変換されるため、実行するものはありません。非マテリアライズドの変換要求のスケジュールを作成して、スケジュール条件が満たされたときに実行することはできます。タスクはすぐに完了し、データ マートなどのダウンストリーム タスクをトリガーできます。これにより、パイプライン フローを中断することなく、非マテリアライズドの変換を含むイベント ベースのパイプライン スケジュールを構築できます。

### 時間ベースのスケジュール

異なる入力ソースが更新されるタイミングに関係なく、時間ベースのスケジュールを使用してタスクを実行できます。

* [データ タスクを実行] で、[特定の時刻] を選択します。

時間、日、週、または月単位でスケジュールを作成できます。

### イベント ベースのスケジュール

イベント ベースのスケジュールを使用して、入力データ タスクの実行が完了したときにタスクを実行できます。

* [データ タスクを実行] で、[特定のイベント発生時] を選択します。

いずれかの入力タスクが正常に完了したときにタスクを実行するか、選択した入力タスクのいずれかが正常に完了したときにタスクを実行するかを選択できます。

情報メモスケジュールがトリガーされたときに入力タスクまたはダウンストリーム タスクが実行されている場合、タスクは実行されません。タスクは、次のスケジュールされた実行までスキップされます。

## 変換タスクの監視

[監視] をクリックすると、変換タスクのステータスと進行状況を監視できます。

詳細については、「[個々のデータ タスクの監視](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Introduction/Monitoring-data-tasks.htm)」を参照してください。

## データのリロード

データが物理テーブルとして実体化されている場合は、テーブルの手動リロードを実行できます。これは、1 つ以上のテーブルに問題がある場合に便利です。

情報メモデータセットが実体化されていない場合は、アップストリーム データ タスクでソース データセットをリロードしてデータを更新する必要があります。

1. データ タスクを開き、 [監視] タブを選択します。

2. リロードするテーブルを選択します。

3. [テーブルのリロード] をクリックします。

リロードは次にタスクが実行されるときに行われます。リロード プロセスの動作は、各データセットの履歴設定と変換タイプに応じて異なります。つまり、データ タスク内のデータセットに応じて、リロード プロセスは異なる可能性があります。

* データセット変換は、切り捨てとリロードによってリロードされます。

* SQL 変換と変換フローは、切り捨ててロードするか、比較して適用することによってリロードできます。比較して適用するのがベストプラクティスです。

  [SQL 変換または変換フローに基づいたデータセットの リロード](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Transformation/Transformations.htm#Reloadin)

[リロードをキャンセル] をクリックすると、リロードがペンディングされているテーブルのリロードをキャンセルできます。すでにリロードされているテーブルに影響することはなく、現在実行中のリロードは完了します。

変更を適用し、バックデートを回避するために、ダウンストリーム タスクがリロードされます。

Transform data タスクのリロード後のダウンストリームへの影響

Transform data タスクのリロード後のダウンストリームへの影響

Transform data タスクのリロード後のダウンストリームへの影響 ![変換リロードのダウンストリーム効果](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Resources/Images/qcdi_reload_downstream_transform.png)

ダウンストリームへの影響は、実行されたリロード操作のタイプと、直接のダウンストリーム データセットのタイプによって異なります。標準処理とは、特定のデータセットに対して構成された方法を使用して、データセットが反応してデータを処理することを意味します。

切り捨てとロードによるデータセットのリロード

* 次のデータセットでデータセット変換が使用されている場合、次回の実行時に切り捨てとロードによってリロードされます。

* 次のデータセットが SQL 変換または変換フローの場合、比較と適用を使用してリロードされます。

### 履歴のないデータセットのリロード

この場合、考慮する履歴はありません。ターゲットでの処理を軽減するために、リロードは次のように実行されます。

1. テーブルを切り捨てます。

2. アップストリーム データ タスクから現在のデータをロードします。

ダウンストリーム タスクは変更を適用するためにリロードされます。

### 履歴を有効にしたデータセットのリロード

リロードは次のように実行されます。

1. 現在のテーブル、先行テーブル、変更テーブルを切り捨てます。

2. 先行テーブルを含む、アップストリーム データ タスクからデータをロードします。

### SQL 変換または変換フローに基づいたデータセットの リロード

* 切り捨ててリロード

  情報メモこのオプションを使用すると、履歴が失われる可能性があります。

  1. 現在のテーブルと変更テーブルを切り捨てます。

  2. クエリを実行し、現在のテーブルにロードします。

* リロードして比較

  1. クエリを実行し、現在のテーブルと比較します。

  2. 変更を追加します。

情報メモ上流タスクのリロードにより SQL 変換または変換フローに基づくデータセットがリロードされる場合、常に比較と適用によってリロードされます。切り捨ててリロードする場合は、これらのテーブルに対して特定のリロードを発行する必要があります。この場合、下流のテーブルへの影響も考慮する必要があります。

## タスクを削除する

データ タスクが実行中でなく、同じプロジェクト内のダウンストリーム タスクへの依存関係がない場合は、データ タスクを削除できます。

* プロジェクトの [パイプライン プロジェクト] ビューで、タスク上の the 詳細 icon をクリックし、 [削除] を選択します。

このタスクによって作成されたアーティファクト (テーブルおよびビュー) は、保持を選択しない限り削除されます。

情報メモ保持するアーティファクトは、タスクによって更新されなくなることに留意してください。

## タスク情報の表示

メニュー バーで the 情報 icon をクリックして、次のようなタスク情報を表示します。

* 所有者

* スペース

* データ プラットフォーム

* プロジェクトID

* データ タスク実行 ID

## 変換設定

変換データ タスクのプロパティを設定できます。

* [Settings] (設定)をクリックします。

警告メモタスクが既に実行されている場合、ランタイム設定以外の設定を変更するには、データセットをリロードする必要があります。

### 一般設定

* [Database] (データベース)

  データ ソースで使用するデータベース。

* タスクのスキーマ

  データ タスクのスキーマの名前を変更できます。既定の名前は、タスクの名前です。

* 内部スキーマ

  内部ストレージ スキーマの名前を変更できます。既定の名前は、タスクの名前に「\_internal」を追加したものです。

* スキーマ名を既定で大文字化

  すべてのスキーマ名の既定の大文字と小文字を設定できます。データベースが大文字と小文字を強制するように設定されている場合、このオプションは効果がありません。

* すべてのテーブルとビューのプレフィックス

  このタスクで作成したすべてのテーブルとビューにプレフィックスを設定できます。

  情報メモ複数のデータ タスクでデータベース スキーマを使用する場合は、一意のプレフィックスを使用する必要があります。

* マテリアライズド

  オンザフライで変換を実行するビューのみを作成する (非マテリアライズド) か、テーブルとビューの両方を作成する (マテリアライズド) かを選択できます。

* 履歴データ ストア (タイプ 2)

  過去の変更データを保持して、特定の時点でのデータを簡単に再作成できるようにすることができます。履歴ビューとライブ履歴ビューを使用して、履歴データを表示できます。

* カタログに公開する

  このオプションを選択して、データのこのバージョンをデータセットとしてカタログに公開します。カタログのコンテンツは、このタスクを次回準備する際に更新されます。

  カタログの詳細については、[カタログ ツールの使用によるデータの理解](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/Catalog/catalog-overview.htm) を参照してください。

### 実行時間の設定

* 並列実行

  フル ロードの最大接続数を 1 から 5 の数値に設定できます。

* ウェアハウス

  クラウド データ ウェアハウスの名前です。

### ビュー タイプの設定

ビュー タイプの設定は Snowflake にのみ適用されます。

* 標準ビュー

  ほとんどのケースでは、標準ビューを使用します。

* Snowflake セキュア ビュー

  基礎となるテーブルのすべてのユーザーに公開すべきではない機密データへのアクセスを制限するために作成されたビューなど、データのプライバシーまたは機密情報の保護のために指定されたビューには、Snowflake のセキュア ビューを使用します。

  情報メモ Snowflake セキュアビューは、標準ビューよりも実行速度が遅くなる場合があります。

### テーブル タイプの設定

これらの設定は、データ プラットフォームとして Snowflake を使用するプロジェクトでのみ使用できます。

* [Table type] (テーブルタイプ)

  使用するテーブル タイプを選択できます。

  * Snowflake テーブル

  * Snowflake 管理の Iceberg テーブル

    [Snowflake 外部ボリューム] で外部ボリュームのデフォルト名を設定する必要があります。

* 使用するクラウド ストレージ フォルダー

  ステージング エリアにデータをランディングするときに使用するフォルダーを選択できます。

  * 既定のフォルダー

    既定の名前 &lt;project name&gt;/&lt;data task name&gt; のフォルダーが作成されます。

  * ルート フォルダー

    ストレージのルート フォルダーにデータを保存します。

  * フォルダー

    使用するフォルダーの名前を指定します。

* Snowflake Open Catalog と同期

  これを有効にすると、Snowflake Open Catalog がクラウド ファイル ストレージ内のファイルを管理できるようになります。

## ベスト プラクティス

* ファクトと軸が追加されている場合、データ マートのデータセットのソースを変更することはできません。柔軟性を持たせたい場合は、ソースを変更するために使用でき、すべてのソース タスクのモデルを持つことができる、非マテリアライズド ビューを含む前段の変換タスクを追加できます。

## 制限と考慮事項

* 非マテリアライズドオプションが選択されている場合、変換データ タスクのデータ型を変更することはできません。

* 項目レベルの系統は、SQL 変換または変換フローで作成されたデータセットでは使用できません。

  情報メモこの制限は、Qlik Cloud Government のみに適用されます。[ターゲットに追加] を使用して、 [追加のみ] に設定された Qlik Open Lakehouse [ミラー] タスクから読み取りを行うことはサポートされていません。回避策として、SQL 変換または変換フローを使用してデータを読み取ることができます。

関連する学習コンテンツ：

* [Qlik Cloud Data Integration を使用したオンボーディングとデータの変換](https://help.qlik.com/lnk/Qlik_cloud_data_integration_onboard_transform)

## 詳細を見る

* [Qlik Cloud Data Integration を使用したオンボーディングとデータの変換](https://help.qlik.com/lnk/Qlik_cloud_data_integration_onboard_transform)