ドキュメントの検索
karat

+

K

APIリファレンス ↗

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

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

ユーザーのユースケースに応じて、入力データセットをスナップショットまたはインクリメンタルとして読み込むことができます。

スナップショット計算

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

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

最も適している場合:

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

インクリメンタル計算

インクリメンタル計算は、最後のビルド以降に選択した入力に追加された新しいデータだけに対して変換を行います。これにより計算リソースを節約することができますが、重要な制限事項があります。

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

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

最も適している場合:

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

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

このセクションでは、ユーザーのワークフローに適用可能な制限事項を概説します。インクリメンタル計算のセットアップ前に確認し、適切な実装を確保してください。

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

詳しくは、Pipeline Builder でのインクリメンタル計算の例をご覧ください。