リレーショナルデータストリーム管理システム(RDSMS)は、分散型インメモリデータストリーム管理システム(DSMS)であり、標準規格に準拠したSQLクエリを使用して、非構造化データストリームと構造化データストリームをリアルタイムで処理するように設計されています。従来のRDBMSで実行されるSQLクエリは結果を返して終了しますが、RDSMSで実行されるSQLクエリは終了せず、新しいデータが利用可能になると継続的に結果を生成します。RDSMSの連続SQLクエリは、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 );