✅ Azure 串流分析 ✅ 網狀架構事件串流
在處理即時事件的應用程式中,通常會在一段時間內發生的事件子集上執行一些以集合為基礎的計算(匯總)或其他作業。 由於時間概念是複雜事件處理系統的基本必要條件,因此務必要有簡單的方法來處理系統中查詢邏輯的時間元件。 在 Azure 串流分析中,這些事件子集是透過視窗定義,以依時間表示群組。 本文說明視窗及其定義方式、識別支援的窗口類型,以及說明如何搭配各種運算元使用 Windows。
瞭解 Windows
視窗包含時間軸上的事件數據,並可讓您針對該視窗內的事件執行各種作業。 例如,您可能想要加總指定視窗中承載欄位的值,如下圖所示。
每個視窗作業都會輸出視窗結尾的事件。 Azure 串流分析的視窗會在時間範圍開始時間開啟,並在時間結束時間關閉。 例如,如果您有從上午 12:00 到上午 12:05 5 的 5 分鐘時間範圍,則包含時間戳大於上午 12:00 且包含時間戳最多 12:05 的事件都會包含在此視窗中。 窗口的輸出會根據與時間範圍結束時間相等時間戳的聚合函數,是單一事件。 窗口的輸出事件時間戳可以使用別名的 System.Timestamp() 屬性,在 SELECT 語句中投影。 每個視窗都會自動對齊第零小時。 例如,5 分鐘的輪轉視窗將本身對齊 (12:00-12:05] 、(12:05-12:10]、...等等。
在窗口作業之後,事件的時間戳會與原始事件時間屬性不同( 抵達時間 或 與 TIMESTAMP BY 搭配使用的數據行)。 事件目前更新的時間戳一律可以使用 system.timestamp()來存取。
備註
所有視窗都應該用於 GROUP BY 子句中。
有五種類型的視窗:
在所有情況下,視窗的大小上限為 7 天。
您可以使用 Windows 函式,在同一個 GROUP BY 語句中匯總多個時間範圍。