跳至內容

關係型數據流管理系統

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書

關係型數據流管理系統(RDSMS)是一種分布式的、基於內存的 數據流管理系統英語Data stream management system (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 );

參考

[編輯]

外部連結

[編輯]