# クラウド データ ウェアハウスのデータセット アーキテクチャ

Qlik Talend Data Integration では、分析データ パイプラインを作成、管理、制御して、消費者にデータを届けることができます。Qlik Talend Data Integration を使用してクラウド データ ウェアハウスでデータセットを生成すると、ストレージ テーブル、変更テーブル、ビューが生成されます。

直感的でガイド付きのユーザー インターフェイスは、データ パイプラインの構築、モデル化、および実行に役立ちます。手動コーディングなしで、オペレーショナル データ ストア (ODS) と履歴データ ストア (HDS) のスキーマを自動的に生成します。

Qlik データ ゲートウェイ - データ移動 と CDC を使用した Qlik Talend Data Integration データ パイプラインのアーキテクチャ

Qlik データ ゲートウェイ - データ移動 と CDC を使用した Qlik Talend Data Integration データ パイプラインのアーキテクチャ

Qlik データ ゲートウェイ - データ移動Qlik データ ゲートウェイ - データ移動 と CDC を使用した Qlik Talend Data IntegrationQlik Talend Data Integration データ パイプラインのアーキテクチャ ![](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Resources/Images/dr_DIArchitecture_v1.svg)

* ランディング

  Qlik Talend Data Integration のランディング タスクは、データ ソースからランディング ゾーンへのデータの継続的なランディングを制御します。図の例では、Qlik データ ゲートウェイ - データ移動 を使用して CDC を使用したデータ ソースにアクセスし、データを最新の状態に保つ方法を説明しています。Qlik Cloud ソース接続を使用して、定期的にリロードするようにスケジュールできるフル ロードを実行することもできます。

  Data Movement gateway をいつ使用する必要があるかについては、「[どのようなときに Data Movement gateway が必要ですか？](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/replication-gateway.htm#top)」を参照してください

  情報メモランディング ゾーンのテーブルは、Qlik Talend Data Integration ストレージ データ タスクによる内部使用のために生成されます。他のダウンストリーム プロセスではランディング テーブルを使用しないでください。

* ストレージ

  ストレージ タスクは、データがいつストレージ テーブルに適用されるかを制御し、テーブルと外部ビューを作成および管理します。

* 外部ビュー

  データを消費する場合のベスト プラクティスは、ビューを使用することです。ビューにはデータの同時実行性の向上など、テーブルに比べていくつかの利点があります。

## ライブ ビューの使用

ライブ ビューを使用して、現在のデータ (ODS) と履歴データ (HDS) の両方にアクセスできます。ライブ ビューには、まだ適用されていない変更テーブルのデータが含まれます。これにより、変更されたデータを頻繁に適用しなくても、待機時間の短いデータを表示できます。マージを遅らせる機能により、ターゲット プラットフォームでのコストと処理要件を削減できます。

ライブ ビューのもう 1 つの利点は、コンピューティング層を常に実行する必要がないことです。

* ランディングは、高速実行による INSERT 操作を実行するだけであり、小規模で明示的なウェアハウスを指すことができます。

* たとえば、1 日に 1 回実行されるストレージ プロセスは、処理のために大規模なコンピューティング レイヤーをウェイクアップできます。

* 1 日を通して変更を適用する必要がなくなるため、待機時間を改善できます。挿入された新しいレコードが変更テーブルで使用できるようになると、ライブ ビューですぐに使用できるようになります。

[ビデオクリップを見る](https://play.vidyard.com/USr4BCxeuYsVV1hE5JmKWb)

## スキーマ

アーティファクトは、内部スキーマとデータ タスク スキーマで生成されます。

* 内部スキーマには、物理データ テーブルが含まれています。

* データ タスク スキーマには、データを使用するために使用できるビューが含まれています。

  スキーマが複数のデータ タスクに関連付けられている場合、各データ タスクはテーブルとビューに一意のプレフィックスを使用する必要があります。データタスク設定でプレフィックスを設定できます。

内部スキーマのみ、名前の競合がないかチェックされます。他のスキーマの場合は、テーブル名に名前の競合がないことを確認する必要があります。ベストプラクティスは、内部スキーマをデータ タスク スキーマと同じ名前にし、\_internal を追加することです。こうすることで、すべてのスキーマとプレフィックスの組み合わせが効果的に一意になります。

Qlik Talend Data Integration によって作成されたスキーマは、タスクまたはプロジェクトを削除しても削除されません。

情報メモすべてのテーブルとビューは Qlik Talend Data Integration によって管理されます。他のツールを使用してデータを変更しないでください。

## テーブル

次のテーブルは内部スキーマで作成されます。

情報メモ内部スキーマ内のテーブルは予告なく変更される場合があります。可能な場合は、主にビューを使用してデータを消費する必要があります。

* 現在のテーブル (ODS)

  このテーブルには、最新の適用間隔中の変更で更新されたデータ ソースのレプリカが含まれています。

* 先行テーブル (HDS)

  このテーブルには、タイプ 2 の履歴データが含まれています。データ タスク設定で履歴が有効になっている場合にのみ生成されます。

  ソース テーブル レコードが更新されると、そのたびに新しいレコードが前のテーブルに追加されます。履歴レコードは、以前の現在のレコードのコピーであり、更新された内容と有効な時期も含まれます。

  履歴ビューまたは履歴ライブ ビューを使用して、履歴データを表示します。詳しくは「[履歴ビュー](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Storage/dataset-tables.htm#History)」と「[履歴ライブ ビュー](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Storage/dataset-tables.htm#History2)」を参照してください。

* 変更テーブル

  このテーブルには、タスク開始時点から対応するソース テーブルに対して行われたすべての変更が格納され、削除されることはありません。これは、ランディング モードが [フル ロードおよび CDC] の場合にのみ生成されます。

  ヒント メモシステムで大量の変更が処理される場合は、変更テーブルから適用済みの変更を定期的に削除することを検討してください。そうすることでリソースの消費が削減され、パフォーマンスが向上します。

情報メモ

以前に削除されたレコードを再度挿入する場合、レコードの主キー値が同じであれば hdr\_\_operation の値は U - updated となります。

hdr\_\_ で始まる列名は、Qlik Talend Data Integrationの ヘッダー列で使用するために予約されています。詳細については、「[あいまいな列名](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Deploying/Troubleshooting-data-assets.htm#Ambiguou)」を参照してください。

### 現在のテーブル

名前: &lt;INTERNAL\_SCHEMA&gt;.[&lt;PREFIX&gt;]&lt;TABLE\_NAME&gt;\_current

次のヘッダー列がテーブル構造に追加されます。

現在のテーブル ヘッダー項目

| フィールド | タイプ | 説明 |
| --- | --- | --- |
| hdr\_\_key\_hash | varbinary(20) | すべてのレコードのプライマリ キーのハッシュ。ハッシュ形式は SHA1 です。列はバックスペース文字で区切られます。<br><br>この列は、データ マート データ タスクでは生成されません。 |
| hdr\_\_key\_id | int64 | レコードごとに増加するシーケンス。<br><br>この列は、データ マート データ タスクでのみ生成されます。 |
| hdr\_\_from\_timestamp | タイムスタンプ | UTC のタイムスタンプ<br><br><ul> <li> <p>フル ロードから取得したデータの場合、フル ロード開始時間になります。</p> </li> <li> <p>変更テーブルを介して行われる変更の場合、それはレコードのタイムスタンプ項目になります。</p> </li> </ul> |
| hdr\_\_operation | string(1) | このレコードの最新の操作。<br><br><ul> <li> <p>D - 変更テーブルから削除されました。</p> </li> <li> <p>U - 変更テーブルから更新済み。</p> </li> <li> <p>I - 変更テーブルから挿入済み</p> </li> <li> <p>L - フル ロード タスクによって挿入済み。</p> </li> <li> <p>d - 比較適用から削除されました。</p> </li> <li> <p>u - 比較適用から更新されました。</p> </li> <li> <p>i - 比較適用から挿入されました。</p> </li> </ul> |
| hdr\_\_inserted\_timestamp | タイムスタンプ | キーが初めて追加されたときの UTC 日付と時刻。フル ロード使用時は、フル ロードの開始時刻。 |
| hdr\_\_modified\_timestamp | タイムスタンプ | 最後の更新が適用されたときの UTC 日付と時刻。 |

### 先行テーブル

次のヘッダー項目が追加されます。

名前: &lt;INTERNAL\_SCHEMA&gt;.[&lt;PREFIX&gt;]&lt;TABLE\_NAME&gt;\_prior

先行テーブル ヘッダー項目

| 項目 | タイプ | 説明 |
| --- | --- | --- |
| hdr\_\_key\_hash | varbinary(20) | すべてのレコードのプライマリ キーのハッシュ。<br><br>この列は、データ マート データ タスクでは生成されません。 |
| hdr\_\_key\_id | int64 | レコードごとに増加するシーケンス。<br><br>この列は、データ マート データ タスクでのみ生成されます。 |
| hdr\_\_from\_timestamp | タイムスタンプ | UTC のタイムスタンプ |
| hdr\_\_to\_timestamp | タイムスタンプ | UTC のタイムスタンプ |
| hdr\_\_operation | string(1) | このレコードの最新の操作。<br><br><ul> <li> <p>D - 変更テーブルから削除されました。</p> </li> <li> <p>U - 変更テーブルから更新済み。</p> </li> <li> <p>I - 変更テーブルから挿入済み</p> </li> <li> <p>L - 初期ロードによって挿入されました。</p> </li> <li> <p>d - 比較適用から削除されました。</p> </li> <li> <p>u - 比較適用から更新されました。</p> </li> <li> <p>i - 比較適用から挿入されました。</p> </li> </ul> |
| hdr\_\_was\_current\_from\_timestamp | timestamp | 最初のレコードの UTC の日付と時刻が最新でした。 |
| hdr\_\_was\_current\_to\_timestamp | timestamp | 最後のレコードの UTC の日付と時刻が最新でした。 |

### テーブルを変更

名前: &lt;INTERNAL\_SCHEMA&gt;.[&lt;PREFIX&gt;]&lt;TABLE\_NAME&gt;\_ct

次のヘッダー項目がテーブル構造に追加されます。

変更テーブル ヘッダー項目

| フィールド | タイプ | 説明 |
| --- | --- | --- |
| hdr\_\_change\_identifier | varchar(50) | 変更識別子は、次の 2 つの部分からなる文字列です。<br><br><ul> <li> <p>バッチ実行開始の日付と時刻、1970 年 1 月 1 日からのミリ秒数 (10 桁の文字列) </p> </li> <li> <p>レプリケーション ゲートウェイからの変更シーケンス (35 文字)</p> </li> </ul> |
| hdr\_\_operation | varchar(1) | このレコードの最新の操作。<br><br><ul> <li> <p>D - 変更テーブルから削除されました。</p> </li> <li> <p>U - 変更テーブルから更新済み。</p> </li> <li> <p>I - 変更テーブルから挿入済み</p> </li> <li> <p>d - 比較適用から削除されました。</p> </li> <li> <p>u - 比較適用から更新されました。</p> </li> <li> <p>i - 比較適用から挿入されました。</p> </li> </ul> |
| hdr\_\_timestamp | タイムスタンプ | UTC のタイムスタンプ |
| hdr\_\_key\_hash | binary(20) | すべてのレコードのプライマリ キーのハッシュ。<br><br>この列は、データ マート データ タスクでは生成されません。 |
| hdr\_\_key\_id | int64 | レコードごとに増加するシーケンス。<br><br>この列は、データ マート データ タスクでのみ生成されます。 |

## ビュー

次のビューは、データ タスク ターゲット スキーマで作成されます。どのビューが作成されるかは、ライブ ビューと履歴を有効にしているかどうか、および変更処理を使用しているかどうかによって異なります。

* 標準ビュー

* ライブ ビュー

* 変更ビュー

* 履歴ビュー

* 履歴ライブ ビュー

情報メモhdr\_\_ で始まるすべてのヘッダー列名は予約されています。ストレージ タスクでビューを使用する場合、ストレージ タスクは同じヘッダー列を持つビューを生成するため、名前の競合を避けるために、ストレージ タスクで使用されたヘッダー列の名前を変更する必要があります。

### 標準ビュー

名前付け: &lt;EXTERNAL\_SCHEMA&gt;.[&lt;PREFIX&gt;]&lt;TABLE\_NAME&gt;

テーブル構造にヘッダー列は追加されません。

### ライブ ビュー

ライブ ビューには、テーブルを変更テーブルからの変更とマージする選択した各ソース テーブルのビューが表示されます。これにより、次の適用サイクルを待たずに、クエリにデータのライブ ビューが提供されます。変更テーブル ビューからマージされた変更は、テーブル間でトランザクションの一貫性がありません。

ライブ ビューは、データ タスクの設定でライブ ビューを有効にした場合にのみ作成されます。

名前付け: &lt;EXTERNAL\_SCHEMA&gt;.[&lt;PREFIX&gt;]&lt;TABLE\_NAME&gt;&lt; Suffix for live views&gt;

テーブル ヘッダー項目

| フィールド | タイプ | 説明 |
| --- | --- | --- |
| hdr\_\_key\_hash | varbinary(20) | すべてのレコードのプライマリ キーのハッシュ。ハッシュ形式は SHA1 です。列はバックスペース文字で区切られます。<br><br>この列は、データ マート データ タスクでは生成されません。 |
| hdr\_\_key\_id | int64 | レコードごとに増加するシーケンス。<br><br>この列は、データ マート データ タスクでのみ生成されます。 |
| hdr\_\_from\_timestamp | タイムスタンプ | UTC のタイムスタンプ<br><br><ul> <li> <p>フル ロードから取得したデータの場合、フル ロード開始時間になります。</p> </li> <li> <p>変更テーブルを介して行われる変更の場合、それはレコードのタイムスタンプ項目になります。</p> </li> </ul> |
| hdr\_\_operation | string(1) | このレコードの最新の操作。<br><br><ul> <li> <p>D - 変更テーブルから削除されました。</p> </li> <li> <p>U - 変更テーブルから更新済み。</p> </li> <li> <p>I - 変更テーブルから挿入済み</p> </li> <li> <p>L - フル ロード タスクによって挿入済み。</p> </li> <li> <p>d - 比較適用から削除されました。</p> </li> <li> <p>u - 比較適用から更新されました。</p> </li> <li> <p>i - 比較適用から挿入されました。</p> </li> </ul> |
| hdr\_\_inserted\_timestamp | タイムスタンプ | キーが初めて追加されたときの UTC 日付と時刻。フル ロード使用時は、フル ロードの開始時刻。 |
| hdr\_\_modified\_timestamp | タイムスタンプ | 最後の更新が適用されたときの UTC 日付と時刻。 |
| hdr\_\_store | varchar(10) | これは、レコードが存在する場所を示します。<br><br><ul> <li> <p><span>CURRENT</span> - レコードが現在の物理テーブルに存在する場合。</p> </li> <li> <p><span>CHANGES</span> - レコードが変更テーブルに存在する場合。</p> </li> </ul> |

### 変更ビュー

これは、選択した各ソース テーブルのランディング スキーマの変更テーブルのビューです。

名前付け: &lt;EXTERNAL\_SCHEMA&gt;.[&lt;PREFIX&gt;]&lt;TABLE\_NAME&gt;\_changes

次のヘッダー項目がテーブル構造に追加されます。

変更ビュー ヘッダー項目

| フィールド | タイプ | 説明 |
| --- | --- | --- |
| hdr\_\_change\_identifier | string(50) | 変更識別子は、次の 2 つの部分からなる文字列です。<br><br><ul> <li> <p>バッチ実行開始の日付と時刻、1970 年 1 月 1 日からのミリ秒数 (10 桁の文字列) </p> </li> <li> <p>レプリケーション ゲートウェイからの変更シーケンス (35 文字)</p> </li> </ul> |
| hdr\_\_from\_timestamp | タイムスタンプ | UTC のタイムスタンプ<br><br><ul> <li> <p>フル ロードから取得したデータの場合、フル ロード開始時間になります。</p> </li> <li> <p>変更テーブルを介して行われる変更の場合、それはレコードのタイムスタンプ項目になります。</p> </li> </ul> |
| hdr\_\_to\_timestamp | タイムスタンプ | UTC のタイムスタンプ<br><br><ul> <li> <p>フル ロードから取得したデータの場合、フル ロード開始時間になります。</p> </li> <li> <p>変更テーブルを介して行われる変更の場合、それはレコードのタイムスタンプ項目になります。</p> </li> </ul> |
| hdr\_\_operation | string(1) | このレコードの最新の操作。<br><br><ul> <li> <p>D - 変更テーブルから削除されました。</p> </li> <li> <p>U - 変更テーブルから更新済み。</p> </li> <li> <p>I - 変更テーブルから挿入済み</p> </li> <li> <p>L - フル ロード タスクによって挿入済み。</p> </li> <li> <p>d - 比較適用から削除されました。</p> </li> <li> <p>u - 比較適用から更新されました。</p> </li> <li> <p>i - 比較適用から挿入されました。</p> </li> </ul> |
| hdr\_\_timestamp | タイムスタンプ | UTC のタイムスタンプ |
| hdr\_\_key\_hash | binary(20) | すべてのレコードのプライマリ キーのハッシュ。<br><br>この列は、データ マート データ タスクでは生成されません。 |
| hdr\_\_key\_id | int64 | レコードごとに増加するシーケンス。<br><br>この列は、データ マート データ タスクでのみ生成されます。 |

### 履歴ビュー

データ タスク設定で履歴が有効になっている場合、選択した各ソース テーブルのデータ アセット スキーマに履歴ビューが生成されます。次のヘッダー項目が追加されます。

名前付け: &lt;EXTERNAL\_SCHEMA&gt;.[&lt;PREFIX&gt;]&lt;TABLE\_NAME&gt;&lt; Suffix for history views&gt;

履歴ビュー ヘッダー項目

| フィールド | タイプ | 説明 |
| --- | --- | --- |
| hdr\_\_key\_hash | binary(20) | すべてのレコードのプライマリ キーのハッシュ。<br><br>この列は、データ マート データ タスクでは生成されません。 |
| hdr\_\_key\_id | int64 | レコードごとに増加するシーケンス。<br><br>この列は、データ マート データ タスクでのみ生成されます。 |
| hdr\_\_from\_timestamp | タイムスタンプ | UTC のタイムスタンプ<br><br><ul> <li> <p>フル ロードから取得したデータの場合、フル ロード開始時間になります。</p> </li> <li> <p>変更テーブルを介して行われる変更の場合、それはレコードのタイムスタンプ項目になります。</p> </li> </ul> |
| hdr\_\_to\_timestamp | タイムスタンプ | UTC のタイムスタンプ<br><br><ul> <li> <p>フル ロードから取得したデータの場合、フル ロード開始時間になります。</p> </li> <li> <p>変更テーブルを介して行われる変更の場合、それはレコードのタイムスタンプ項目になります。</p> </li> </ul> |
| hdr\_\_was\_current\_from\_timestamp | timestamp | 最初のレコードの UTC の日付と時刻が最新でした。 |
| hdr\_\_was\_current\_to\_timestamp | timestamp | 最後のレコードの UTC の日付と時刻が最新でした。 |
| hdr\_\_store | varchar(7) | これは、レコードが存在する場所を示します。<br><br><ul> <li> <p><span>CURRENT</span> - レコードが現在の物理テーブルに存在する場合。</p> </li> <li> <p><span>PRIORS</span> - 履歴データを含む事前テーブルにレコードが存在する場合。</p> </li> </ul> |
| hdr\_\_operation | string(1) | このレコードの最新の操作。<br><br><ul> <li> <p>D - 変更テーブルから削除されました。</p> </li> <li> <p>U - 変更テーブルから更新済み。</p> </li> <li> <p>I - 変更テーブルから挿入済み</p> </li> <li> <p>L - フル ロード タスクによって挿入済み。</p> </li> <li> <p>d - 比較適用から削除されました。</p> </li> <li> <p>u - 比較適用から更新されました。</p> </li> <li> <p>i - 比較適用から挿入されました。</p> </li> </ul> |
| hdr\_\_deleted | bit | hdr\_\_operation が D または d であるかどうかに基づいて、レコードが論理的に削除されているかどうかを示します。 |

### 履歴ライブ ビュー

履歴ライブ ビューは、変更テーブルからの変更とマージされた選択されたソース テーブルごとに、選択されたソース テーブルごとにデータ アセット スキーマで生成されます。次のヘッダー項目が追加されます。

名前付け: &lt;EXTERNAL\_SCHEMA&gt;.[&lt;PREFIX&gt;]&lt;TABLE\_NAME&gt;&lt; Suffix for live history views&gt;

ライブ履歴ビュー ヘッダー項目

| フィールド | タイプ | 説明 |
| --- | --- | --- |
| hdr\_\_key\_hash | binary(20) | すべてのレコードのプライマリ キーのハッシュ。<br><br>この列は、データ マート データ タスクでは生成されません。 |
| hdr\_\_key\_id | int64 | レコードごとに増加するシーケンス。<br><br>この列は、データ マート データ タスクでのみ生成されます。 |
| hdr\_\_store | varchar(10) | これは、レコードが存在する場所を示します。<br><br><ul> <li> <p><span>CURRENT</span> - レコードが現在の物理テーブルに存在する場合。</p> </li> <li> <p><span>PRIORS</span> - 履歴データを含む事前テーブルにレコードが存在する場合。</p> </li> <li> <p><span>CHANGES</span> - レコードが変更テーブルに存在する場合。</p> </li> </ul> |
| hdr\_\_operation | string(1) | このレコードの最新の操作。<br><br><ul> <li> <p>D - 変更テーブルから削除されました。</p> </li> <li> <p>U - 変更テーブルから更新済み。</p> </li> <li> <p>I - 変更テーブルから挿入済み</p> </li> <li> <p>L - フル ロード タスクによって挿入済み。</p> </li> <li> <p>d - 比較適用から削除されました。</p> </li> <li> <p>u - 比較適用から更新されました。</p> </li> <li> <p>i - 比較適用から挿入されました。</p> </li> </ul> |
| hdr\_\_deleted | bit | hdr\_\_operation が D または d であるかどうかに基づいて、レコードが論理的に削除されているかどうかを示します。 |