.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

ストリーム処理には、以下のようなタイプのものがあり、

は、データ収集・格納系に分類される。

データ収集(DC)系

シングル・イベント・プロセッサ(SEP)系

複雑イベントプロセッサ(CEP)系

詳細

以下のようなリアルタイム処理を行うことが出来る。

目的別

ステートレス処理

  • ステートレスな、最も単純なETL的な処理。
    • システム監視のアラート通知
    • 受信データをフォーマット変換して永続化

ステートフル処理

  • ステートを保持した処理。
  • 区分
    • 集計処理
    • 集約処理
    • 差分計算
    • 状態変化の検知
    • 移動距離の算出(差分計算
    • ログイン通知(状態変化の検知

ウィンドウ処理

  • ステートを保持し、
    • 特定周期(ウィンドウ幅)で集計。
    • 指定周期(スライディング幅)で再集計。
    • Webサイトの過去24時間の訪問者や注文情報
    • 店舗毎の過去24時間の売上情報

順序保証処理

  • 送信の順番で受信
  • 特定のノードのみ受信

プロダクト

Hadoop Streaming

Spark Streaming

ビッグデータのストリーム処理のプロダクト
Apache Stormとの違いはリンク先参照を。

Apache Storm

ビッグデータのストリーム処理のプロダクト

Kafka Streams

Apache Kafkaに同梱されるツール。

Apache Kafka

  • デファクト・スタンダードの分散メッセージング・システム、
  • ストリーム処理の中核と言われるようになって来ているらしい。

ポイント

以下の4点が挙げられている(プロダクトによってサポートされる)。

継続的なデータ処理

蓄積側も処理側も継続的にリソースが利用可能である必要がある。

スループット

大量データ処理を行う場合、
蓄積側も処理側も大量データを扱うスループットが必要になる。

データ量の変化

継続的な処理の中でデータ量が変化すると必要なスループットも変化する。

データロスト

何らかの契機で、データを失う可能性がある。

トレードオフ

全てのストリームデータ処理システム

  • 下記の3要素のバランスで構成され、
  • この3要素間のトレードオフがある。

完全性(Completeness)

課金処理などで重視される。

低遅延(Low Latency)

不正検知システムなどで重視される。

低コスト(Low Cost)

ウィンドウ処理

種類

  • 固定長ウィンドウ(Fixed)
    1時間ごと、等の一定の時間ごとに区切った範囲のウィンドウ
  • スライディング・ウィンドウ(Sliding)
    毎分、過去5分間分の結果を集計して出力する。
    と言った、範囲(ウィンドウ)が移動(スライディング)するウィンドウ
  • セッション・ウィンドウ(Sessions)
    一定時間以内にアクセスが連続した場合、
    そのアクセスを紐づけるという長さが固定されないウィンドウ

問題の解消

  • Watermark
    • どのイベント時刻まで処理したかの区切り(遅延の足切り)
    • 遅れを大きくすれば正確性は増すが、遅延時間は大きくなる。
  • Trigger
    • 集計結果をどのタイミングで出力するかを定義する機構
    • 間隔が
      • 小さ過ぎる場合、不要な処理を実行する。
      • 大き過ぎる場合、結果の出力が遅れる。
  • Accumulation
    • 集計結果出力時の累積計算方式
    • 保持する時間が長いほど、システム・リソースが必要

参考

Wikipedia

Qiita


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-12-21 (月) 11:58:18 (219d)