什麼是 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,用於即時的搜尋和分析。