Loading article…

コンピュータサイエンスにおいて、ストリームとは、時間とともに利用可能になる可能性のある、潜在的に無制限のデータ要素のシーケンスのことです。ストリームは、コンベアベルト上のアイテムが大きなバッチではなく、一度に1つずつ処理される様子に例えることができます。ストリームはバッチデータとは異なる方法で処理されます。
ストリームは潜在的に無制限のデータを含むため、通常の関数ではストリーム全体に対して操作を行うことはできません。厳密に言えば、ストリームはデータ(有限)ではなく、共データ(潜在的に無制限)です。
あるストリームに対して動作し、別のストリームを生成する関数はフィルタと呼ばれ、関数合成と同様の方法でパイプラインに接続できます。フィルタは、ストリームの1つの項目に対して一度に動作することも、移動平均のように複数の入力項目に基づいて出力項目を生成することもできます。
「ストリーム」という用語は、以下のような類似した方法でいくつか使用されています。
ストリームは、プロセス間通信におけるチャネルの基盤となるデータ型として使用できます。
ストリームという用語は、ファイルシステムのフォークにも適用されます。フォークでは、複数のデータセットが単一のファイル名に関連付けられます。多くの場合、通常のファイルデータを構成するメインストリームが1つあり、追加のストリームにはメタデータが含まれます。ここで、ストリームは、拡張属性などの固定サイズのメタデータとは対照的に、可変サイズのデータを示すために使用されますが、時間とともに利用可能で、潜在的に無限であるデータを意味する、他の用途で使用されるストリームとは異なります。