データ処理の代表的な手法である「バッチ処理」と「ストリーム処理」は、処理のタイミングや対象データの扱い方に違いがある。ストリーム処理が必要とされる理由と、バッチ処理とストリーム処理の違いを解説する。
データの処理手法に「バッチ処理」と「ストリーム処理」がある。近年、例えば商取引や株価情報、IoT(モノのインターネット)センサーのデータなど、絶えず流れ込む情報を素早く分析する必要性が高まる中で、リアルタイム性が求められる用途ではストリーム処理が採用されるケースも広がってきた。ストリーム処理の基本を解説した前編「いまさら聞けない『ストリーム処理』とは? リアルタイム分析の基礎知識」に続き、中編となる本稿は「ストリーム処理」と「バッチ処理」の違いを解説する。
ストリーム処理は、大量のデータを高速に処理し、迅速に判断し、必要なアクションを実行することが重要な場面で求められる。データを蓄積してから一定のまとまりで処理する従来のバッチ処理では、イベントとして継続的に発生するデータに対応し切れない。そのため、膨大なデータを扱う上では、ストリーム処理の方が現実的な手法となる。
ストリーム処理が適しているケースには、以下のようなものがある。
ストリーム処理のパイプラインでは、ストリーミングデータが生成され、処理され、最終的な出力先へ届けられる。この間に、データは集約、変換、拡張、分析、取り込みなどを経ることもある。
このプロセスにより、アプリケーションは新たなイベントが発生した瞬間に反応できる。ストリーム処理は、多様なデータソースを用い、リアルタイム分析や即時のインサイト、超高速な応答が求められる用途に理想的な手法と言える。
ストリーム処理とバッチ処理は、それぞれ異なるデータ管理手法およびアプリケーション開発モデルを示す概念であり、用途や要件によって使い分けられる。
バッチ処理は、一般的にはレガシーなデータベース環境で長年用いられてきた方式で、トランザクションデータベースから一定期間ごとにまとめてデータを抽出し、業務レポートやバックオフィスの処理に利用する手法だ。処理対象のデータ範囲が明確であり、定期的かつ反復的な処理に適している。具体的な例としては、以下のような業務が挙げられる。
一方、ストリーム処理は、データをストリーム(流れ)として連続的に取り込み、受信したそばからリアルタイムに処理する手法だ。データは小さな単位で逐次届き、それを蓄積してからまとめて処理するのではなく、即時的に処理を実行する。これにより、保存やバッチ実行を待たずに、常時変化するデータに迅速に対応できる。
ストリーム処理エンジンは、受信したデータを並列的に処理する。例えば、データの更新内容をフィルタリングしたり、すでに処理済みのデータを識別・追跡したりする他、変換、拡張、クレンジング(不正確なデータの除去)といった前処理をリアルタイムで実行できる。こうした仕組みによって、データエンジニアやアプリケーション開発者は、より多くの時間を分析や機能開発に充てられるようになる。
次回はストリーム処理のフレームワークなど、ストリーム処理の基盤を構築するための必要な要素を解説する。
Copyright © ITmedia, Inc. All Rights Reserved.
なぜクラウド全盛の今「メインフレーム」が再び脚光を浴びるのか
メインフレームを支える人材の高齢化が進み、企業の基幹IT運用に大きなリスクが迫っている。一方で、メインフレームは再評価の時を迎えている。

「サイト内検索」&「ライブチャット」売れ筋TOP5(2025年5月)
今週は、サイト内検索ツールとライブチャットの国内売れ筋TOP5をそれぞれ紹介します。

「ECプラットフォーム」売れ筋TOP10(2025年5月)
今週は、ECプラットフォーム製品(ECサイト構築ツール)の国内売れ筋TOP10を紹介します。

「パーソナライゼーション」&「A/Bテスト」ツール売れ筋TOP5(2025年5月)
今週は、パーソナライゼーション製品と「A/Bテスト」ツールの国内売れ筋各TOP5を紹介し...