データ接続と統合パイプラインの構築インクリメンタルパイプライン概要

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

インクリメンタル(差分処理)パイプライン

インクリメンタルパイプラインは、時間の経過とともに大きく変化する入力データセットの処理によく使われます。変更されていないデータのすべての行やファイルに対する不要な計算を避けることで、インクリメンタルパイプラインはコンピューティングコストを最小限に抑えながら、エンドツーエンドの低遅延を実現します。

ただし、インクリメンタルパイプラインでは開発と保守がより複雑になるため、はじめる前にこの点を理解しておく必要があります。

背景

インクリメンタルパイプラインに関して、考慮すべき点を以下に示します。

  • インクリメンタルパイプラインを開発するには、Foundry でトランザクションを使ってデータセットが時間とともにどのように変化するかを十分に理解する必要があります。インクリメンタルパイプラインを効果的に作成し、継続的に管理するには、Data Connection の同期と変換ロジックでデータセットのトランザクションの概念を扱う必要があります。
  • Foundry でのトランザクションの仕組みを理解したら、入力データセットで予期しないトランザクションが発生しても対応できるようにパイプラインを設計する必要があります。インクリメンタルパイプラインは通常、APPEND トランザクションとして到着する変更データのみを処理しますが、入力データセットがときどき再計算され、それによって SNAPSHOT トランザクションが発生する場合にも、ロジックが対応できる必要があります。理想的には、変換ロジックを記述する際に十分なユニットテストを用意し、実際にこの状況が発生する前に動作を検証することが望まれます。
  • インクリメンタルパイプラインが長期にわたって高いパフォーマンスを維持できるようにするには、多数の APPEND トランザクションが適用され、データセットが大量の小さなファイルで構成されるようになるにつれて、データセットがどのように変化するかを理解する必要があります。これには、Spark が大量のファイルをどのように扱うか、また、それが Spark のパーティション分割にどのような影響を与えるかを理解することも含まれます。インクリメンタルパイプラインの高いパフォーマンスを維持する方法について詳しくは、こちらをご覧ください。

はじめに

インクリメンタルパイプラインをはじめるには、以下の推奨リソースを確認します。