設定應用程式輸出 - 適用於 SQL 應用程式的 Amazon Kinesis Data Analytics 開發人員指南

經過仔細考量,我們決定在兩個步驟中停止 Amazon Kinesis Data Analytics for SQL 應用程式:

1. 從 2025 年 10 月 15 日起,您將無法建立新的 Kinesis Data Analytics for SQL 應用程式。

2. 我們將自 2026 年 1 月 27 日起刪除您的應用程式。您將無法啟動或操作 Amazon Kinesis Data Analytics for SQL 應用程式。從那時起,Amazon Kinesis Data Analytics for SQL 將不再提供支援。如需詳細資訊,請參閱Amazon Kinesis Data Analytics for SQL 應用程式終止

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

設定應用程式輸出

在應用程式碼中,您可以將 SQL 陳述式的輸出寫入一或多個應用程式內串流。您可以選擇將輸出組態新增至您的應用程式。 會將寫入應用程式內串流的所有內容保留至外部目的地,例如 Amazon Kinesis 資料串流、Firehose 交付串流或 AWS Lambda 函數。

您可以用來保存應用程式輸出的外部目的地數量有限制。如需詳細資訊,請參閱限制

注意

建議您使用其中一個目的地來保留應用程式內錯誤串流資料,藉此調查錯誤。

在每種輸出組態中,您提供下列項目:

  • 應用程式內串流名稱:您要保留至外部目的地的串流。

    Kinesis Data Analytics 會尋找您在輸出組態中指定的應用程式內串流。(串流名稱區分大小寫,必須完全匹配。) 請確定您的應用程式碼會建立此應用程式內串流。

  • 外部目的地 – 您可以將資料保留到 Kinesis 資料串流、Firehose 交付串流或 Lambda 函數。您提供資料串流或函數的 Amazon Resource Name (ARN)。您也必須提供 Kinesis Data Analytics 可擔任的 IAM 角色,以代您讀取串流或函數。在寫入外部目的地時,您可以向 Kinesis Data Analytics 描述要使用的記錄格式 (JSON、CSV)。

如果 Kinesis Data Analytics 無法寫入串流或 Lambda 目的地,服務會繼續無限期地嘗試。這會產生背壓,導致您的應用程式落後。如果此問題未解決,您的應用程式最終會停止處理新資料。您可以監控 Kinesis Data Analytics 指標並設定故障警示。如需指標與警示的詳細資訊,請參閱使用 Amazon CloudWatch 指標建立 Amazon CloudWatch 警示

您可以使用 AWS Management Console配置應用程式輸出。主控台進行 API 呼叫以保存組態。

使用 建立輸出 AWS CLI

本節說明如何建立 CreateApplicationAddApplicationOutput 作業的請求主體 Outputs 區段。

建立 Kinesis 串流輸出

下列 JSON 片段顯示 CreateApplication 要求內文中用來建立 Amazon Kinesis 資料串流目的地的 Outputs 區段。

"Outputs": [ { "DestinationSchema": { "RecordFormatType": "string" }, "KinesisStreamsOutput": { "ResourceARN": "string", "RoleARN": "string" }, "Name": "string" } ]

建立 Firehose 交付串流輸出

下列 JSON 片段顯示CreateApplication請求內文中的 Outputs區段,用於建立 Amazon Data Firehose 交付串流目的地。

"Outputs": [ { "DestinationSchema": { "RecordFormatType": "string" }, "KinesisFirehoseOutput": { "ResourceARN": "string", "RoleARN": "string" }, "Name": "string" } ]

建立 Lambda 函數輸出

下列 JSON 片段顯示CreateApplication請求內文中的 Outputs區段,用於建立 AWS Lambda 函數目的地。

"Outputs": [ { "DestinationSchema": { "RecordFormatType": "string" }, "LambdaOutput": { "ResourceARN": "string", "RoleARN": "string" }, "Name": "string" } ]