機械翻訳について

削除

後続のロード中に削除を適用して、ソースからの削除(追跡または監査)を反映するか、明示的に指示されたとおりにクリーンアップします。

削除伝播には次のものが含まれます。
  • 暗黙的な伝播: 削除は系統を経由してダウンストリーム・データセットに流れます。
  • 明示的防止: 削除は伝播から制限されます。

アップストリーム削除の追跡

TRACKDELETES: 現在のデータセットと元のアップストリーム・コピーを比較して、削除を自動的に検出します。

構文:

IMPORT文を参照してください。

次の場所で削除を追跡できます。
  • インポートされたソース自体(デフォルトの動作)。
  • 名前付きトラックセット。一意の名前で個別に追跡されます。
例:
IMPORT SOURCE SALES WITH TRACKDELETES
IMPORT SOURCE SALES WITH TRACKDELETES IN [SALESREMOVALS] AS SALES_DEL1 // Named Track Set

ノート:

アップストリーム・システムで削除の追跡または監査がすでに行われている場合は、その監査を活用してパフォーマンスを向上させ、比較および追跡のコストを削減できます。

ハード削除

伝播または明示的なアプリケーションを使用して、データ・ウェアハウス・データセットからレコードを完全に削除できます。

削除を適用できます。
  • インポートされたソースがトラッキングされている場合(デフォルトの動作): TRACKDELETES
    例: SALES_Fで自動的に伝播します。
    IMPORT SOURCE SALES WITH TRACKDELETES
    DEFINE DATASET SALES_F FROM SALES END
    
  • 名前付き追跡セットの使用
    インポートされたソースとデータセットの両方にこれを適用するには、次を使用します。
    • 次に削除: IMPORT SOURCE文でインポートされたソースに適用できる明示的ディレクティブ。

      IMPORT文を参照してください。

      例:
      IMPORT SOURCE DEL_SALES //delete records
      //Clean up SALES with DEL_SALES
      IMPORT SOURCE SALES THEN DELETE [DEL_SALES [SALES_ID] MATCHING [SALES_ID]] 
      
      // Delete for keys in DEL_SALES are automatically propagated to NET_SALES_F
      DEFINE DATASET NET_SALES_F FROM SALES END 
    • ソースの削除: データセット定義のデータセットに適用できる明示的な削除。

      削除セット(サブストランド)は、削除名前付きトラック・セットにすることも、任意のデータセットにすることもできます。

      構文: 汎用データセット定義を参照してください。

      ノート:

      DELETESOURCEは、そのデータセットのすべての伝播をオーバーライドします。

      例: TRACKDELETESからのサブトレード:

      IMPORT SOURCE SALES WITH TRACKDELETES IN [REMOVALS]
      DEFINE DATASET SALES_F
         ROWSOURCE SALES;
         THIS = SALES;
         DELETESOURCE REMOVALS [SALES_ID] MATCHING [SALES_ID]
      END
      

      例:データセットでDELETESOURCEを使用して、インポートされたソースからサブトレードします。

      IMPORT SOURCE SALES_REMOVALS //Audited from upstream, no tracking
      IMPORT SOURCE SALES
      DEFINE DATASET SALES_F
         ROWSOURCE SALES;
         THIS = SALES;
         DELETESOURCE SALES_REMOVALS [SALES_ID] MATCHING [SALES_ID];
      END
      

ソフト削除

データ拡張スクリプトは、物理的に削除されるのではなく、削除レコードに削除されたフラグを付けます。 特に指定しない場合、フラグ名はISDELETEDにデフォルト設定されます。

ノート:

  • 必要に応じて、問合せおよびダウンストリーム・データセットからソフト削除されたレコードをフィルタで除外する必要があります。
  • ソフト削除はデータを保持しますが、システム効率を維持するために効率的なクエリーフィルタリングが必要です。

構文: IMPORT文を参照してください。

ハード削除と同様に、ソフト削除ではTRACKDELETETHEN DELETEおよびDELETESOURCEが使用されます。

  • TRACKDELETEおよびソフト削除

    次に、インポート時のソフト削除の例を示します。

    例: TRACKDELETESでフラグ名が指定されていない(デフォルト)。
    IMPORT SOURCE CUSTOMERS DELETETYPE[ SOFT ] WITH PRIMARYKEY[CUST_ID] TRACKDELETES
    DEFINE UPDATEABLE DATASET CUSTOMERS_SD_D FROM CUSTOMERS END
    
    例: 指定されたフラグ名
    IMPORT SOURCE SALES DELETETYPE[ SOFT[ISTRANDELETED] ] TRACKDELETES[ IN [THDELETE] ] 
    DEFINE UPDATEABLE DATASET CUSTOMERS_SD_D FROM CUSTOMERS END
    
  • THEN DELETEおよびソフト削除
    例: インポート時に、他のインポート済データを使用してソフト削除します。
    IMPORT SOURCE SALESDEL
    IMPORT SOURCE SALES DELETETYPE[ SOFT ] THEN DELETE [ SALESDEL [SALES_ID] MATCHING [SALES_ID] ]
    DEFINE DATASET SALES_SD_F FROM SALES END
    
  • DELETESOURCEおよびSoft Delete

    構文: 汎用データセット定義を参照してください。

    例: データセットに対するソフト削除。
    IMPORT SOURCE SALESDEL
    IMPORT SOURCE SALES
    DEFINE UPDATEABLE DATASET SALES_F
        ROWSOURCE SALES;
        THIS = SALES;
        DELETETYPE[ SOFT[SALESDELETED] ];
        DELETESOURCE SALESDEL[SALE_ID] MATCHING [SALE_ID];
    END
    

