只需按一下,即可使用 Amazon Managed Service for Apache Flink 藍圖建置端對端串流管道。進一步了解。
一般
互動式分析可協助您即時串流資料探索。使用臨機查詢或程式,可檢查出自 Amazon MSK 或 Amazon Kinesis Data Streams 的串流,將這些串流之內的資料情形予以視覺化。例如,可檢視計算窗期平均的即時指標所表現的行為,並將彙總資料傳送至自選的目的地。互動式分析也有助於串流處理應用程式的反覆開發。您所建置的查詢能隨新資料到來而持續更新。使用 Amazon Managed Service for Apache Flink Studio,您就可以將這些查詢部署為啟用自動擴展和耐久狀態備份之下持續地執行。
開始使用
在大部分情況下,Amazon Managed Service for Apache Flink 會彈性地擴展您的應用程式,以應付來源串流的資料輸送量和查詢複雜性。如需用於 Apache Flink 應用程式之服務限制的詳細資訊,請參閱《Amazon Managed Service for Apache Flink 開發人員指南》中的「限制」一節。
是,透過 Apache Flink DataStream 連接器,Amazon Managed Service for Apache Flink 應用程式可以使用 AWS Glue 結構描述登錄檔 (AWS Glue 的無伺服器功能)。您可以將 Apache Kafka、Amazon MSK 和 Amazon Kinesis Data Streams 作為匯點或來源與 Amazon Managed Service for Apache Flink 工作負載整合。請造訪《 AWS Glue 結構描述登錄檔開發人員指南》來開始使用並了解更多資訊。
主要概念
- 輸入:輸入是應用程式的串流來源。在輸入組態中,您可以將串流來源映射至資料串流。資料會從資料來源流入資料串流。您可以使用應用程式的程式碼來處理來自這些資料串流的資料,並將已處理的資料傳送至後續資料串流或目的地。若為 Apache Flink 應用程式和 Studio 筆記本,您可以將輸入新增至應用程式的程式碼內,若為 Amazon Managed Service for Apache Flink 應用程式,請透過 API 來進行。
- 應用程式的程式碼:應用程式的程式碼是用來處理輸入並產生輸出的一系列 Apache Flink 運算子。最簡單來說,應用程式的程式碼可以是單一 Apache Flink 運算子,它會讀取與串流來源關聯的資料串流,然後寫入與輸出關聯的另一個資料串流。對於 Studio 筆記本,可以是簡單的 Flink SQL 選擇查詢,結果顯示在筆記本內的上下文中。您可以使用 Apache Flink 支援的語言來為 Amazon Managed Service for Apache Flink 應用程式或 Studio 筆記本撰寫 Apache Flink 程式碼。
- 輸出:您之後可以選擇性地設定應用程式輸出,將資料保留到外部目的地。若為 Amazon Managed Service for Apache Flink 應用程式和 Studio 筆記本,您可以將輸出新增至應用程式的程式碼內。
問:支援哪種應用程式程式碼?
管理應用程式
- 《Amazon Managed Service for Apache Flink 開發人員指南》中的監控 Amazon Managed Service for Apache Flink。
- 《Amazon Managed Service for Apache Flink Studio 開發人員指南》中的監控 Amazon Managed Service for Apache Flink。
問:我要如何管理和控制 Amazon Managed Service for Apache Flink 應用程式的存取?
- 《Amazon Managed Service for Apache Flink 開發人員指南》中的授予許可。
- 《Amazon Managed Service for Apache Flink Studio 開發人員指南》中的「授予許可」。
問:Amazon Managed Service for Apache Flink 會如何擴展我的應用程式?
在大部分情況下,Amazon Managed Service for Apache Flink 會彈性地擴展您的應用程式,以應付來源串流的資料輸送量和查詢複雜性。Amazon Managed Service for Apache Flink 會以 Amazon KPU 的形式佈建容量。一個 KPU 可提供 1 個 vCPU 和 4 GB 記憶體。
定價和帳單
我們會根據您執行串流處理應用程式所使用的 Amazon KPU 數量,按時收費。單一 KPU 是由 1 個 vCPU 運算和 4 GB 記憶體組成的一個串流處理容量單位。根據處理複雜性和已處理的串流資料輸送量而定,記憶體和運算的需求會有所不同,因此 Amazon Managed Service for Apache Flink 會自動擴展您的串流處理程式所需的 KPU 數目。
建置 Apache Flink 應用程式
在您的 IDE 中使用 Apache Flink 撰寫應用程式程式碼
DataStream <GameEvent> rawEvents = env.addSource(
New KinesisStreamSource(“input_events”));
DataStream <UserPerLevel> gameStream =
rawEvents.map(event - > new UserPerLevel(event.gameMetadata.gameId,
event.gameMetadata.levelId,event.userId));
gameStream.keyBy(event -> event.gameId)
.keyBy(1)
.window(TumblingProcessingTimeWindows.of(Time.minutes(1)))
.apply(...) - > {...};
gameStream.addSink(new KinesisStreamSink("myGameStateStream"));
如果上述運算子不符合您的需求,您可以自行建立自訂運算子。如需更多範例,請參閱《Amazon Managed Service for Apache Flink 開發人員指南》中的「運算子」一節。如需完整的 Apache Flink 運算子清單,請參閱 Apache Flink 文件。
- 串流資料來源:Amazon Managed Streaming for Apache Kafka (Amazon MSK)、Amazon Kinesis Data Streams 目標或匯點:Amazon Kinesis Data Streams
- Amazon Kinesis Data Firehose、Amazon DynamoDB、Amazon Elasticsearch Service 和 Amazon S3 (透過檔案匯點整合)
問:Amazon Managed Service for Apache Flink 應用程式是否可以複寫串流和主題之間的資料?
在受管筆記本中建置 Amazon Managed Service for Apache Flink Studio 應用程式
問:如何開發 Studio 應用程式?
您可以從 Amazon Managed Service for Apache Flink Studio、Amazon Kinesis Data Streams 或 Amazon MSK 主控台開始,僅需幾個步驟即可啟動無伺服器筆記本,立即查詢資料串流並執行互動式資料分析。
互動式資料分析:您能在筆記本中以 SQL、Python 或 Scala 撰寫程式碼以與串流資料互動,查詢回應時間僅需幾秒。您可以在筆記本內使用內建視覺化功能來探索資料、檢視串流資料的即時深入解析,並開發採用 Apache Flink 技術的串流處理應用程式。
一旦程式碼準備好能作為生產應用程式執行時,僅需一個步驟即可將之轉換為串流處理應用程式,在無伺服器之下每秒處理 GB 量的資料。
串流處理應用程式:一旦準備好將程式碼提升至生產環境,您就可以在筆記本介面中點選「部署為串流處理應用程式」,或在 CLI 中發出單一命令來建置程式碼。Studio 會處理大規模執行串流處理應用程式所需的所有基礎架構管理,並啟用自動擴展和持久狀態,就像在 Amazon Managed Service for Apache Flink 應用程式中一般。
問:應用程式的程式碼看起來是什麼樣子?
您可使用 Apache Flink 的 Table API,在筆記本內以偏好的 SQL、Python 或 Scala 語言撰寫程式碼。Table API 是高階抽象化與關聯式 API,支援 SQL 功能的超集合。其提供熟悉的操作,例如選擇、篩選、聯結、依條件分組、彙總等,以及串流特定概念,例如時段化。您可使用 % 指定在筆記本一節中所使用的語言,並於語言之間切換。解譯程式是 Apache Zeppelin 外掛程式,讓您可以指定筆記本中各節的語言或資料處理引擎。您亦可建立使用者定義的函數,加以參照以提升程式碼的功能性。
問:支援哪些 SQL 操作?
您可以執行下列 SQL 操作:
- 掃描和過濾 (SELECT、WHERE)
- 彙總 (GROUP BY、GROUP BY WINDOW、HAVING)
- 集合 (UNION、UNIONALL、INTERSECT、IN、EXISTS)
- 排序 (ORDER BY、LIMIT)
- 連接 (INNER、OUTER,計時時段 – BETWEEN、AND,與時間表格連接 – 隨時間推移追蹤變化的表格)
- Top-N
- 重複資料刪除
- 模式識別
其中部分查詢,例如 GROUP BY、OUTER JOIN 和 Top-N 是串流資料的「結果更新」,換言之,會隨著處理串流資料,持續地更新結果。也支援其他 DDL 陳述式,例如 CREATE、ALTER 及 DROP。如需查詢和範例的完整清單,請參閱 Apache Flink 查詢文件。
問:支援 Python 和 Scala 的情形如何?
Apache Flink 的 Table API 可透過使用 Python 字串和 Scala 表達式的語言整合,支援 Python 和 Scala。受支援的操作與受支援的 SQL 操作非常類似,包括選擇、排序、分組、聯結、篩選和時段建立。操作和範例的完整清單都包含在我們的開發人員指南中。
問:支援哪些版本的 Apache Flink 和 Apache Zeppelin?
如需進一步瞭解支援的 Apache Flink 版本,請造訪 Amazon Managed Service for Apache Flink 版本備註頁面。此頁面也包含 Amazon Managed Service for Apache Flink 支援的 Apache Zeppelin、Apache Beam、Java、Scala、Python 和 AWS SDK 版本。
問:Amazon Managed Service for Apache Flink Studio 應用程式預設支援哪些整合?
- 資料來源:Amazon Managed Streaming for Apache Kafka (Amazon MSK)、Amazon Kinesis Data Streams、Amazon S3
- 目標或匯點:Amazon MSK、Amazon Kinesis Data Streams 及 Amazon S3
問:是否支援自訂整合?
您可以使用幾個步驟與數行 Apache Flink 程式碼 (Python、Scala 或 Java) 來設定其他整合,藉此定義具備所有 Apache Flink 支援之整合的連接器。這包含了 Amazon OpenSearch Service、Amazon ElastiCache for Redis、Amazon Aurora、Amazon Redshift、Amazon DynamoDB、Amazon Keyspaces 等目的地。在您建立或設定 Amazon Managed Service for Apache Flink Studio 應用程式時,可為這些自訂連接器附加可執行檔。
服務水準協議
問:Amazon Managed Service for Apache Flink SLA 提供什麼保證?
我們的服務水準協議 (SLA) 保證了 Amazon Managed Service for Apache Flink 每月正常運作時間百分比至少為 99.9%。
問:如何知道我是否符合 SLA 服務抵扣的資格?
如果您在同一個 AWS 區域內執行任務的多個可用區域,在任何每月帳單週期內執行任務的每月正常執行時間百分比低於 99.9%,則根據 Amazon Managed Service for Apache Flink SLA,您有資格獲得 Amazon Managed Service for Apache Flink 的 SLA 服務獎勵。如需所有 SLA 條款與條件的完整詳細資訊,以及如何提交索賠的詳細資訊,請造訪 Amazon Managed Service for Apache Flink SLA 詳細資訊頁面。
Amazon Kinesis Data Analytics 入門
造訪 Amazon Kinesis Data Analytics 定價頁面。
透過 SQL 或 Apache Flink 的逐步指南了解如何使用 Amazon Kinesis Data Analytics。
從 Amazon Kinesis Data Analytics 主控台建立您的第一個串流應用程式。