第12章. イベント・タイム・ベースのストリーム処理
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
時間の影響」では、 、ストリーム処理における時間の影響について一般的な観点から論じた。
、イベント・タイム処理とは、イベントのストリームを、それらが生成された時間軸から見て、その観点から処理ロジックを適用することを指す。イベント・データのパターンを経時的に分析することに関心がある場合、イベントが生成された時点でそれらを可観測しているかのように処理する必要がある。 そのためには、イベントを生成するデバイスやシステムに、生成時刻を "スタンプ "する必要がある。 そのため、通常 "タイムスタンプ "と呼ばれ、特定のイベント発生時刻を指す。 私たちは、その時刻を、時間がどのように進化するかの参照フレームとして使用する。
この概念を説明するために、身近な例を考えてみよう。 地域の気象状況を監視するために使用される気象ステーションのネットワークを考えてみよう。 リモート・ステーションの中には、モバイル・ネットワークで接続されているものもあれば、ボランティア宅でホストされているものもあり、インターネット接続の品質は様々である。 天候監視システムは、イベントの到着順序を信頼することができない。その順序は、接続されているネットワークの速度と信頼性にほとんど依存しているからだ。 その代わりに、天候アプリケーションは、各天候ステーションが配信するイベントのタイムスタンプに依存している。ストリーム処理は、これらのタイムスタンプを使用して、天気予報システムに供給する 、時間ベースの集計を計算する。
ストリーム処理エンジンがイベントタイムを使用する機能は重要である。 なぜなら、我々は通常、イベントが処理されるシーケンスではなく、イベントがプロデューサされた相対的な順序に興味があるからである。 この章では、Structured Streamingがイベントタイム処理をシームレスにサポートする方法について学ぶ。
構造化ストリーミングのイベント時間を理解する
、サーバ側では、時間の概念は、任意のアプリケーションを実行しているコンピュータの内部クロックによって支配される。マシンのクラスタ上で実行される分散アプリケーションの場合、すべてのクロックを同じ時刻に合わせるために、ネットワークタイムプロトコル(NTP)のような クロック同期テクニックとプロトコルを使用することは必須のプラクティスである。その目的は、コンピュータのクラスタ上で実行される分散アプリケーションのさまざまな部分が、イベントのタイムラインと相対的な順序について一貫した決定を行うことができるようにすることである。
しかし、センサーネットワーク、他のデータセンター、携帯電話、コネクテッドカーなどの外部デバイスからデータが送られてくる場合、それらのクロックが我々のクラスタマシンのクロックと一致している保証はない。 我々は、処理システムの内部クロックを参照するのではなく、プロデューサーの視点から、送られてくるイベントのタイムラインを解釈する必要がある。図12-1はこのシナリオを示している。
図12-1. 内部イベントのタイムライン
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access