

在仔細考慮之後，我們決定停止 Amazon Kinesis Data Analytics for SQL 應用程式：

1. 從 **2025 年 9 月 1 日起，**我們不會為 Amazon Kinesis Data Analytics for SQL 應用程式提供任何錯誤修正，因為考慮到即將終止，我們將對其提供有限的支援。

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

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

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

# Amazon Kinesis Data Analytics for SQL 應用程式：運作方式
<a name="how-it-works"></a>

**注意**  
2023 年 9 月 12 日之後，如果尚未使用 Kinesis Data Analytics for SQL，您將無法使用 Kinesis Data Firehose 做為建立新應用程式的來源。如需詳細資訊，請參閱[限制](https://docs.aws.amazon.com//kinesisanalytics/latest/dev/limits.html)。

*應用程式*是 Amazon Kinesis Data Analytics 中的主要資源，您可以在帳戶中建立。您可以使用 AWS 管理主控台 或 Kinesis Data Analytics API 來建立和管理應用程式。Kinesis Data Analytics 提供 API 操作來管理應用程式。如需 API 操作的清單，請參閱 [動作](API_Operations.md)。

Kinesis Data Analytics 應用程式會持續即時讀取和處理串流資料。您可以使用 SQL 撰寫應用程式程式碼，以處理傳入的串流資料並產生輸出。然後，Kinesis Data Analytics 會將輸出寫入設定的目的地。下圖說明典型的應用程式架構。

![顯示資料分析應用程式、串流輸入來源、參考資料和應用程式輸出的圖表。](http://docs.aws.amazon.com/zh_tw/kinesisanalytics/latest/dev/images/kinesis-app.png)


每個應用程式都有名稱、描述、版本 ID 和狀態。Amazon Kinesis Data Analytics 會在您第一次建立應用程式時指派一個版本 ID。此版本 ID 會在您更新任何應用程式組態時更新。舉例來說，如果您新增輸入組態、新增或刪除參考資料來源、新增或刪除輸出組態，或更新應用程式碼，Kinesis Data Analytics 會更新目前的應用程式版本 ID。Kinesis Data Analytics 也會維護應用程式建立和上次更新的時間戳記。

除了這些基本屬性之外，每個應用程式還包含以下內容：
+ **輸入**：應用程式的串流來源。您可以選擇 Kinesis 資料串流或 Firehose 資料交付串流做為串流來源。在此輸入組態中，將串流來源映射到應用程式內輸入串流。應用程式內串流就像是持續更新的資料表，您可以在其上執行 `SELECT` 和 `INSERT SQL` 作業。在應用程式碼中，您可以建立其他應用程式內串流來儲存中繼查詢結果。

   

  在多個應用程式內輸入串流中，您可以選擇性地分割單一串流來源，以改善輸送量。如需詳細資訊，請參閱 [限制](limits.md) 及 [設定應用程式輸入](how-it-works-input.md)。

   

  在每個應用程式串流中，Amazon Kinesis Data Analytics 會提供名為 [時間戳記和 ROWTIME 欄](timestamps-rowtime-concepts.md) 的時間戳記欄。您可以在基於時間的窗口查詢中使用此資料欄。如需詳細資訊，請參閱[窗口化查詢](windowed-sql.md)。

   

  您可以選擇性地設定參考資料來源，以豐富應用程式內的輸入資料串流。此舉會產生應用程式內參考資料表。您必須將參考資料作為物件存放在 S3 儲存貯體中。Amazon Kinesis Data Analytics 會在應用程式啟動時讀取 Amazon S3 物件，並建立應用程式內資料表。如需詳細資訊，請參閱[設定應用程式輸入](how-it-works-input.md)。

   
+ **應用程式碼**：處理輸入並產生輸出的一系列 SQL 陳述式。您可以針對應用程式內串流和參考資料表撰寫 SQL 陳述式。您也可以撰寫 JOIN 查詢，以合併來自這兩個來源的資料。

   

  如需 Kinesis Data Analytics 支援之 SQL 語言元素的相關資訊，請參閱 [Amazon Kinesis Data Analytics SQL 參考資料](https://docs.aws.amazon.com/kinesisanalytics/latest/sqlref/analytics-sql-reference.html)。

   

  以最簡單的形式來說，應用程式碼可以是單一 SQL 陳述式，可從串流輸入中選取，並將結果插入串流輸出。它也可以是一系列的 SQL 陳述式，其中一個的輸出會饋送至下一個 SQL 陳述式的輸入。此外，您可以撰寫應用程式碼，將輸入串流分割成多個串流。然後，您可以套用其他查詢來處理這些串流。如需詳細資訊，請參閱[應用程式碼](how-it-works-app-code.md)。

   
+ **輸出**：在應用程式碼中，查詢結果會移至應用程式內串流。在應用程式碼中，您可以建立一或多個應用程式內串流來儲存中繼結果。然後，您可以選擇性地設定應用程式輸出，將資料保留在應用程式內串流，該串流會將應用程式的輸出 (也稱為應用程式內輸出串流) 保存在外部目的地。外部目的地可以是 Firehose 交付串流或 Kinesis 資料串流。請注意下列與這些目的地相關的資訊：
  + 您可以設定 Firehose 交付串流，將結果寫入 Amazon S3、Amazon Redshift 或 Amazon OpenSearch Service (OpenSearch Service)。

     
  + 您也可以將應用程式輸出寫入自訂目的地，而不是 Amazon S3 或 Amazon Redshift。若要這樣做，您要在輸出組態中指定 Kinesis 資料串流作為目的地。然後，您可以設定 AWS Lambda 輪詢串流並叫用 Lambda 函數。Lambda 函數程式碼會接收串流資料作為輸入。在 Lambda 函數程式碼中，您可以將傳入資料寫入自訂目的地。如需詳細資訊，請參閱[搭配使用 AWS Lambda 與 Amazon Kinesis Data Analytics](https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html)。

  如需詳細資訊，請參閱[設定應用程式輸出](how-it-works-output.md)。

此外，請注意下列事項：
+ Amazon Kinesis Data Analytics 需要許可才能讀取串流來源的記錄，並將應用程式輸出寫入外部目的地。您可以透過 IAM 角色來授予這些許可。

   
+ Amazon Kinesis Data Analytics 會為每個應用程式提供應用程式內錯誤串流。如果您的應用程式在處理特定記錄時發生問題 (例如，因為類型不符或延遲到達)，則該記錄會寫入錯誤串流。您可以設定應用程式輸出來引導 Kinesis Data Analytics，將錯誤串流資料保留到外部目的地，以供進一步評估。如需詳細資訊，請參閱[錯誤處理](error-handling.md)。

   
+ Amazon Kinesis Data Analytics 可確保應用程式輸出記錄有寫入設定的目的地。即使您遇到應用程式中斷，它也會使用「至少一次」處理和交付模式。如需詳細資訊，請參閱[將應用程式輸出保存至外部目標的交付模型](failover-checkpoint.md)。

**Topics**
+ [設定應用程式輸入](how-it-works-input.md)
+ [應用程式碼](how-it-works-app-code.md)
+ [設定應用程式輸出](how-it-works-output.md)
+ [錯誤處理](error-handling.md)
+ [自動擴展應用程式以增加輸送量](how-it-works-autoscaling.md)
+ [使用標記](how-tagging.md)