將應用程式輸出保存至外部目標的交付模型 - 亞馬遜 Kinesis SQL 應用程式資料分析開發人員指南

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

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

將應用程式輸出保存至外部目標的交付模型

Amazon Kinesis Data Analytics 使用「至少一次」交付模型,將應用程式輸出到設定的目的地。當應用程式執行時,Kinesis Data Analytics 會採用內部檢查點。這些檢查點是輸出記錄傳遞至目的地,且沒有資料遺失的時間點。服務會視需要使用檢查點,以確保應用程式輸出至少會傳送一次至設定的目的地。

在正常情況下,您的應用程式會持續處理傳入的資料。Kinesis Data Analytics 會將輸出寫入設定的目標,例如 Kinesis 資料串流或 Firehose 交付串流。不過,您的應用程式可能會偶爾中斷,例如:

  • 您選擇停止應用程式並稍後重新啟動。

  • 您刪除了 Kinesis Data Analytics 將應用程式輸出寫入設定目的地所需的 IAM 角色。如果沒有 IAM 角色,Kinesis Data Analytics 就沒有任何權限代您寫入外部目的地。

  • 網路中斷或其他內部服務失敗,導致應用程式暫時停止執行。

當您的應用程式重新啟動時,Kinesis Data Analytics 可確保從失敗發生之前或當下時間點繼續處理和寫入輸出,。此舉能確保傳送到設定目的地的應用程式輸出不會有遺漏。

假設您從相同的應用程式內串流設定了多個目的地。應用程式從失敗復原後,Kinesis Data Analytics 會從上次傳遞至最慢目的地的記錄,繼續保留輸出至設定目的地。這可能會導致相同的輸出記錄多次傳送到其他目的地。在這種情況下,您必須在外部處理目的地的潛在重複。