窗口化查詢 - 亞馬遜 Kinesis SQL 應用程式資料分析開發人員指南

對於新專案,我們建議您使用適用於 Apache Flink Studio 的全新受管理服務,取代適用於應用程式的 Kinesis Data Analytics。SQLManaged Service for Apache Flink Studio 易於使用且具備進階分析功能,讓您在幾分鐘內建置複雜的串流處理應用程式。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

窗口化查詢

應用程式碼中的 SQL 查詢會透過應用程式內串流持續執行。應用程式內串流,代表的是持續在應用程式中流動的無限制資料。因此,若要取得此持續更新輸入的結果集,經常會使用定義的窗口時段或資料列來限制查詢。這些也被稱為窗口式 SQL

對於以時間為基礎的窗口化查詢,您可以根據時間來指定窗口大小 (例如,一分鐘的窗口)。這需要應用程式內串流中的時間戳記資料欄,該欄會單調增加。(新資料列的時間戳記大於或等於上一列。) 在每個應用程式內串流中,Amazon Kinesis Data Analytics 會提供這樣的時間戳記欄,名為 ROWTIME。您可以在指定基於時間的查詢中使用此欄。針對應用程式,您可以選擇其他時間戳記選項。如需詳細資訊,請參閱 時間戳記和 ROWTIME 欄

針對以資料列為基礎的窗口化查詢,您可以根據資料列數來指定窗口大小。

您可以根據應用程式需求,指定查詢以輪轉窗口、滑動窗口或交錯窗口方式處理記錄。Kinesis Data Analytics 支援下列窗口類型:

  • 交錯窗口:此查詢使用金鑰式時間窗口彙總資料,該窗口會在資料到達時打開。這些金鑰允許多個重疊的窗口。這是使用基於時間的窗口聚合數據的建議方式,因為 Stagger Windows 與「翻滾窗口」相比可以減少遲到或 out-of-order 數據。

  • 輪轉窗口:此查詢使用定期開啟和關閉的時間窗口來彙總資料。

  • 滑動視窗:此查詢使用固定時間或資料列計數間隔持續彙總資料。