開始使用 Amazon Kinesis Data Streams

開始使用

Amazon Kinesis Data Streams 是已針對串流資料最佳化的可大規模擴展、高耐用性的資料擷取和處理服務。您可以設定數十萬個資料生產程式,以持續將資料放入 Kinesis 資料串流。資料可在幾毫秒內傳送到您的 Amazon Kinesis 應用程式,而這些應用程式會以資料記錄產生的順序依序接收。

Amazon Kinesis Data Streams 與多個 AWS 服務整合,包括 Amazon Kinesis Data Firehose,可用於近乎即時的轉型,並將串流資料交付到 Amazon S3 這類 AWS 資料湖;Amazon Managed Service for Apache Flink 用於受管串流處理;AWS Lambda 用於事件或記錄處理;AWS PrivateLink 用於私有連線;Amazon Cloudwatch 用於指標和日誌處理;以及 AWS KMS 用於伺服器端加密。

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

開始使用 Amazon Kinesis Data Streams

了解 Amazon Kinesis Data Streams 的最新功能

請求概念驗證或評估的支援

影片

使用 Kinesis Data Streams

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

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

主要概念

資料生產程式是一種應用程式,通常會在資料記錄產生之後立即發送到 Kinesis 資料串流。資料生產程式會為記錄指派分區索引鍵。分區索引鍵最終可用來判斷哪些碎片擷取資料串流的資料記錄。

資料取用程式是分散式 Kinesis 應用程式或 AWS 服務,可在資料產生時從串流的所有碎片擷取該資料。大部分資料取用程式會擷取碎片中最新的資料,以即時分析或處理資料。

資料串流是碎片的邏輯群組。資料串流內的碎片數量沒有限制 (如果需要更多,可請求提高限制)。資料串流預設將保留資料 24 小時,但可選擇最長保留 365 天。

碎片是 Amazon Kinesis 資料串流的基本輸送量單位。

  • 碎片是只能附加但不能修改的日誌和串流功能單位。碎片包含依照抵達時間排序的記錄。
  • 一個碎片每秒可擷取最多 1000 個資料記錄,或是 1 MB/秒。新增更多碎片可提升擷取功能。
  • 您可以透過以下方法隨著資料輸送量的改變,從串流動態新增或移除碎片:AWS 主控台、UpdateShardCount API、透過 AWS Lambda 觸發自動擴展,或使用自動調整規模公用程式
  • 取用程式使用增強型散發時,一個碎片針對每個註冊使用增強型散發的資料取用程式提供 1 MB/秒的資料輸入和 2 MB/秒的資料輸出。
  • 取用程式不使用增強型散發時,一個碎片可提供 1 MB/秒的輸入和 2 MB/秒的資料輸出,而且這個輸出會與任何未使用增強型散發的取用程式共用。
  • 建立串流時要指定所需的碎片數量,這個數量可以隨時更改。例如,您可以建立具有兩個碎片的串流。如果有 5 個資料取用程式使用增強型散發,這個串流可提供最多 20 MB/秒的總資料輸出 (2 個碎片 x 2 MB/秒 x 5 個資料取用程式)。資料取用程式不使用增強型散發時,此串流具有 2 MB/秒資料輸入和 4 MB/秒資料輸出的輸送量。在所有情況下,這個串流都能允許每秒最多 2000 個 PUT 記錄,或是 2 MB/秒的輸入,以先達到的限制為準。
  • 您可以監控 Amazon Kinesis Data Streams 中碎片層級的指標。

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

分區索引鍵通常是很實用的識別符,像是使用者 ID 或時間戳記。當資料生產程式將資料放入 Amazon Kinesis 資料串流時會指定這個值,而且對取用程式也很有用,它們可以使用分區索引鍵重播或建立與該分區索引鍵關聯的歷史記錄。這個分區索引鍵也可用來分隔和路由資料記錄到不同的串流碎片。例如,假設您的 Amazon Kinesis 資料串流有兩個碎片 (碎片 1 和碎片 2)。您可以將資料生產者設定為使用兩個分區索引鍵 (索引鍵 A 和索引鍵 B),讓所有含索引鍵 A 的資料記錄新增到碎片 1,而所有含索引鍵 B 的資料記錄則新增到碎片 2。

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

將資料放入串流

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

使用 Amazon Kinesis Data Generator 將範例資料放入 Kinesis 資料串流或 Kinesis Data Firehose。

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

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

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

執行應用程式或建立自己的應用程式

使用 AWS 服務執行全受管串流處理應用程式,或建立自己的應用程式。

Amazon Kinesis Data Firehose 是將串流資料轉換和載入資料存放區和分析工具最簡單可靠的方式。您可以使用 Kinesis 資料串流做為 Kinesis data firehose 的來源。

藉助 Amazon Managed Service for Apache Flink,您可以使用 Apache Flink 輕鬆查詢串流資料或建置串流應用程式,以取得可行的洞察,並迅速回應您的業務需求和客戶需求。您可以使用 Kinesis 資料串流作為 Amazon Managed Service for Apache Flink 應用程式的來源和目的地。

您可以訂閱 Lambda 函數,自動從 Kinesis 資料串流讀取記錄。 AWS Lambda 通常用於一個記錄到另一個記錄的 (也稱為事件型) 串流處理。

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

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

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

管理串流

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

增強型散發可讓客戶平行擴展從串流進行讀取的取用程式數量,同時保有高效能。您可以使用增強型散發和 HTTP/2 資料擷取 API,將資料散發到多個應用程式,通常可在資料抵達後的 70 毫秒內完成。

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

使用資料串流做為 Kinesis Data Firehose 的來源,可快速轉換您的資料,同時將其交付到 S3、Redshift、Elasticsearch 和 Splunk。連接 Amazon Managed Service for Apache Flink 應用程式,透過標準 SQL 即時處理串流資料,無須學習新的程式設計語言或處理架構。

Amazon Kinesis Data Streams 已與 Amazon CloudWatch 整合,因此您可針對 Amazon Kinesis 資料串流以及串流內的碎片輕鬆收集、查看和分析 CloudWatch 指標。如需 Amazon Kinesis Data Streams 指標的詳細資訊,請參閱使用 Amazon CloudWatch 監控 Amazon Kinesis

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

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

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

教學

本教學將逐步介紹如何建立 Amazon Kinesis 資料串流、將模擬股票交易資料發送至串流,以及撰寫可處理來自資料串流之資料的應用程式。 

特色簡報

特色解決方案

適用於 Amazon Kinesis 的 AWS Streaming Data 解決方案提供 AWS CloudFormation 範本,其中資料將流經產生者、串流儲存體、使用者和目的地的。為了支援多個使用案例和業務需求,該解決方案提供了四個 AWS CloudFormation 範本。這些範本設定為套用最佳實務,以使用儀表板和警報監控功能,以及保護資料安全。