窗口化查詢 - 適用於 SQL 應用程式的 Amazon Kinesis Data Analytics 開發人員指南

針對新專案,我們建議您優先選擇新的 Managed Service for Apache Flink Studio,而非 Kinesis Data Analytics for SQL 應用程式。Managed Service for Apache Flink Studio 易於使用且具備進階分析功能,可讓您在幾分鐘內建置複雜的串流處理應用程式。

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

窗口化查詢

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

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

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

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

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

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

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