データストリーム【data stream】

一般的なデータ処理では、あらかじめ保存されたデータ集合を一括で読み込み、処理する方式が用いられることが多い。一方、データストリームではデータの終わりは事前に決まっておらず、生成されたそばから次々に処理される。例えば、センサーからの計測値、ログ情報、動画や音声の信号などは時間とともに連続して到着する。これらを蓄積してから処理するのではなく、到着順に処理することで、遅延を抑えたリアルタイム処理が可能となる。
代表的な応用例に、音声や動画の「ストリーミング再生」がある。生中継の動画配信などでは、撮影された映像や録音された音声が即座にデータ化されて配信され、再生側ではデータ全体の終端を待つことなく再生を始めなければならない。このとき、データストリームの仕組みによって一定の長さごとに到着したデータを解析し、元の音声や動画に組み立て直して利用者に届けるという処理が行われる。
プログラミング言語やフレームワークでは、入力と出力を抽象化したストリームAPIが提供されている。ストリームは、データを一定の単位(チャンク)で読み書きする仕組みであり、ファイル操作やネットワーク通信に広く用いられる。また、大規模データ処理の分野では、「Apache Kafka」や「Apache Flink」などのデータストリーム処理基盤を用いて効率的にデータを処理する。