本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
以下各節包含了解 Kinesis Producer Library () 並從中獲益所需的概念和術語KPL。
記錄
在本指南中,我們會區分KPL使用者記錄和 Kinesis Data Streams 記錄。當使用不帶限定詞的記錄一詞時,指的就是 KPL 使用者記錄。當我們參照 Kinesis Data Streams 記錄時,我們明確地說 Kinesis Data Streams 記錄。
KPL 使用者記錄是對使用者具有特別含意的資料 Blob。範例包括代表網站上 UI JSON 事件的 Blob,或來自 Web 伺服器的日誌項目。
Kinesis Data Streams 記錄是 Kinesis Data Streams 服務 定義的Record
資料結構執行個體API。此種記錄包含分割區索引鍵、序號和資料 Blob。
批次處理
批次處理是指對多個項目執行單一動作,而不是對每個單獨項目重複執行該動作。
就此處而言,「項目」是一筆記錄,「動作」則是將記錄傳送至 Kinesis Data Streams。在非批次情況下,您會將每個記錄放入單獨的 Kinesis Data Streams 記錄中,並提出一個HTTP請求以將其傳送至 Kinesis Data Streams。透過批次處理,每個HTTP請求可以攜帶多個記錄,而不只是一個記錄。
KPL 支援兩種批次處理方式:
-
彙整 – 將多筆記錄存放於單筆 Kinesis Data Streams 記錄中。
-
收集 – 使用 API操作
PutRecords
將多個 Kinesis Data Streams 記錄傳送到 Kinesis 資料串流中的一或多個碎片。
KPL 兩種批次處理方式的設計彼此共存並可單獨啟用或停用。預設情況下,兩者將一併啟用。
聚合
彙整是指將多筆記錄儲存於單筆 Kinesis Data Streams 記錄中。彙總可讓客戶增加每次API呼叫傳送的記錄數量,進而有效地提高生產者輸送量。
Kinesis Data Streams 碎片支援每秒多達 1,000 筆 Kinesis Data Streams 記錄或 1 MB 輸送量。Kinesis Data Streams 每秒記錄筆數限制綁定記錄在 1 KB 以內的客戶。記錄彙整使得客戶能夠將多筆記錄合併為單筆 Kinesis Data Streams 記錄。客戶可藉此提高其每一碎片傳輸量。
假設 區域 us-east-1 中目前以每秒 1,000 筆記錄的固定速率執行一個碎片,而記錄各為 512 個位元組。KPL 透過彙總,您可以將 1,000 筆記錄封裝成僅 10 筆 Kinesis Data Streams 記錄,將 減少RPS為 10 筆 (每次 50 KB)。
收集
集合是指批次處理多個 Kinesis Data Streams 記錄,並在呼叫 API操作的單一HTTP請求中傳送它們PutRecords
,而不是在自己的HTTP請求中傳送每個 Kinesis Data Streams 記錄。
與不使用集合相比,這增加了輸送量,因為它可以減少提出許多個別HTTP請求的負荷。事實上,PutRecords
本身即是專為達到此目的而設計。
收集與彙整不同,其將處理 Kinesis Data Streams 記錄群組。正在收集的 Kinesis Data Streams 記錄仍可包含來自使用者的多筆記錄。兩者間的關係可用以下視覺化方式表達:
record 0 --|
record 1 | [ Aggregation ]
... |--> Amazon Kinesis record 0 --|
... | |
record A --| |
|
... ... |
|
record K --| |
record L | | [ Collection ]
... |--> Amazon Kinesis record C --|--> PutRecords Request
... | |
record S --| |
|
... ... |
|
record AA--| |
record BB | |
... |--> Amazon Kinesis record M --|
... |
record ZZ--|