開始使用 Amazon Kinesis Data Streams »
了解 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 個資料處理管道是同時且平行地在進行。
主要概念
資料生產程式
資料生產程式是一種應用程式,通常會在資料記錄產生之後立即發送到 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。
序號
序號是每個資料記錄的唯一識別符。序號是資料生產程式呼叫 PutRecord 或 PutRecords API 以新增資料到 Amazon Kinesis 資料串流時,由 Amazon Kinesis Data Streams 所指派。相同分區索引鍵的序號通常會隨時間增加;PutRecord 或 PutRecords 請求之間的時段越長,序號越大。
使用 Kinesis Data Streams
註冊 Amazon Web Services 後,就可以透過以下步驟開始使用 Amazon Kinesis Data Streams:
- 透過 Amazon Kinesis 管理主控台或 Amazon Kinesis CreateStream API 建立 Amazon Kinesis 資料串流。
- 設定資料生產程式,以持續將資料放入 Amazon Kinesis 資料串流。
- 建立 Amazon Kinesis 應用程式以讀取及處理來自 Amazon Kinesis 資料串流的資料。
將資料放入串流
資料生產程式可使用 Amazon Kinesis Data Streams API、Amazon Kinesis Producer Library (KPL) 或 Amazon Kinesis 代理器將資料放入 Amazon Kinesis 資料串流。
Amazon Kinesis Data Generator
使用 Amazon Kinesis Data Generator 將範例資料放入 Kinesis 資料串流或 Kinesis Data Firehose。
Amazon Kinesis Data Streams API
Amazon Kinesis Data Streams 提供 2 種可將資料放入 Amazon Kinesis 串流的 API:PutRecord 和 PutRecords。PutRecord 允許 API 呼叫內的單一資料記錄,而 PutRecords 允許 API 呼叫內的多個資料記錄。
Amazon Kinesis Producer Library (KPL)
Amazon Kinesis Producer Library (KPL) 是易於使用且高度可設定的程式庫,可協助您將資料放入 Amazon Kinesis 資料串流。Amazon Kinesis Producer Library (KPL) 提供一個簡單、非同步且可靠的界面,讓您能夠以最少的用戶端資源快速實現高生產程式輸送量。
Amazon Kinesis 代理器
Amazon Kinesis 代理器是預先建置的 Java 應用程式,可讓您輕鬆收集資料並將資料傳送至 Amazon Kinesis 串流。您可以在以 Linux 為基礎的伺服器環境 (例如 Web 伺服器、日誌伺服器及資料庫伺服器) 安裝代理器。代理器會監控特定檔案並持續將資料傳送至您的串流。
執行全受管串流處理應用程式或建立自己的應用程式
使用 AWS 服務執行全受管串流處理應用程式,或建立自己的應用程式。
Amazon Kinesis Data Firehose
Amazon Kinesis Data Firehose 是將串流資料轉換和載入資料存放區和分析工具最簡單可靠的方式。您可以使用 Kinesis 資料串流做為 Kinesis data firehose 的來源。
Amazon Managed Service for Apache Flink
藉助 Amazon Managed Service for Apache Flink,您可以使用 Apache Flink 輕鬆查詢串流資料或建置串流應用程式,以取得可行的洞察,並迅速回應您的業務需求和客戶需求。您可以使用 Kinesis 資料串流作為 Amazon Managed Service for Apache Flink 應用程式的來源和目的地。
AWS Lambda
您可以訂閱 Lambda 函數,自動從 Kinesis 資料串流讀取記錄。AWS Lambda 通常用於一個記錄到另一個記錄的 (也稱為事件型) 串流處理。
Amazon Kinesis Client Library (KCL)
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 Connector Library 是一個預先建置的程式庫,可協助您輕鬆整合 Amazon Kinesis 與其他 AWS 服務和第三方工具。使用 Amazon Kinesis Connector Library 時必須有 Amazon Kinesis Client Library (KCL)。此程式庫的最新版本提供連接器給 Amazon DynamoDB、Amazon Redshift, Amazon S3 和 Amazon Elasticsearch Service。此程式庫也包括各種範例連接器,還有用於執行範例的 Apache Ant 建置檔案。
Amazon Kinesis Storm Spout
Amazon Kinesis Storm Spout 是一個預先建置的程式庫,可協助您輕鬆整合 Amazon Kinesis Data Streams 與 Apache Storm。最新版本的 Amazon Kinesis Storm Spout 從 Kinesis 資料串流擷取資料,再做為 Tuple 發出。您將此 Spout 新增到 Storm 拓撲,以利用 Amazon Kinesis Data Streams 做為可靠、可擴展、串流擷取、儲存以及重新執行服務使用。
管理功能
從 Amazon VPC 以私有方式存取 Kinesis Data Streams API
您可以透過建立 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 文件。
在不犧牲效能的情況下散發 Kinesis Data Streams 資料
增強型散發可讓客戶平行擴展從串流進行讀取的取用程式數量,同時保有高效能。您可以使用增強型散發和 HTTP/2 資料擷取 API,將資料散發到多個應用程式,通常可在資料抵達後的 70 毫秒內完成。
加密 Kinesis Data Streams 資料
您可以使用伺服器端加密或用戶端加密來加密放入 Kinesis Data Streams 中的資料。伺服器端加密是一項全受管的功能,可在您將資料放入資料串流和取出時自動加密和解密資料。或者,您可以在將資料放入資料串流之前先在用戶端加密資料。若要進一步了解,請參閱 Kinesis Data Streams 常見問答集的安全性部分。
Amazon Kinesis Data Firehose 與 Amazon Managed Service for Apache Flink 整合
使用資料串流做為 Kinesis Data Firehose 的來源,可快速轉換您的資料,同時將其交付到 S3、Redshift、Elasticsearch 和 Splunk。附接 Amazon Managed Service for Apache Flink 應用程式,透過標準 SQL 即時處理串流資料,無須學習新的程式設計語言或處理架構。
Amazon CloudWatch 整合
Amazon Kinesis Data Streams 已與 Amazon CloudWatch 整合,因此您可針對 Amazon Kinesis 資料串流以及串流內的碎片輕鬆收集、查看和分析 CloudWatch 指標。如需 Amazon Kinesis Data Streams 指標的詳細資訊,請參閱 Monitoring Amazon Kinesis with Amazon CloudWatch。
AWS IAM 整合
Amazon Kinesis Data Streams 已與 AWS Identity and Access Management (IAM) 整合,這是一個讓您能夠安全地控制對 AWS 服務和使用者資源存取權限的服務。例如,您可以建立僅允許特定使用者或群組將資料放入 Amazon Kinesis 資料串流的政策。如需 Amazon Kinesis 資料串流存取管理和控制的詳細資訊,請參閱 Controlling Access to Amazon Kinesis Resources using IAM。
AWS CloudTrail 整合
Amazon Kinesis Data Streams 已與 AWS CloudTrail 整合,這是一個為您的帳戶記錄 AWS API 呼叫並提供日誌檔的服務。如需 API 呼叫日誌的詳細資訊和支援的 Amazon Kinesis API 的清單,請參閱 Logging Amazon Kinesis API calls Using AWS CloudTrail。
標記支援
您可以在 Amazon Kinesis 資料串流加上標籤,以更輕鬆地管理資源和成本。標籤可由使用者定義,並以鍵值組表示,如此有助於組織 AWS 資源。例如,您可以按照成本中心在 Amazon Kinesis 資料串流加上標籤,以便根據成本中心來分類和追蹤 Amazon Kinesis Data Streams 成本。如需詳細資訊,請參閱 Tagging Your Amazon Kinesis Data Streams。
教學
使用 Amazon Kinesis Data Streams 分析股票資料
本教學將逐步介紹如何建立 Amazon Kinesis 資料串流、將模擬股票交易資料發送至串流,以及撰寫可處理來自資料串流之資料的應用程式。
特色簡報
Analyzing Streaming Data in Real Time with Amazon Kinesis (ABD301)
Amazon Kinesis 可輕鬆地收集、處理和分析即時串流資料,讓您及時取得深入的見解並快速地對新資訊做出反應。在這場會議中,我們提供一個端對端串流資料解決方案,使用 Kinesis Streams 進行資料導入、使用 Kinesis Analytics 進行即時處理,並將 Kinesis Firehose 用於持久性。我們詳細介紹如何使用串流資料撰寫 SQL 查詢,並討論優化和監控 Kinesis Analytics 應用程式的最佳實務。最後,我們討論如何估算整個系統的成本。
研討會:Building Your First Big Data Application on AWS (ABD317)
想要提升 AWS 大數據 Web 服務的知識,並在雲端啟動您的第一個大數據應用程式? 我們引導您將大數據程序簡化成包含下列階段的資料匯流排:導入、存放、處理及視覺化。您可以使用 Amazon Athena、Amazon Kinesis、Amazon DynamoDB 和 Amazon S3 等 AWS Managed Services 建立大數據應用程式。整個過程中,我們會回顧大數據應用程式的架構設計模式,並讓您存取可在家操作的實驗室,方便您自行重建和自訂應用程式。您應自備筆記型電腦,並對 AWS 服務有一定程度的熟悉,才能在這次會議中獲得最多的收穫。
研討會:Don't Wait Until Tomorrow How to Use Streaming Data to Gain Real-time Insights into Your Business (ABD321)
近年來,連線裝置和即時資料來源的數量已呈爆炸性的成長。正因為如此,資料不斷持續產生,而生產速度正在加快。企業不能再等待數小時或數天的時間之後,才能使用這些資料。為了獲得最有價值的洞見,他們必須立即使用這些資料,以便能夠對新資訊做出快速反應。在這個研討會中,您可了解如何利用串流資料來源,以近乎即時的速度進行分析和做出反應。您會看到真實世界串流資料場景中的一些需求,而且您要使用 Amazon Kinesis、AWS Lambda 和 Amazon SNS 等服務建立一個可順利滿足這些需求的解決方案。
How Amazon Flex Uses Real-time Analytics to Deliver Packages on Time (ABD217)
加快從資料獲得可行的洞見,對於使用批次資料分析工具探索串流分析優點的所有企業和客戶而言十分重要。了解最佳實務,將您的架構從資料倉庫和資料庫擴展到即時解決方案。了解如何使用 Amazon Kinesis 獲得即時資料洞見,並將其與 Amazon Aurora、Amazon RDS、Amazon Redshift 和 Amazon S3 整合在一起。Amazon Flex 團隊描述他們如何在 Amazon 送貨司機的 Amazon Flex 行動應用程式中使用串流分析,每個月都能按時送達數百萬件包裹。他們討論一種可以從批次處理系統轉移到即時系統的架構,克服了將現有批次資料遷移到串流資料的挑戰,以及如何從即時分析中獲益。
Real-Time Streaming Applications on AWS: Use Cases and Patterns (ABD203)
特色解決方案
適用於 Amazon Kinesis 的 AWS Streaming Data 解決方案提供 AWS CloudFormation 範本,其中資料將流經產生者、串流儲存體、使用者和目的地的。為了支援多個使用案例和業務需求,該解決方案提供了四個 AWS CloudFormation 範本。這些範本設定為套用最佳實務,以使用儀表板和警報監控功能,以及保護資料安全。