一般問題
利用互動式分析,能即時探索串流資料。使用臨機查詢或程式,可檢查出自 Amazon MSK 或 Amazon Kinesis Data Streams 的串流,將這些串流之內的資料情形加以視覺化。例如,可檢視計算窗期平均的即時指標所表現的行為,並將彙總資料傳送至自選的目的地。互動式分析也有助於串流處理應用程式的反覆開發。您所建置的查詢能隨新資料到來而持續更新。使用 Kinesis Data Analytics Studio,可將這些查詢部署為啟用自動擴展和耐久狀態備份之下持續地執行。
使用 Apache Beam 建立您的 Kinesis Data Analytics 應用程式與開始使用 Apache Flink 非常相似。請遵循以上問題中的指示,確定依照開發人員指南中的指示安裝了在 Apache Beam 上執行應用程式所需的任何元件。請注意,僅當在 Apache Beam 上執行時,Kinesis Data Analytics 才支援 Java 開發套件。
可從 Amazon Kinesis Data Analytics 主控台建立新的 Studio 筆記本著手。一啟動筆記本,就能在 Apache Zeppelin 中開啟,立即以 SQL、Python 或 Scala 撰寫程式碼。您可利用內建整合和在使用自訂連接器之下利用各種其他來源,從 Amazon Kinesis Data Streams、Amazon MSK 及 Amazon S3 的筆記本介面以互動方式開發應用程式。可在 Flink SQL 和 Table API 中使用 Apache Flink 支援的所有運算子,執行資料串流的臨機查詢,及開發串流處理應用程式。一旦您準備好,只需幾個點按動作,就能輕鬆將程式碼提升為持續執行的串流處理應用程式,並處於自動擴展且耐久的狀態。
是。透過 Apache Flink DataStream 連接器,Amazon Kinesis Data Analytics for Apache Flink 應用程式可以使用 AWS Glue 結構描述登錄檔 (AWS Glue 的無伺服器功能)。您可以將 Apache Kafka/Amazon MSK 和 Amazon Kinesis Data Streams 作為匯點或來源與 Amazon Kinesis Data Analytics for Apache Flink 工作負載整合。請參閱結構描述登錄檔 使用者文件,以開始使用和進一步了解。
主要概念
管理應用程式
- Amazon Kinesis Data Analytics for Apache Flink 開發人員指南中的監控 Kinesis Data Analytics 一節。
- Amazon Kinesis Data Analytics for Studio 開發人員指南中的監控 Kinesis Data Analytics 一節。
- Amazon Kinesis Data Analytics for SQL 開發人員指南中的監控 Kinesis Data Analytics 一節。
- Amazon Kinesis Data Analytics for Apache Flink 開發人員指南中的授予權限一節。
- Amazon Kinesis Data Analytics Studio 開發人員指南中的授予權限一節。
- Amazon Kinesis Data Analytics for SQL 開發人員指南中的授予權限一節。
定價和帳單
我們會根據您執行串流處理應用程式所使用的 Amazon Kinesis 處理單元 (或 KPU) 數量,按時收費。單一 KPU 是由 1 個 vCPU 運算和 4 GB 記憶體組成的一個串流處理容量單位。根據處理複雜性和已處理的串流資料傳輸量而定,記憶體和運算的需求會有所不同,因此 Amazon Kinesis Data Analytics 會自動擴展您的串流處理程式所需的 KPU 數目。
在 Apache Flink 和 Apache Beam 應用程式方面,您需為每個應用程式支付額外一個 KPU 的應用程式協調費用。此外,也會針對 Apache Flink 和 Apache Beam 應用程式收取執行中應用程式儲存空間和耐久應用程式備份的費用。執行中應用程式儲存體用來在 Amazon Kinesis Data Analytics 提供狀態處理能力,並按每月每 GB 收費。耐久應用程式備份為選擇性功能並按每月每 GB 收費,為應用程式提供時間點的恢復功能。
對於 Amazon Kinesis Data Analytics Studio,在開發或互動模式下,會向您多計收一個 KPU 作為應用程式協調,另一個供互動開發使用。另外也會為執行中應用程式儲存體向您收費。不會因為耐久應用程式備份向您收費。
建置 Apache Flink 應用程式
使用 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 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 (透過檔案匯點整合)
Apache Flink 也包括其他 連接器,如 Apache Kafka、Apache Casssandra、Elasticsearch 及其他等。
是。您可以使用 Kinesis Data Analytics Apache Flink 應用程式,在 Amazon Kinesis Data Streams、Amazon MSK 和 其他系統之間複寫資料。我們的文件中提供的 範例示範了如何從一個 Amazon MSK 主題讀取及寫入另一個主題。
建置 Amazon Kinesis Data Analytics Studio 應用程式
問:如何開發 Studio 應用程式?
可從 Amazon Kinesis Data Analytics Studio、Amazon Kinesis Data Streams 或 Amazon MSK 主控台開始,以幾個點按動作即可啟動無伺服器筆記本,立即查詢資料串流以及執行互動式資料分析。
互動式資料分析:您能在筆記本中以 SQL、Python 或 Scala 撰寫程式碼以與串流資料互動,查詢回應時間僅需幾秒。您可從筆記本之內使用內建視覺化探索資料,檢視串流資料的即時洞見,輕鬆開發採用 Apache Flink 技術的串流處理應用程式。
一旦程式碼準備好能作為生產應用程式執行時,您按一下即可將之轉換為串流處理應用程式,在無伺服器之下每秒處理 GB 量的資料。
串流處理應用程式:一旦您準備好可將程式碼提升以進行生產時,即可用點按方式建置程式碼。您可按一下筆記本介面中的 Deploy as stream processing application (部署為串流處理應用程式) 或在 CLI 中發出一個命令,Studio 就會為您處理具規模性地執行串流處理應用程式所需的一切基礎設施管理,並且啟用自動擴展和耐久狀態,如同在 Amazon Kinesis Data Analytics 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、與暫存資料表聯結 – 隨時間追蹤變更的資料表)、前 N 個、重複資料刪除和模式辨識。其中部分查詢,例如 GROUP BY、OUTER JOIN 和前 N 個是串流資料的「結果更新」,換言之,會隨著處理串流資料,持續地更新結果。也支援其他 DDL 陳述式,例如 CREATE、ALTER 及 DROP。如需完整查詢和範例清單,請參閱 https://ci.apache.org/projects/flink/flink-docs-release-1.11/dev/table/sql/queries.html。
問:支援 Python 和 Scala 的情形如何?
Apache Flink 的 Table API 可透過使用 Python 字串和 Scala 表達式的語言整合,支援 Python 和 Scala。受支援的操作與受支援的 SQL 操作非常類似,包括選擇、排序、分組、聯結、篩選和時段建立。 操作和範例的完整清單都包含在我們的文件中,請見此處。
問:支援哪些版本的 Apache Flink 和 Apache Zeppelin?
若要進一步了解支援的 Apache Flink 版本,請參閱 Amazon Kinesis Data Analytics 版本備註頁面。本頁面也包含 Kinesis Data Analytics 支援的 Apache Zeppelin、Apache Beam、Java、Python 和 AWS SDK 版本。
問:Kinesis Data Analytics 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 等。在您建立或設定 Studio 應用程式時,可為這些自訂連接器附加可執行檔。
問:應該用 Kinesis Data Analytics Studio 還是 Kinesis Data Analytics SQL 進行開發?
我們建議從 Kinesis Data Analytics Studio 著手,因其能僅以一次處理,提供更全面的串流處理經驗。Kinesis Data Analytics Studio 可供您以自選的語言 (SQL、Python 和 Scala) 進行串流處理應用程式的開發、擴展至每秒 GB 級處理速度、支援數小時甚至數日的長時間執行運算、能在數秒內執行程式碼更新、可處理多重輸入串流,並且適用於各種輸入串流,包括 Amazon Kinesis Data Streams 和 Amazon MSK。
建置 Kinesis Data Analytics SQL 應用程式
對於 SQL 應用程式的新專案,我們建議以使用新 Kinesis Data Analytics Studio 優於 Kinesis Data Analytics。Kinesis Data Analytics Studio 兼具易用與進階分析功能,讓您幾分鐘內建置出複雜的串流處理應用程式。
為 SQL 應用程式設定輸入
為 SQL 應用程式撰寫應用程式程式碼
- 一律在 INSERT 陳述式內使用 SELECT 陳述式。當您選取列時,會將結果插入另一個應用程式內串流。
- 在幫浦內使用 INSERT 陳述式。
- 您可以使用幫浦讓 INSERT 陳述式持續並寫入應用程式內串流。
CREATE OR REPLACE STREAM "DESTINATION_SQL_STREAM" (
ticker_symbol VARCHAR(4),
change DOUBLE,
price DOUBLE);
CREATE OR REPLACE PUMP "STREAM_PUMP" AS
INSERT INTO "DESTINATION_SQL_STREAM"
SELECT STREAM ticker_symbol, change, price
FROM "SOURCE_SQL_STREAM_001";
在 SQL 應用程式中設定目標
與其他串流處理解決方案的比較
服務水準協議
問:Amazon Kinesis Data Analytics SLA 提供哪些保證?
Amazon Kinesis Data Analytics SLA 保證 Amazon Kinesis Data Analytics 每個月正常執行時間百分比至少為 99.9%。
問:如何知道我是否符合 SLA 服務抵扣的資格?
如果您在一個以上的可用區域內執行某項任務,而在任何一個月的結算週期內,同一個區域每個月的正常執行時間百分比低於 99.9%,則根據 Amazon Kinesis Data Analytics SLA,您有資格獲得 Amazon Kinesis Data Analytics 的 SLA 積分。如需 SLA 所有條款與條件的完整詳細資訊,以及如何提交索賠的詳細資訊,請參閱 Amazon Kinesis SLA 詳細資訊頁面。