

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

# Managed Service for Apache Flink：運作方式
<a name="how-it-works"></a>

Managed Service for Apache Flink 是一種全受管的 Amazon 服務，可讓您使用 Apache Flink 應用程式來處理串流資料。首先，您將 Apache Flink 應用程式編寫程式，然後建立 Managed Service for Apache Flink 應用程式。

## 設定您的 Apache Flink 應用程式
<a name="how-it-works-programming"></a>

Apache Flink 應用程式是使用 Apache Flink 框架建立的 Java 或 Scala 應用程式。您可以在本機編寫並建置 Apache Flink 應用程式。

應用程式主要使用 [DataStream API](https://nightlies.apache.org/flink/flink-docs-release-1.15/dev/datastream_api.html) 或[資料表 API](https://nightlies.apache.org/flink/flink-docs-release-1.15/dev/table/)。您也可以使用其他 Apache Flink API，但是這些 API 在建置串流應用程式時較不常用。

兩種 API 的功能如下：

### DataStream API
<a name="how-it-works-prog-datastream"></a>

Apache Flink DataStream API 程式設計模型以兩個元件為基礎：
+ **資料串流**：資料記錄之連續資料流的結構化表示。
+ **轉換運算子**：接受一或多個資料串流作為輸入，並產生一或多個資料串流作為輸出。

使用 DataStream API 建立的應用程式會執行下列動作：
+ 從資料來源 (例如 Kinesis 串流或 Amazon MSK 主題) 讀取資料。
+ 將轉換套用至資料，例如篩選、彙總或富集。
+ 將轉換後的資料寫入資料接收器。

使用 DataStream API 的應用程式可以使用 Java 或 Scala 編寫，而且可以從 Kinesis 資料串流、Amazon MSK 主題或自訂來源讀取。

應用程式使用*連接器*來處理資料。Apache Flink 使用以下類型的連接器：
+ **來源**：用於讀取外部資料的連接器。
+ **接收器**：用於寫入外部位置的連接器。
+ **運算子**：用於處理應用程式內資料的連接器。

典型的應用程式包含至少一個具有來源的資料串流、具有一或多個運算子的資料串流，以及至少一個資料接收器。

如需如何使用 DataStream API 的詳細資訊，請參閱 [檢閱 DataStream API 元件](how-datastream.md)。

### 資料表 API
<a name="how-it-works-prog-table"></a>

Apache Flink 資料表 API 程式設計模型以下列元件為基礎：
+ **資料表環境：**用於建立和託管一個或多個資料表的基礎資料的介面。
+ **資料表：**提供 SQL 資料表或檢視存取權的物件。
+ **資料表來源：**用於從外部來源 (例如 Amazon MSK 主題) 讀取資料。
+ **資料表函數：**用於轉換資料的 SQL 查詢或 API 呼叫。
+ **資料表接收器：**用於將資料寫入外部位置，例如 Amazon S3 儲存貯體。

使用資料表 API 建立的應用程式會執行下列動作：
+ 透過連線至 `Table Source` 建立 `TableEnvironment`。
+ 使用 SQL 查詢或資料表 API 函數在 `TableEnvironment` 中建立資料表。
+ 使用資料表 API 或 SQL 在資料表上執行查詢。
+ 使用資料表函數或 SQL 查詢對查詢結果套用轉換。
+ 將查詢或函數結果寫入 `Table Sink`。

使用資料表 API 的應用程式可以用 Java 或 Scala 編寫，並且可以使用 API 呼叫或 SQL 查詢來查詢資料。

如需如何使用資料表 API 的詳細資訊，請參閱 [檢閱資料表 API 元件](how-table.md)。

## 建立 Managed Service for Apache Flink 應用程式
<a name="how-it-works-app"></a>

Managed Service for Apache Flink 是一項 AWS 服務，可建立託管 Apache Flink 應用程式的環境，並提供下列設定：
+ **[使用執行期屬性](how-properties.md)：**可以提供給應用程式的參數。您可以變更這些參數，無需重新編譯應用程式的程式碼。
+ **[實作容錯能力](how-fault.md)**：應用程式如何從中斷和重新啟動中復原。
+ **[在 Amazon Managed Service for Apache Flink 中記錄和監控](monitoring-overview.md)**：應用程式如何將事件記錄到 CloudWatch Logs。
+ **[實作應用程式擴展](how-scaling.md)**：應用程式如何佈建運算資源。

您可以使用主控台或 AWS CLI建立 Managed Service for Apache Flink 應用程式。若要開始建立 Managed Service for Apache Flink 應用程式，請參閱[教學課程：開始使用 Managed Service for Apache Flink 中的 DataStream API](getting-started.md)。