Amazon Kinesis Streams 可讓您建置自訂的應用程式以處理或分析串流資料,滿足您的專業需求。您可以設定數十萬個資料生產者以持續將資料放入 Amazon Kinesis 串流,例如,網站點擊流、應用程式日誌及社交媒體饋送的資料。您的 Amazon Kinesis 應用程式在 1 秒鐘內就可以從串流讀取和處理資料。

在以下架構圖中,會使用 Amazon Kinesis Streams 作為大數據解決方案的閘道。來自各種來源的資料會放入 Amazon Kinesis 串流中,然後不同的 Amazon Kinesis 應用程式會使用這些串流中的資料。在這個範例中,有一個應用程式 (黃色) 正在對串流資料執行即時儀表板。另一個應用程式 (紅色) 則執行簡易的彙總並將處理過的資料發送到 Amazon S3。Amazon S3 內的資料會經過進一步處理並存放於 Amazon Redshift 以進行複雜的分析。第三個應用程式 (綠色) 會將原始資料發送到 Amazon S3,這些資料接著會存檔至 Amazon Glacier 以降低長期儲存的成本。要注意的是,這 3 個資料處理管道是同時且平行地在進行。Amazon Kinesis Streams 可在不影響效能的情況下,讓資料串流的消耗者數量達到您的解決方案需求。

kinesis-architecture-crop

碎片是 Amazon Kinesis 串流傳輸的基本輸送量單位。一個碎片提供 1 MB/秒資料輸入和 2 MB/秒資料輸出容量。一個碎片最高可支援每秒 1000 次 PUT 記錄。建立串流時,您要指定所需的碎片數量。例如,您可以建立具有兩個碎片的串流。此串流具有 2 MB/秒資料輸入和 4 MB/秒資料輸出的輸送量,並允許每秒最多 2000 個 PUT 記錄。您可以監控 Amazon Kinesis Streams 中碎片層級的指標,並且透過重新碎片串流,隨著資料輸送量的變化,在串流中動態新增或移除碎片。

記錄是儲存在 Amazon Kinesis 串流中的資料單位。記錄由序號、分區索引鍵和資料 Blob 組成。資料 Blob 是您的資料生產者新增到串流的重要資料。資料 Blob 的大小上限 (Base64 編碼後的資料承載) 是 1 百萬位元組 (MB)。

分區索引鍵可用來分隔和路由資料記錄到不同的串流碎片。分區索引鍵是由您的資料生產者在將資料放入 Amazon Kinesis 串流時指定。例如,假設您的 Amazon Kinesis 串流有兩個碎片 (碎片 1 和碎片 2)。您可以將資料生產者設定為使用兩個分區索引鍵 (索引鍵 A 和索引鍵 B),讓所有含索引鍵 A 的資料記錄新增到碎片 1,而所有含索引鍵 B 的資料記錄則新增到碎片 2。

序號是每個資料記錄的唯一識別符。序號是資料生產者呼叫 PutRecordPutRecords API 以新增資料到 Amazon Kinesis Streams時,由 Amazon Kinesis Streams 所指派。相同分區索引鍵的序號通常會隨時間增加;PutRecordPutRecords 請求之間的時間越長,序號越大。


註冊 Amazon Web Services 後,就可以透過以下步驟開始使用 Amazon Kinesis Streams:

  • 透過 Amazon Kinesis 管理主控台或 Amazon Kinesis CreateStream API 建立 Amazon Kinesis 串流。
  • 設定資料生產者以持續將資料放入 Amazon Kinesis 串流。
  • 建置 Amazon Kinesis 應用程式以讀取及處理來自 Amazon Kinesis 串流的資料。

資料生產者可使用 Amazon Kinesis Streams API、Amazon Kinesis Producer Library (KPL)Amazon Kinesis 代理器將資料放入 Amazon Kinesis 串流。

 

Amazon Kinesis Streams 提供 2 種可將資料放入 Amazon Kinesis Streams的 API:PutRecord PutRecordsPutRecord 允許 API 呼叫內的單一資料記錄,而 PutRecords 允許 API 呼叫內的多個資料記錄。

Amazon Kinesis Producer Library (KPL) 是易於使用且高度可設定的程式庫,可協助您將資料放入 Amazon Kinesis 串流。Amazon Kinesis Producer Library (KPL) 提供一個簡單、非同步且可靠的界面,讓您能夠以最少的用戶端資源快速實現高生產者輸送量。

