注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
Foundryで作成できるパイプラインには主に3つの種類があり、それぞれが以下の基準によって異なるトレードオフを提供します:
3つのパイプラインの種類は以下の通りです:
以下では、各種類のパイプライン、そのトレードオフ、そしてこの種類のパイプラインの作成を開始する方法について説明します。便宜上、上述のトレードオフに基づいてパイプラインの種類をまとめた要約表を以下に示します。
バッチパイプラインでは、上流のデータが変更されるたびに、パイプライン内のすべてのデータセットが完全に再計算されます。すべてが再計算されるため、パイプラインのエンドツーエンドのパフォーマンスは時間と共に非常に一貫しており、パイプラインのコードと維持の複雑さは最小限です。より多くのユーザーがバッチパイプラインに貢献できるように、バッチパイプラインの作成にはSQLを含む広範な言語とツールが利用可能です。
上述の基準に基づいてバッチパイプラインを検討すると:
ほとんどの場合、Foundryでパイプライン開発を始めるには、バッチパイプラインを作成し、パイプラインのユースケースが確認されるとともに、インクリメンタル計算をサポートするように拡張するべきです。多くの場合、データ規模が小さい(例えば、数千万行以下)場合、バッチパイプラインを無期限に使用し続けることができます。
パイプラインを将来的にインクリメンタルにする必要があると予想される場合、バッチパイプラインの開発にはPythonまたはJavaを使用することをおすすめします。これらの言語はインクリメンタル計算をサポートしています。
Pipeline Builderでバッチパイプラインを作成する方法を学び始めるか、他の言語のチュートリアルに従ってください:
インクリメンタルパイプラインでは、前回のビルド以降に変更があったデータの行またはファイルのみが計算されます。これは、時間の経過とともに大量のデータが変更されるイベントデータや他のデータセットを処理するのに適しています。全体的な計算量を減らすだけでなく、バッチパイプラインと比較してパイプラインのエンドツーエンドのレイテンシを大幅に短縮することができます。インクリメンタル計算にはPythonとJavaのAPIのみが利用可能です。
上述の基準に基づいてインクリメンタルパイプラインを検討すると:
インクリメンタルパイプラインについて詳しく知るためには、以下のリソースを参照してください:
ストリーミングパイプラインでは、コードが連続して実行され、Foundryにストリーミングされる新しいデータをすぐに処理します。これにより、レイテンシは最も低くなりますが、複雑さと計算コストは最も高くなります。一般的に、ストリーミングパイプラインについては、計算ジョブを管理するよりもマイクロサービスを管理する方が近いと考えると便利です - ストリーミングパイプラインを成功させるためには、アップタイム、レジリエンシ、ステートフル操作について非常に配慮する必要があります。
上述の基準に基づいてストリーミングパイプラインを検討すると:
ほとんどの場合、ユースケースが非常に低レイテンシの要件を持っている場合を除き、ストリーミングパイプラインを作成するのは避けるべきです。インクリメンタルパイプラインは、ほとんどのニーズを満たすために、分単位のエンドツーエンドのレイテンシまでパフォーマンスを向上させることができます。これは、ストリーミングパイプラインの追加の複雑さと計算コストを発生させることなく可能です。
ストリーミングパイプラインについて詳しく知るためには、以下のリソースを参照してください:
ストリーミングパイプラインの追加ドキュメンテーションは近日中に利用可能になります。ストリーミングパイプラインの作成に興味がある場合は、あなたのPalantir代表者に連絡してください。