増分
ソース・データが時間の経過とともに変化するため、データ・ウェアハウスは継続的に同期している必要があります。
UPDATEABLEおよびVERSIONED表タイプには、データをリフレッシュするためのオプションがあります。
UPDATEABLEまたはVERSIONED表タイプのデータ・アプリケーションに対して最初のETLジョブを実行すると、ソース・システムまたはステージング領域のデータとターゲット・データ・ウェアハウスのデータは同じになります。
- 完全リフレッシュ: ソース・システムからデータ・ウェアハウスにすべてのデータをコピーします。
- 増分リフレッシュ: ソース・システムからデータ・ウェアハウスへの最後のロード以降に新しく追加または変更されたデータのみを処理します。 増分リフレッシュは、システム・リソースへの影響を最小限に抑えながら、より高速で効率的な更新を可能にするため、推奨されます。
- VERSIONED: ソース表からすべてのデータが抽出されます。
ミラー・コピーのデータは切り捨てられ、ソース・システムから再度ロードされます。 削除されたレコードはデータ・ウェアハウスに保持されません。
例:IMPORT VERSIONED SOURCE SALESSALESからすべてのデータが抽出されます。 - 更新可能: 変更されたレコードのみがソースから抽出され、変更されたデータのみが抽出されたデータのミラー・コピーで更新されます。
削除されたレコードはデータ・ウェアハウスに保持されます。
例:IMPORT UPDATEABLE SOURCE SALES WITH LUD[LAST_UPDATE_DATE]SALESから変更されたレコードのみが抽出されます。ノート:
削除されたレコードは、ソースになくなり、抽出されたデータに含めることができないため、追加処理が必要です。
- VERSIONED: ソース表からすべてのデータが抽出されます。
削除されたレコードはデータ・ウェアハウスに保持されません。
例:
IMPORT VERSIONED SOURCE SALES DEFINE VERSIONED DATASET DW_SALES_FACT FROM SALES ENDSALESデータセットは、一部のレコードに更新がない場合でも完全にリフレッシュされます。

図dasrg-target-versioned.pngの説明
- 更新可能増分リフレッシュディレクティブ(IRD)は、挿入または更新選択の変更をドライブするデータセットを識別します。 変更駆動データセットとしてソースを割り当てる場合:
- ETLプロセスでは、駆動ソースのすべての変更レコードと他のソースのすべての変更レコードが考慮されます。
- 非ドライビング・ソースに、ドライビング・ソースで一致する変更がない変更がある場合、増分リフレッシュ中にこれらの変更は無視されます。
2つ以上のソースを使用するデータセットのIRDを指定する必要があります。
データ拡張スクリプト・アプリケーションでターゲット・データセットを定義する場合は、その増分データ・リフレッシュ動作を決定する必要があります。
表タイプがUPDATEABLEの場合、ターゲット・データセット内のREFRESH ON CHANGESの増分リフレッシュ・ディレクティブ(IRD)を使用して、変更を駆動する入力表を指定する必要があります。IMPORT UPDATEABLE SOURCE SALES DEFINE UPDATEABLE DATASET DW_SALES_FACT FROM SALES ENDSALES内の新規および更新されたレコードは、ターゲット・データセットDW_SALES_FACTで更新されます。DEFINE DATASETブロック内のこのディレクティブは、ターゲット・データセットの変更検出および更新の複雑さを処理します。 変更を検出し、ターゲット・データセットを更新するための複雑なロジックを処理するためにボイラープレート・コードを記述する必要はありません。
ディレクティブは、増分リフレッシュ動作の予測可能性も提供します。
- UPDATEABLEデータセットの作成に1つの入力表のみを使用すると、<incremental-refresh-directive>および変更駆動入力表が推測されます。
次の図の2行のコードは、データセットの作成方法と増分リフレッシュ動作の定義方法を示しています。
この例では、Salesから変更されたレコードのみが取り込まれます。
- UPDATEABLEデータセットの作成に複数の入力表を使用する場合は、<incremental-refresh-directive>内の変更駆動表である入力表を明示的に指定する必要があります。
駆動表から変更されたレコードによってデルタが識別され、非駆動表の対応する一致レコードのみが考慮されます。 非駆動表自体の変更は無視されます。
この例では、Salesは変更駆動表です。 Salesから変更された(△)レコードのみがProductsと結合されます。
-
この例では、SalesとProductsは両方とも変更駆動表です。 両方のテーブルから変更された(△)レコードが取り込まれます。
-
この例では、変更駆動表SalesとProductsの両方から変更された(△)レコードが、変更されていない駆動表Promotionsと結合されます。





