關係型數據流管理系統
外觀
此條目沒有列出任何參考或來源。 (2018年10月12日) |
關係型數據流管理系統(RDSMS)是一種分布式的、基於內存的 數據流管理系統 (DSM),目的是使用標準 SQL 查詢來實時處理結構化和非結構化數據流。 不像在關係型數據庫中執行 SQL 查詢,返回結果並退出,在RDSMS中執行的 SQL 不會退出,當新數據可用時能夠連續產出查詢結果。RDSMS中的連續 SQL 查詢通過窗口功能,在固定窗口或者切片窗口解析、關聯和聚合數據流。 窗口可以被指定為基於時間的或基於行的。
RDSMS SQL Query實例
[編輯]RDSMS中的連續 SQL 查詢符合 ANSI SQL 標準。最常見的RDSMS SQL 查詢通過聲明 SELECT
語句實現。對數據進行的連續 SQL SELECT
操作跨越了一個或者多個數據流,可以使用(可選的) FROM
和(可選的) JOIN
子句來指定多數據流的聚合規則,用 WHERE
語句和比較謂詞來限制查詢返回的記錄,通過 GROUP BY
將具有相同值的數據流映射到同一個更小的數據集,通過 HAVING
來過濾從 GROUP BY
產生的結果記錄,並通過 ORDER 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查詢也可以基於時間窗口或者行窗口操作數據流。 以下例子顯示了另一種連續SQL查詢,它使用 WINDOWS
語句,周期為1秒。 這個 WINDOWS
語句改變了查詢行為,以便在每條新記錄到達時輸出一個結果。 因此,輸出的是一些逐步更新的零延遲結果形成的數據流。
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 );