CEP(complex event processing)とは、時系列で発生するストリームデータをコンピュータのインメモリーに展開し、あらかじめ設定した分析シナリオの条件に合致したら「特定のイベントが発生した」と判断し、それに対応するアクションを実行すること。日本語では「複合イベント処理」または「ストリームデータ処理」と呼ばれる。

 「特定のイベントが発生したら、対応するアクションを実行する」という処理は通常、業務処理などで発生したトランザクションデータをデータベース管理システムがいったんディスクに記録し、別のプログラムがそのデータを分析して実行することが多い。だがこのやり方では、データを構造化してディスクに記録した上で、ディスクからデータを読み出して分析するため、イベントの発生から実行まで少なくとも数秒単位の時間がかかる。

 これに対して、CEPではインメモリーにデータを直接展開するため、特定イベントの発生からミリ秒単位、あるいはそれ以下の高速実行が可能になる。分析対象となる時系列のストリームデータの長さは、数秒から数10分程度。インメモリーにデータを展開してリアルタイム分析するため、「DWH(data warehouse)」のように過去数ヵ月にわたって発生したデータを分析することはできないが、高速のリアルタイム処理を必要とする分野で広く利用されている。

 CEPが日本で話題になり始めたのは、2010年前後。それ以降、CEPを実行するためのソフトウエア製品が相次いで発売されている。独SAP社の「Sybase Aleri Streaming Platform」(現在は「Sybase Event Stream Processor」)、米IBM社の「IBM Infosphere Stream」、米TIBCO Software社の「TIBCO Business Events」、日立製作所の「uCosminexus Stream Data Platform」、日本マイクロソフトの「Microsoft StreamInsight」などである。

「uCosminexus Stream Data Platform」の仕組み
「uCosminexus Stream Data Platform」の仕組み
CQL(Continuous Query Language)は分析シナリオを記述するためのスクリプト言語(出典:日立製作所)

 これらの製品は、「特定イベントの発生を判断する分析シナリオ」「直近で何分(何秒)前までのストリームデータを分析対象とするか」などを設定する機能を備えている。