読み方 : ストリームデータしょり

ストリームデータ処理【stream processing】

概要

ストリームデータ処理とは、連続的に生成されるデータを蓄積せず、到着と同時に逐次処理するデータ処理方式。リアルタイム性を重視した処理手法である。
ストリームデータ処理のイメージ画像

一般的なデータ処理では、データベースファイルなどデータの蓄積・保管場所があり、あらかじめ先頭と末尾が決まっているデータを処理することが多い。これに対し、ストリームデータ処理では、センサーが発する信号、サーバログ、取引記録のように、絶え間なく発生し続けるデータを受け取るそばから次々に処理していく。

この方式では、データの末尾は事前に決まっておらず、無限に続いたとしても破綻しないように設計する必要がある。これに対応するため、一定時間や一定件数ごとに区切って集計する「ウィンドウ処理」(windowing)という考え方が用いられることが多い。例えば、直近5分間の平均値を計算する場合、時間に基づくウィンドウを設定し、古いデータを順次除外しながら計算を更新する。データの到着順序の乱れや遅延にも対応する仕組みが重要である。

代表的な基盤技術としては、分散メッセージングや分散処理フレームワークがある。例えば、「Apache Kafka」は大量のデータを高速に受信・配信する仕組みを提供し、「Apache Flink」や「Apache Spark」はストリームデータの分散処理機能を備える。これらは複数の計算機で処理を分担し、遅延を抑えつつ耐障害性を確保する設計となっている。

データを貯めることなく瞬時に価値へと変換できるため、刻々と変化する状況に即座に対応する必要があるIoTや金融、デジタルマーケティングなどの分野において、基幹的な技術として導入が進んでいる。大量かつ継続的に流入するデータを対象に、低遅延で分析・制御を行うための基盤技術である。

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。