Skip to content

DNET_DistributedProcessingStream

nishi_74322014 edited this page Sep 11, 2026 · 1 revision

分散処理:ストリーム系

概要

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

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

データ収集(DC)系

データ収集・格納系の該当節を参照。

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

データ収集・格納系の該当節を参照。

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

詳細

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

目的別

ステートレス処理

  • ステートレスな、最も単純な ETL(EAI/ETLの該当節を参照)的な処理。

    • システム監視のアラート通知
    • 受信データをフォーマット変換して永続化

ステートフル処理

  • ステートを保持した処理。

  • 区分

    • 集計処理
    • 集約処理
    • 差分計算
    • 状態変化の検知
    • 移動距離の算出(差分計算)
    • ログイン通知(状態変化の検知)

ウィンドウ処理

  • ステートを保持し、

    • 特定周期(ウィンドウ幅)で集計。
    • 指定周期(スライディング幅)で再集計。
    • Webサイトの過去24時間の訪問者や注文情報
    • 店舗毎の過去24時間の売上情報
  • 詳細:→ コチラ

順序保証処理

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

プロダクト

Hadoop Streaming

Hadoop Streaming

  • ビッグデータ(ビッグデータ)のストリーム処理のプロダクト
  • 標準入出力を使い、好きな言語で MapReduce(Hadoopの該当節を参照)を実行

Spark Streaming

Spark Streaming

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

Apache Storm

Apache Storm

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

Kafka Streams

Apache Kafkaの該当節を参照。

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

Apache Kafka

Apache Kafka

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

ポイント

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

継続的なデータ処理

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

スループット

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

データ量の変化

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

データロスト

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

トレードオフ

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

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

完全性(Completeness)

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

低遅延(Low Latency)

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

低コスト(Low Cost)

ウィンドウ処理(詳細)

種類

  • 固定長ウィンドウ(Fixed)
    1時間ごと、等の一定の時間ごとに区切った範囲のウィンドウ

  • スライディング・ウィンドウ(Sliding)
    毎分、過去5分間分の結果を集計して出力する。
    と言った、範囲(ウィンドウ)が移動(スライディング)するウィンドウ

  • セッション・ウィンドウ(Sessions)
    一定時間以内にアクセスが連続した場合、
    そのアクセスを紐づけるという長さが固定されないウィンドウ

問題の解消

  • Watermark

    • どのイベント時刻まで処理したかの区切り(遅延の足切り)
    • 遅れを大きくすれば正確性は増すが、遅延時間は大きくなる。
  • Trigger

    • 集計結果をどのタイミングで出力するかを定義する機構

    • 間隔が

      • 小さ過ぎる場合、不要な処理を実行する。
      • 大き過ぎる場合、結果の出力が遅れる。
  • Accumulation

    • 集計結果出力時の累積計算方式
    • 保持する時間が長いほど、システム・リソースが必要

参考

分散処理の該当節も参照。

Wikipedia

Qiita

移行メモ

  • 「ステートレスな、最も単純な ETL 的な処理」のリンク先が http://eai/ETL#eed58b6f という不正な URL だったため、 同 Wiki の「EAI/ETL」ページ(DNET_EAIETL)に張り替えた。
  • 「(差分計算」「(状態変化の検知」の閉じ括弧を補った。

Tags: 移行, 分散処理, ストリーム処理, CEP, Apache Kafka, Spark Streaming, ウィンドウ処理

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally