ストリームおよびクエリの定義に使用するCQLを定義系CQLといいます。定義系CQLには,次の2種類があります。
以降で,それぞれの句の指定方法について説明します。
ストリームの定義には,定義系CQLのREGISTER STREAM句を使用します。
REGISTER STREAM句には,ストリームの名称(入力ストリームの名称),スキーマ指定文字列(ストリームに従って流れるストリームデータの形式)を指定します。REGISTER STREAM句の指定方法を次に示します。
REGISTER STREAM ストリームの名称
(スキーマ指定文字列);
例として,気温分析システムのストリームを定義するCQL文を次に示します。
REGISTER STREAM temperature_stream
(observation_time TIME, id INTEGER, temperature INTEGER);
ストリームの名称には,「temperature_stream」を指定しています。また,「observation_time」(観測時刻),「id」(観測所のID),および「temperature」(気温)のデータを,それぞれ「TIME型」,「INTEGER型」,および「INTEGER型」のデータ型で指定しています。
クエリの定義には,定義系CQLのREGISTER QUERY句を使用します。REGISTER QUERY句には,クエリの名称,ストリーム句,SELECT句,FROM句,WHERE句の順序で記述します。なお,ここで指定するクエリの名称は,クエリによって処理されたストリームデータが流れるストリーム(出力ストリーム)の名称になります。
REGISTER QUERY句中のストリーム句,SELECT句,FROM句,およびWHERE句のCQL文の句とクエリの動作は,次の表のように対応します。
表2-1 CQL文の句とクエリの動作の対応
CQL文の句 | クエリの動作 |
---|---|
ストリーム句 | ストリーム化演算の動作を指定 |
SELECT句,WHERE句 | 関係演算の動作を指定 |
FROM句 | ウィンドウ演算の動作を指定 |
REGISTER QUERY句の指定方法を次に示します。
REGISTER QUERY クエリの名称
ストリーム句 (
SELECT句
FROM句
WHERE句);
REGISTER QUERY句の指定内容について説明します。
例として,「(1) ストリームの定義(REGISTER STREAM句)」で説明した気温分析システムに続けてクエリを定義します。
REGISTER STREAM temperature_stream
(observation_time TIME, id INTEGER, temperature INTEGER);
REGISTER QUERY sensor_filter
ISTREAM (
SELECT id, temperature
FROM temperature_stream[ROWS 3]
WHERE id = 1);
REGISTER QUERY句の指定内容について説明します。
なお,REGISTER QUERY句には,ここで説明した以外の句も指定できます。REGISTER QUERY句に指定できる句については,マニュアル「uCosminexus Stream Data Platform - Application Framework アプリケーション開発ガイド」を参照してください。