注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
ストリーミング用 Pipeline Builder では、ストリームをバッチデータセットやほかのストリームと結合できます。ストリーミングは低遅延を特徴とするため、結合の実装方法は標準のバッチパイプラインとは異なります。このページでは、結合の仕組みと、パイプラインで結合を効果的に活用する方法を説明します。
Foundry では、バッチ用 Pipeline Builder パイプラインで2個のバッチデータセットを結合する場合と同様の方法で、低遅延のストリームをバッチデータセットと組み合わせることができます。
Pipeline Builder でストリームをバッチデータセットと結合するには、次の手順を実行します。
ストリームとバッチデータセットを Pipeline Builder のグラフに追加します。
バッチデータセットの下にあるドロップダウンメニューを選択し、種類をスナップショットに変更します。
結合するストリームを選択します。
結合を選択し、結合の右側にバッチデータセットを選択します。
結合の種類で、左参照結合を選択します。
一致条件を入力します。
ストリーミングでバッチデータセットと結合する際は、最初にバッチデータセットをダウンロードし、ストリーミングクラスター内でインデックス化することで、低遅延の参照を可能にします。結合を低遅延で実行するため、同じ Pipeline Builder パイプライン内では、ストリームと結合する前にバッチデータセットを加工することはできません。
バッチデータセットは、新しいトランザクションがデータセットに書き込まれると更新されます。バッチデータセットに新しいトランザクションが追加されると、バックグラウンドプロセスがデータの新しいビューをダウンロードし、クエリ可能な形式に変換します。この処理が完了すると、ストリームはバッチデータセットの新しいビューとの結合を開始します。
ストリームと結合する前にバッチデータセットを加工することはできません。バッチデータセットを加工する必要がある場合は、上流の Pipeline Builder パイプラインで実行できます。
ストリーミングの結合には、次の制限事項があります。
バッチデータセットと結合する場合、結合の左側はストリーム、または読み取りモードが「ストリーム」のバッチデータセットである必要があります。
ストリーミングの結合に使用するバッチ(スナップショット)データセットには、APPEND トランザクションのみを使用する必要があります。スナップショットデータセットに上書きや削除などの APPEND 以外のトランザクションが含まれている場合、結合の出力が空になることがあります。この問題が発生した場合は、APPEND トランザクションのみを使用してスナップショットデータセットを再作成してください。
8~10 GB を超えるデータを含むバッチデータセットと結合すると、パフォーマンスが低下する場合があります。
新しい APPEND トランザクションが検出された場合、バッチデータセットは最大でも5分に1回しか更新されません。
大規模な静的データセットと結合すると、クラスターの起動に時間がかかる場合があります。
Foundry では、バッチ用 Pipeline Builder パイプラインで複数のバッチデータセットを結合する場合と同様に、複数の低遅延ストリームを組み合わせることができます。
Pipeline Builder で2個のストリームを結合するには、次の手順を実行します。
外部結合ではなく左結合または右結合を行う場合は、結合の下流で null 値を持つレコードを除外できます。左結合の場合は左側の値が null のレコードを除外し、右結合の場合は右側の値が null のレコードを除外します。
ストリームは無期限に実行され、新しいレコードが結合の両側に絶えず流れ込むため、2個のストリーム間の結合は、ストリーム全体ではなく、結合の両側のデータを格納したキャッシュに対して実行されます。
複数のストリーム間の結合は、状態が無制限に増大するのを防ぐため、データのキャッシュに対してのみ実行されます。状態が無制限に増大すると、ストリーミングクラスターは最終的にメモリー不足になり、クラッシュします。結合の左側と右側のキャッシュに有効期限を設定することで、結合用のレコードを保存するために必要な状態のサイズが制限され、ストリーミングクラスターのメモリー不足を防ぎます。
データはキーごとに保存され、タスクマネージャー間に分散されるため、より大規模な結合を実行できます。そのため、より大規模なストリームと結合するには、タスクマネージャーごとのメモリーを増やすか、クラスターで実行するタスクマネージャーの数を増やすことができます。
左側のストリームのレコードは、結合で指定したキー列に基づいて、常に右側の最新のレコードと結合されます。特定のキーについて結合されるのは、最新のレコードのみです。
ストリームをほかのストリームと結合する場合は、次の制限事項があります。