リレーショナルデータストリーム管理システム

リレーショナル・データ・ストリーム管理システム(RDSMS)は、標準準拠のSQLクエリを使用して非構造化データストリームと構造化データストリームをリアルタイムで処理するように設計された、分散型のインメモリ・データ・ストリーム管理システム(DSMS)です。従来のRDBMSで実行されるSQLクエリは結果を返して終了しますが、RDSMSで実行されるSQLクエリは終了せず、新しいデータが利用可能になるたびに継続的に結果を生成します。RDSMSの継続的なSQLクエリは、SQLウィンドウ関数を使用して、固定ウィンドウまたはスライディングウィンドウ上でデータストリームを分析、結合、および集計します。ウィンドウは、時間ベースまたは行ベースで指定できます。

RDSMS SQLクエリの例

RDSMS における継続的 SQL クエリはANSI SQL 標準に準拠しています。最も一般的な RDSMS SQL クエリは、宣言SELECT文を使用して実行されます。継続的 SQL はSELECT、1 つ以上のデータ ストリームにわたるデータに対して操作を行います。オプションのキーワードと句には、複数のデータ ストリームを結合するためのルールを指定するためのオプションのサブ句、FROMクエリによって返されるレコードを制限するための句と比較述語、共通の値を持つストリームをより小さなセットに投影するための句、結果のレコードをフィルタリングするための句、および結果を並べ替えるための句が含まれます。 JOINWHEREGROUP BYHAVINGGROUP BYORDER BY

SELECT以下は、気象観測ステーションからのセンサーストリームを集計するクエリを使用した、連続データストリーム集計の例です。このSELECTクエリは、1秒間の最低気温、最高気温、平均気温の値を集計し、1秒間隔で集計結果の連続ストリームを返します。

SELECT STREAM FLOOR ( WEATHERSTREAM . ROWTIME to SECOND ) AS FLOOR_SECOND MIN ( TEMP ) AS MIN_TEMP MAX ( TEMP ) AS MAX_TEMP AVG ( TEMP ) AS AVG_TEMP FROM WEATHERSTREAM GROUP BY FLOOR ( WEATHERSTREAM . ROWTIME TO SECOND );

RDSMS SQLクエリは、時間経過や行ベースのウィンドウをまたいでデータストリームを操作します。次の例は、WINDOW1秒間の継続時間を持つ句を使用した2番目の連続SQLクエリを示しています。このWINDOW句はクエリの動作を変更し、新しいレコードが到着するたびに結果を出力します。したがって、出力は遅延ゼロで増分更新される結果のストリームとなります。

SELECT STREAM ROWTIME MIN ( TEMP ) OVER W1 AS WMIN_TEMP MAX ( TEMP ) OVER W1 AS WMAX_TEMP AVG ( TEMP ) OVER W1 AS WAVG_TEMP FROM WEATHERSTREAM WINDOW W1 AS ( RANGE INTERVAL '1' SECOND PRECEDING );

参照