在仔細考慮之後,我們決定在兩個步驟中停止 Amazon Kinesis Data Analytics for SQL 應用程式:
1. 從 2025 年 10 月 15 日起,您將無法為SQL應用程式建立新的 Kinesis Data Analytics。
2. 我們將自 2026 年 1 月 27 日起刪除您的應用程式。您將無法啟動或操作SQL應用程式的 Amazon Kinesis Data Analytics。從那時SQL起,Amazon Kinesis Data Analytics 將不再提供 的支援。如需詳細資訊,請參閱Amazon Kinesis Data Analytics for SQL 應用程式終止。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon Kinesis Data Analytics for SQL 應用程式:運作方式
注意
2023 年 9 月 12 日之後,如果尚未使用 Kinesis Data Analytics for SQL,您將無法使用 Kinesis Data Firehose 做為建立新應用程式的來源。如需詳細資訊,請參閱限制。
應用程式是 Amazon Kinesis Data Analytics 中的主要資源,您可以在帳戶中建立。您可以使用 AWS Management Console 或 Kinesis Data Analytics API 建立和管理應用程式。Kinesis Data Analytics 提供 API 操作來管理應用程式。如需 API 操作的清單,請參閱 動作。
Kinesis Data Analytics 應用程式會持續即時讀取和處理串流資料。您可以使用 SQL 撰寫應用程式程式碼,以處理傳入的串流資料並產生輸出。然後,Kinesis Data Analytics 會將輸出寫入設定的目的地。下圖說明典型的應用程式架構。
![顯示資料分析應用程式、串流輸入來源、參考資料和應用程式輸出的圖表。](images/kinesis-app.png)
每個應用程式都有名稱、描述、版本 ID 和狀態。Amazon Kinesis Data Analytics 會在您第一次建立應用程式時指派一個版本 ID。此版本 ID 會在您更新任何應用程式組態時更新。舉例來說,如果您新增輸入組態、新增或刪除參考資料來源、新增或刪除輸出組態,或更新應用程式碼,Kinesis Data Analytics 會更新目前的應用程式版本 ID。Kinesis Data Analytics 也會維護應用程式建立和上次更新的時間戳記。
除了這些基本屬性之外,每個應用程式還包含以下內容:
-
輸入:應用程式的串流來源。您可以選取 Kinesis 資料串流或 Firehose 資料傳遞串流作為串流來源。在此輸入組態中,將串流來源映射到應用程式內輸入串流。應用程式內串流就像是持續更新的資料表,您可以在其上執行
SELECT
和INSERT SQL
作業。在應用程式碼中,您可以建立其他應用程式內串流來儲存中繼查詢結果。在多個應用程式內輸入串流中,您可以選擇性地分割單一串流來源,以改善輸送量。如需詳細資訊,請參閱 限制 及 設定應用程式輸入。
在每個應用程式串流中,Amazon Kinesis Data Analytics 會提供名為 時間戳記和 ROWTIME 欄 的時間戳記欄。您可以在基於時間的窗口查詢中使用此欄。如需詳細資訊,請參閱 窗口化查詢。
您可以選擇性地設定參考資料來源,以豐富應用程式內的輸入資料串流。此舉會產生應用程式內參考資料表。您必須將參考資料作為物件存放在 S3 儲存貯體中。Amazon Kinesis Data Analytics 會在應用程式啟動時讀取 Amazon S3 物件,並建立應用程式內資料表。如需詳細資訊,請參閱 設定應用程式輸入。
-
應用程式碼:處理輸入並產生輸出的一系列 SQL 陳述式。您可以針對應用程式內串流和參考資料表撰寫 SQL 陳述式。您也可以撰寫 JOIN 查詢,以合併來自這兩個來源的資料。
如需 Kinesis Data Analytics 支援之 SQL 語言元素的相關資訊,請參閱 Amazon Kinesis Data Analytics SQL 參考資料。
以最簡單的形式來說,應用程式碼可以是單一 SQL 陳述式,可從串流輸入中選取,並將結果插入串流輸出。它也可以是一系列的 SQL 陳述式,其中一個的輸出會饋送至下一個 SQL 陳述式的輸入。此外,您可以撰寫應用程式碼,將輸入串流分割成多個串流。然後,您可以套用其他查詢來處理這些串流。如需詳細資訊,請參閱 應用程式碼。
-
輸出:在應用程式碼中,查詢結果會移至應用程式內串流。在應用程式碼中,您可以建立一或多個應用程式內串流來儲存中繼結果。然後,您可以選擇性地設定應用程式輸出,將資料保留在應用程式內串流,該串流會將應用程式的輸出 (也稱為應用程式內輸出串流) 保存在外部目的地。外部目標可以是 Firehose 傳送串流或 Kinesis 資料串流。請注意下列與這些目的地相關的資訊:
-
您可以設定 Firehose 交付串流,將結果寫入 Amazon S3、Amazon Redshift 或 Amazon OpenSearch 服務 (服OpenSearch 務)。
-
您也可以將應用程式輸出寫入自訂目的地,而不是 Amazon S3 或 Amazon Redshift。若要這樣做,您要在輸出組態中指定 Kinesis 資料串流作為目的地。然後,您可 AWS Lambda 以設定輪詢串流並叫用 Lambda 函數。Lambda 函數程式碼會接收串流資料作為輸入。在 Lambda 函數程式碼中,您可以將傳入資料寫入自訂目的地。如需詳細資訊,請參閱 AWS Lambda 搭配 Amazon Kinesis Data Analytics 使用。
如需詳細資訊,請參閱 設定應用程式輸出。
-
此外,請注意下列事項:
-
Amazon Kinesis Data Analytics 需要許可才能讀取串流來源的記錄,並將應用程式輸出寫入外部目的地。您可以透過 IAM 角色來授予這些許可。
-
Amazon Kinesis Data Analytics 會為每個應用程式提供應用程式內錯誤串流。如果您的應用程式在處理特定記錄時發生問題 (例如,因為類型不符或延遲到達),則該記錄會寫入錯誤串流。您可以設定應用程式輸出來引導 Kinesis Data Analytics,將錯誤串流資料保留到外部目的地,以供進一步評估。如需詳細資訊,請參閱 錯誤處理。
-
Amazon Kinesis Data Analytics 可確保應用程式輸出記錄有寫入設定的目的地。即使您遇到應用程式中斷,它也會使用「至少一次」處理和交付模式。如需更多詳細資訊,請參閱 將應用程式輸出保存至外部目標的交付模型。