Amazon Kinesis 代理器是預先建置的 Java 應用程式,可讓您輕鬆收集資料並將資料傳送至 Amazon Kinesis 串流。您可以在以 Linux 為基礎的伺服器環境 (例如 Web 伺服器、日誌伺服器及資料庫伺服器) 安裝代理器。代理器會監控特定檔案並持續將資料傳送至您的串流。


Amazon Kinesis 應用程式是讀取和處理來自 Amazon Kinesis 串流資料的資料消費者。您可以使用 Amazon Kinesis APIAmazon Kinesis Client Library (KCL) 建置 Amazon Kinesis 應用程式。

Amazon Kinesis Client Library (KCL) 是一個預先建置的程式庫,可協助您輕鬆建置 Amazon Kinesis 應用程式,以用於讀取和處理來自 Amazon Kinesis 串流的資料。KCL 可處理複雜的問題,例如適應串流量的變化、負載平衡串流資料、協調分散式服務和利用容錯能力處理資料。KCL 讓您在建置 Amazon Kinesis 應用程式時能專注在商業邏輯。

Amazon Kinesis Connector Library 是一個預先建置的程式庫,可協助您輕鬆整合 Amazon Kinesis 與其他 AWS 服務和第三方工具。使用 Amazon Kinesis Connector Library 時必須有 Amazon Kinesis Client Library (KCL)。此程式庫的最新版本提供連接器給 Amazon DynamoDBAmazon RedshiftAmazon S3Elasticsearch。此程式庫也包括各種範例連接器,還有用於執行範例的 Apache Ant 建置檔案。

Amazon Kinesis Storm Spout 是一個預先建置的程式庫,可協助您輕鬆整合 Amazon Kinesis Streams與 Apache Storm。最新版本的 Amazon Kinesis Storm Spout 從 Amazon Kinesis 串流擷取資料,再做為 Tuple 發出。您將此 Spout 新增到 Storm 拓撲,以利用 Amazon Kinesis Streams做為可靠、可擴展、串流擷取、儲存以及重新執行服務使用。


Amazon Kinesis Streams 已與 Amazon CloudWatch 整合,因此您可針對 Amazon Kinesis 串流以及串流內的碎片來收集、查看和分析 CloudWatch 指標。如需 Amazon Kinesis Streams 指標的詳細資訊,請參閱 Monitoring Amazon Kinesis with Amazon CloudWatch

Amazon Kinesis Streams 已與 AWS Identity and Access Management (IAM) 整合,這是一個讓您能夠安全地控制對 AWS 服務和使用者資源存取權限的服務。例如,您可以建立僅允許特定使用者或群組將資料放入 Amazon Kinesis 串流的政策。如需 Amazon Kinesis 串流存取管理和控制的詳細資訊,請參閱 Controlling Access to Amazon Kinesis Resources using IAM

Amazon Kinesis Streams 已與 AWS CloudTrail 整合,這是一個為您的帳戶記錄 AWS API 呼叫並提供日誌檔的服務。如需 API 呼叫日誌的詳細資訊和支援的 Amazon Kinesis API 的清單,請參閱 Logging Amazon Kinesis API calls Using AWS CloudTrail

您可以透過建立 VPC 端點,從 Amazon Virtual Private Cloud (VPC) 以私有方式存取 Kinesis Streams API。使用 VPC 端點,AWS 網路會處理 VPC 和 Kinesis Streams 之間的路由,無須使用網際網路閘道、NAT 閘道或 VPN 連接。Kinesis Streams 使用的最新一代 VPC 端點採用 AWS PrivateLink 技術,這項技術可使用彈性網路界面 (ENI) 搭配 VPC 的私有 IP 啟用 AWS 服務間的私有連線。如需相關的詳細資訊,請參閱 AWS PrivateLink 文件

您可以使用伺服器端加密或用戶端加密來加密放入 Kinesis Stream 中的資料。伺服器端加密是一項全受管的功能,可在您將資料放入串流和取出時自動加密和解密資料。或者,您可以在將資料放入串流之前先在用戶端加密資料。要進一步了解,請參閱 Kinesis Streams 常見問答集的安全性部分。

Amazon Kinesis 可讓您為 Amazon Kinesis Streams 加上標籤,以更輕鬆地管理資源和成本。標籤可由使用者定義,並以鍵值組表示,如此有助於組織 AWS 資源。例如,您可以按照成本中心在 Amazon Kinesis Streams 加上標籤,以便根據成本中心來分類和追蹤 Amazon Kinesis 成本。如需詳細資訊,請參閱 Tagging Your Amazon Kinesis Streams