AWS Kinesis 流式資料處理
使用 AWS Kinesis 進行資料處理
AWS Kinesis 是一項流式服務,允許您即時處理大量資料。
流是指高速的資料傳輸。
它使您能夠快速響應重要資料。
對於下游處理,流還包括一個非同步資料緩衝區。
資料緩衝區是在資料移動時儲存在記憶體中的臨時資料儲存。
AWS Kinesis 具有三個獨立的資料處理服務:
- Kinesis Data Streams
- Kinesis Data Firehose
- Kinesis Data Analytics
所有這些都完全託管且無伺服器。
使用 AWS Kinesis Video 進行資料處理
W3schools.com 與 Amazon Web Services 合作,為我們的學生提供數字培訓內容。
Kinesis Data Streams
AWS Kinesis 中有兩種服務:
- 生產者
- 消費者
生產者向流貢獻資料記錄。
消費者接收並處理這些資料記錄。
生產者可以是:
- Kinesis Producer Library (KPL)
- AWS SDK
- 第三方工具
消費者可以是:
- 使用 Kinesis Client Library (KCL) 建立的應用程式
- AWS Lambda 函式
- 其他流
Kinesis Data Streams 限制
Kinesis Data Stream 有其限制。
每秒可寫入 1000 條記錄。
每秒可寫入 1 MB 資料。
每秒可讀取最多 10000 條記錄。
每秒可讀取最多 2 MB 資料。
Kinesis Data Streams 擴容
Kinesis Data Streams 服務透過新增資料分片來擴容。
資料分片是更大資料集的一部分。
每個分片包含按唯一順序排列的資料記錄。
Kinesis 服務為每條資料記錄分配一個順序號。
聚合
您可以利用分片或聚合來增加每次 API 呼叫傳遞的記錄數量。
聚合是將多個記錄儲存在 Kinesis Data Stream 記錄中的過程。
要使用記錄中的資料,使用者必須先對其進行解聚合。
您可以使用 Kinesis 聚合庫來處理資料聚合和解聚合。
Kinesis Data Firehose
使用 Kinesis Data Firehouse,您無需管理分片或編寫消費者應用程式。
Kinesis Data Firehouse 會自動將資料傳送到指定的目的地。
它還可以配置為在傳送資料之前對其進行編輯。
Kinesis Data Firehouse 是處理海量資料的絕佳選擇。
這是 Kinesis Data Firehouse 工作原理的示例:
- 客戶端透過 API Gateway 函式連線到 Kinesis Data Firehose 流。
- 資料透過 API Gateway 載入到 Kinesis Data Firehose 流。
- 原始資料記錄透過 Kinesis Data Firehose 的介面傳送到 Amazon S3。
- Amazon S3 呼叫一個 Lambda 函式,該函式在儲存資料之前對其進行修改。
- 資料寫入 DynamoDB。
Kinesis Data Analytics
在持久化資料之前,Kinesis Data Analytics 允許您進行即時 SQL 分析。
Kinesis Data Analytics 專為近乎即時查詢而設計。
它還允許您使用 Lambda 函式在執行 SQL 查詢之前預處理資料。
您可以更改資料格式、過濾資料或對其進行增強。
Kinesis Data Analytics 可以將資料輸出到 Kinesis Data Stream 和 Kinesis Data Firehose。
相關閱讀
Kinesis Data Streams 開發者指南Amazon Kinesis Data Streams 術語和概念
Kinesis Data Firehose 開發者指南
Amazon Kinesis Data Firehose 資料轉換
Amazon Kinesis Data Analytics for SQL Applications 開發者指南
Kinesis Data Analytics:使用 Lambda 函式預處理資料