目次
ウィンドウとは何か?
ウィンドウとは「データの流れを、時間や条件で区切って処理する仕組み」です。
たとえば、1分ごとの売上を集計する場合、1分単位のウィンドウで区切ります。
Tumbling Window(タンブリングウィンドウ)
一定時間でデータをきっちり分けて処理するタイプです。
実例: 1分ごとの売上を集計
- 10:00〜10:01 → ウィンドウ①
- 10:01〜10:02 → ウィンドウ②
- 10:02〜10:03 → ウィンドウ③
ポイント
- ウィンドウ同士は重ならない
- 固定的でわかりやすい
- 定期レポートや時間集計に最適
Sliding Window(スライディングウィンドウ)
一定間隔でずらしながら集計するタイプです。
実例: 音楽アプリの「直近5分間の再生回数」
ポイント
- ウィンドウが重なり合う
- 最新傾向を常に確認できる
- トレンド検知や移動平均に最適
Session Window(セッションウィンドウ)
ユーザーの行動のまとまりを基準に区切るタイプです。無操作時間(ギャップ)で区切ります。
実例: ECサイトのユーザー行動分析
- 10:00 商品A閲覧
- 10:05 商品B閲覧 → 同一セッション
- 10:40 商品C閲覧 → 35分空いた → 新セッション
ポイント
- ウィンドウの長さが動的に変化
- 「無操作時間」で区切られる
- ユーザー行動の自然な分析に最適
時間の3つの基準(Event / Processing / Arrival)
同じデータでも、「どの時間を基準に扱うか」で結果が変わります。
Event Time(イベントタイム)
データが実際に発生した時刻。現実世界のタイムスタンプ。
- 現実時間に忠実な分析
- 遅延データも処理可能(Watermark利用)
Processing Time(プロセッシングタイム)
システムがデータを処理した時刻。
- リアルタイム性が高い
- ただし遅延や順序のズレが発生しうる
Arrival Time(アライバルタイム)
データがストリームシステムに届いた時刻。
- 簡単で実装しやすい
- ネットワーク遅延の影響を受けやすい
ウィンドウと時間の関係
ウィンドウの種類と時間の基準を組み合わせると、目的に応じた柔軟な分析が可能になります。
- リアルタイム監視: Tumbling Window × Processing Time
- 正確な履歴分析: Sliding Window × Event Time
- ユーザー行動分析: Session Window × Event Time
3つのウィンドウの比較まとめ
| 種類 | 特徴 | 用途 |
|---|---|---|
| Tumbling | 固定長、重ならない | 時間集計・レポート |
| Sliding | 固定長、重なる | トレンド分析・リアルタイム監視 |
| Session | 可変長、ユーザー行動基準 | 行動分析・滞在時間解析 |
まとめ
ウィンドウは「時間でデータを切る」仕組みであり、時間の基準(Event / Processing / Arrival)をどれにするかで分析の正確性やリアルタイム性が変わります。
- Tumbling: 定期集計向け
- Sliding: トレンド検知向け
- Session: 行動分析向け
- Event Time: 正確性重視
- Processing Time: 即時性重視
- Arrival Time: 実装簡単