データ接続と統合Pipeline Builder入力データセットバッチの計算モード

注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

バッチ入力データセットの計算モード

ユースケースに応じて、入力データセットをスナップショットまたはインクリメンタル(差分処理)で読み取ることを選択できます。

スナップショット計算

スナップショット計算では、新しく追加されたデータだけでなく、入力全体に対してデータ加工を実行します。ビルドのたびに、出力データセット全体が最新のパイプライン出力に置き換えられます。

スナップショット計算の例

次の場合に最適です。

  • 入力データセットが APPEND トランザクションで更新されない場合。
    • 入力が SNAPSHOT トランザクションを使用して書き込まれる場合、入力をインクリメンタルに読み取ることはできません。
  • 出力データセットを APPEND トランザクションで更新できない場合。
    • 例:実行のたびに出力データセット全体が変更される可能性があり、スナップショット出力が必要な場合。
  • 入力データセットが小さい場合。
    • この場合、スナップショット計算の効率はインクリメンタル計算と同程度です。

インクリメンタル計算

インクリメンタル計算では、前回のビルド以降に選択した入力に追加された新しいデータに対してのみ、データ加工を実行します。これにより計算リソースを削減できますが、重要な制限があります。

パイプラインがインクリメンタル計算で実行されるのは、選択した入力データセットが、既存のファイルを変更しない APPEND または UPDATE トランザクションによって変更される場合のみです。スナップショット入力をインクリメンタルとして指定しても効果はありません。

インクリメンタル計算の例

次の場合に最適です。

  • 入力データセットが APPEND トランザクションまたはデータを追加する UPDATE トランザクションによって変更される場合。
    • これは、新しいデータが追加されても以前の出力が変わらないことを示します。インクリメンタル計算により、ビルドごとに処理するデータ量が削減されます。
  • 以前の出力を参照する必要がない場合。
  • 入力データセットが大きく、新しいデータが頻繁に追加される場合。
    • インクリメンタルビルドにより、計算リソースと時間を節約し、パフォーマンスを向上できます。

インクリメンタル計算の制限

このセクションでは、ワークフローに適用される可能性がある制限の概要を説明します。適切に実装するために、インクリメンタル計算のセットアップ前に確認してください。

  • 結合: インクリメンタルデータセットを含む結合では、インクリメンタルデータセットを結合の左側に、スナップショットデータセットを右側に配置する必要があります。2つのインクリメンタルデータセット間の結合にも対応しています。
    • 結合におけるスナップショット入力: スナップショット入力が新しいトランザクションを受け取った場合、インクリメンタルデータセットも含む下流の結合は、引き続きインクリメンタルに実行されます。Pipeline Builder では、結合の右側にあるスナップショット入力の変更を使用して、パイプラインを強制的にリプレイすることはできません。
  • 和集合: 和集合のすべての入力は、同じ計算モードを使用する必要があります(すべてスナップショット、またはすべてインクリメンタル)。
  • 変換: 以前の出力を変更する可能性のあるデータ加工は、現在のトランザクションに限定されます。ウィンドウ関数、集計、ピボットは、以前の出力ではなく、現在のトランザクションのデータにのみ適用されます。
  • リプレイ: パイプラインのロジックが変更され、以前に処理した入力トランザクションに新しいロジックを適用したい場合は、デプロイ時のリプレイを選択できます。入力全体のリプレイにのみ対応しています。

インクリメンタル実行を強制する

パイプラインが常にインクリメンタルに実行されるようにするには、パイプラインの Build 設定でインクリメンタル実行を必須にする設定を有効にできます。有効にすると、インクリメンタルに実行するように設定されたジョブは、インクリメンタル実行ができない場合に自動的に失敗します。これにより、誤って入力がスナップショット化されたり、出力スキーマの変更によってスナップショットが強制されたりするなど、意図しないスナップショット処理を防ぐことができます。

詳細については、出力のインクリメンタル動作を強制するを参照してください。

詳細については、Pipeline Builder でのインクリメンタル計算の例を参照してください。