ウォーターマーク(ストリーム処理)(うぉーたーまーく)
最終更新:2026/4/25
ウォーターマーク(ストリーム処理)は、データストリームにおける処理の進捗状況を示す指標であり、特定の時点までに処理が完了したデータの量を表す。
別名・同義語 タイムスタンプイベントタイム
ポイント
ストリーム処理におけるデータの遅延を監視し、システムの健全性を評価するために用いられる。イベントタイム処理において特に重要となる。
ウォーターマークとは
ウォーターマークは、データストリーム処理において、イベントがいつ到着したかを示すタイムスタンプに基づいて、処理の進捗状況を追跡するためのメカニズムです。特に、イベントタイム処理において、データの順序が保証されない場合に、正確な集計や分析を行うために不可欠となります。
ウォーターマークの役割
ウォーターマークは、以下の役割を果たします。
- データの遅延の検出: ウォーターマークは、データが想定よりも遅れて到着しているかどうかを検出するために使用されます。遅延が許容範囲を超えた場合、システムはアラートを発したり、処理を調整したりすることができます。
- 正確な集計: ウォーターマークは、特定の時点までに到着したすべてのデータを考慮して、正確な集計を行うために使用されます。これにより、不完全なデータに基づいて誤った結果を導き出すことを防ぎます。
- 状態の管理: ウォーターマークは、ストリーム処理アプリケーションの状態を管理するために使用されます。ウォーターマークに基づいて、不要な状態を破棄したり、新しい状態を作成したりすることができます。
ウォーターマークの設定
ウォーターマークは、通常、データソースまたはストリーム処理エンジンによって設定されます。ウォーターマークの設定は、データの特性やシステムの要件に基づいて慎重に行う必要があります。不適切なウォーターマークの設定は、データの遅延の誤検出や、不正確な集計につながる可能性があります。
ウォーターマークの例
例えば、あるオンラインストアの注文データストリームを処理する場合、ウォーターマークは、特定の時間までに処理されるべき注文の数を表すことができます。もし、ウォーターマークがその時間までに処理された注文の数よりも大きい場合、システムは遅延が発生していることを検出し、対応策を講じることができます。