什麼是 Firehose
Amazon Kinesis Data Firehose(簡稱 Firehose)是 AWS 提供的一種實時數據流處理服務,主要用於收集、轉換和加載數據到各種儲存與分析平台,例如 Amazon S3、Redshift、Elasticsearch Service、Splunk 等。
Firehose 能夠自動擴展、無需管理伺服器,並提供批次處理、數據轉換和加密功能,使其成為數據管道(Data Pipeline)中關鍵的組件之一。
Firehose 的主要功能
數據流收集與傳輸
- 從各種來源(IoT 設備、應用程式日誌、監控數據)接收數據。
- 低延遲地傳輸到 Amazon S3、Amazon Redshift、Amazon OpenSearch、Splunk 等。
數據格式轉換與壓縮
- Firehose 支援 JSON → Parquet / ORC 轉換,也支援 Lambda 的動態轉換。
- 支援 Gzip、Snappy、ZIP 壓縮數據,減少儲存成本。
數據加密與安全性
- Firehose 內建 AWS KMS(Key Management Service)加密,確保數據安全。
- 可與 AWS Identity and Access Management(IAM)整合,控制存取權限。
無伺服器、自動擴展
- Firehose 無需管理基礎架構,AWS 會根據流量自動擴展吞吐量。
與 AWS 服務整合
- 可以與 Amazon CloudWatch、AWS Lambda、Kinesis Data Streams 等無縫整合,進行即時監控與處理。
Firehose 定價模式
- 資料擷取:資料傳輸到 Firehose 時,會根據擷取的資料量收費。
- 每筆至少以 5KB 為一個單位,例如 13KB 會算 15KB,然後以每 GB 計價。
- 格式轉換 (Optional):
- 每筆至少以 5KB 為一個單位,以每 GB 計價。
- Dynamic Partitioning
- JQ 或 Lambda 以計算時間計算。
- 壓縮
- 也是以每 GB 為單位。
可以使用 AWS 計算機 做基礎計算
實際情境案例
- 範例 1: IoT 事件流:假設一個智慧城市的 IoT 設備收集來的數據,如何使用 Firehose 實時將數據傳輸到 Amazon S3 進行儲存和分析。
- 範例 2: 實時日志處理:使用 Firehose 傳輸應用程式日誌到 Amazon Elasticsearch Service,用於即時的搜尋和分析。
評論