伝播制御

伝播制御は、次のもので構成されます。

  • 削除伝播の無効化

    DELETEPROPAGATIONを無効にすると、削除がカスケードされてダウンストリーム・データセットにならないようにできます。

    • デフォルトの動作: デフォルトでは、データ拡張スクリプトは、伝播を定義しないかぎり、ダウンストリーム・データセットに削除を適用します。
    • 伝播の無効化: データ拡張スクリプトは削除を自動的に伝播しませんが、DELETESOURCEを使用する明示的な削除は適用されます。
    構文:
    disable_delete_propagation ::= DISABLE DELETEPROPAGATION FOR { ALL DATASETS | DATASETS '[' table_name ']' }
    
    例: すべてのデータセットの削除伝播を無効にします。
    DISABLE DELETEPROPAGATION FOR ALL DATASETS
    
    例: 製品ディメンション・データセットの削除伝播を無効にします。
    DISABLE DELETEPROPAGATION FOR DATASETS[PRODUCTS_D]
    
  • 削除時にリフレッシュ

    削除がデータセットに与える影響を制御できます。

    構文: 汎用データセット定義を参照してください。

    例: 次の例では、増分実行の場合、Sales削除のみが考慮されます。
    IMPORT SOURCE SALES WITH TRACKDELETES
    IMPORT SOURCE PRODUCTS
    DEFINE DATASET SALES_F
       ROWSOURCE PRODUCTS  INNER JOIN SALES  ON SALES.PROD_ID = PRODUCTS.PROD_ID;
       THIS = SALES;
       REFRESH ON DELETES IN[SALES];
       REFRESH ON UPSERTS IN[PRODUCTS]
    END
    
  • 安定期間

    前回のロード以降の定義済時間枠(またはスライド・ウィンドウ)内のデータ変更の処理を制限できます。 この制限は、アップストリーム・データのレコードの初期抽出日(IED)または最終更新日(LUD)のいずれかに適用できます。

    構文: IMPORT文を参照してください。

    最終更新日(LUD)に基づく変更トラッキングの動作を次に示します。
    • ソースのLUDを特定していない場合、抽出時に過去n日間に作成されたレコードに対する変更のみが追跡されます。
    • ソースに定義されているLUDが識別された場合、前回の抽出以降の変更と、抽出時に過去n日に作成されたレコードの変更の両方が追跡されます。
    次の例では、初期抽出日(IED)を指定していますが、最終更新日(LUD)を指定していません。
    IMPORT SOURCE CUSTOMERS WITH IED [CUST_EFF_FROM] STABILITYPERIOD[30, CUST_EFF_FROM] TRACKDELETES
    DEFINE DATASET CUSTOMERS_D
       ROWSOURCE CUSTOMERS;
       THIS = CUSTOMERS;
    END
    
    このコード例では、過去30日間のSALESの変更(削除を含む)のみが、各ロードの伝播によって処理されるように指定しています。

    ノート:

    IMPORT定義で最終更新日(LUD)列を明示的に定義しない場合でも、ソース・メタデータに増分キーが定義されている場合、データ拡張スクリプトでは最終更新日(LUD)として自動的にそのキーが使用されます。 この動作をオーバーライドするには、LUD[NULL]を使用します。
    次の例では、最終更新日(LUD)を無視します。
    IMPORT SOURCE CUSTOMERS WITH IED [CUST_EFF_FROM] LUD[null] STABILITYPERIOD[30, CUST_EFF_FROM] TRACKDELETES
    

最適な削除戦略の選択

次の表は、削除シナリオと、対応する推奨される削除方法を示しています。
シナリオ 推奨される削除方法
データを完全に削除する必要があります。 ハード削除(THEN DELETEDELETESOURCETRACKDELETES)
履歴トラッキングのために削除済レコードを保持する必要があります。 ソフト削除(ISDELETEDフラグ)
ソース・システムでは削除は追跡されません。 TRACKDELETES
削除は、名前付きデータセットによって明示的に指定する必要があります。 DELETESOURCE
ダウンストリーム・データセットでのカスケード削除を回避します。 DISABLE DELETEPROPAGATION
インポートされたソースに必要な削除を適用してパフォーマンスを最適化します THEN DELETE