🐙
【PDE勉強#03】ウィンドウ処理(タンブリング/ホッピング/セッション)
⏰ ウィンドウの違いをやさしく解説:タンブリング・ホッピング・セッションとは?
ストリーミング処理に欠かせない「ウィンドウ処理」。
中でもよく出てくる3種類、タンブリング・ホッピング・セッションの違いを、やさしく整理してみました!
🧃 ウィンドウ処理ってなに?
ストリーミングの世界では「ずーっと流れてくるデータ」を区切って集計する必要があります。
その「どう区切るか?」の方法がウィンドウ処理です。
🍩 まずはざっくり比較
ウィンドウの種類 | 特徴 | 例 | たとえ話 |
---|---|---|---|
タンブリング | 時間でカチッと区切る | 「毎分」など | 1分ごとに箱を交換する |
ホッピング | 時間を重ねて区切る | 「30秒幅を2秒おき」 | 30秒の窓を2秒ごとにスライドしてのぞく |
セッション | アクティビティで区切る | 「ユーザーが10秒以内に連続アクセス」 | 人が離れたら会話が切れるチャット |
🕰 タイムラインでイメージしよう
📦 タンブリング(固定で切る)
|←──10秒──→|←──10秒──→|←──10秒──→|[Window1] [Window2] [Window3]
- 重なりなし、固定長
- 毎10秒・毎1分などにカッチリ集計
🪟 ホッピング(重なりながら切る)
|←────30秒────→| [Window1]
|←────30秒────→| [Window2]
|←────30秒────→| [Window3]
- 重なったウィンドウで複数の視点から集計
- 過去30秒を2秒おきにスライドして見る、など
👤 セッション(行動に合わせて切る)
click ─── click ────(←10秒以内)─── click → [Session 1]
(←15秒空いた)
click ──── click → [Session 2]
- アクションが途切れたらセッション終了(可変長)
- ユーザーの行動ベースで集計
🪄 実務での使い分け例
シチュエーション | 選ぶウィンドウ |
---|---|
毎時のアクセス数を出したい | タンブリング |
過去30秒間のデータを2秒おきに出したい | ホッピング |
ユーザーごとの連続した操作を分析したい | セッション |
✍️ 最後に
「ウィンドウの違い」は、Dataflow や Spark Streaming などの設計で超重要!
それぞれの特徴をつかんで、実践でも使い分けていきましょう〜!
Discussion