如何變更 Kinesis Data Streams 中的開啟碎片數量?

1 分的閱讀內容
0

我想要變更 Amazon Kinesis Data Streams 中的開啟碎片數量,並了解進行重新碎片之後該怎麼辦。

簡短描述

碎片可能處於「開啟」、「已關閉」或「已過期」狀態。當碎片處於「開啟」狀態時,您可以從碎片中新增和擷取資料記錄。

若要變更 Kinesis Data Streams 中的開啟碎片數量,請完成下列其中一項任務:

  • 更新碎片總數。此動作會變更串流中的碎片數量。
  • 分割單一碎片。
  • 將兩個碎片合併為一個碎片。

**注意:**如果您變更 Kinesis Data Streams 中的開啟碎片數量,該變更會影響父碎片和雜湊索引鍵範圍值。

解決方法

更新碎片總數

使用 Kinesis 主控台或 API 操作來更新開啟碎片數量。當您使用 AWS 管理主控台時,Data Streams 會使用 UpdateShardCount API 對您的串流進行重新碎片。檢閱下列有關 UpdateShardCount API 的要點:

  • API 會在背景分割或合併個別碎片,以將指定串流的碎片計數更新為指定的碎片數量。UpdateShardCount 是串流層級的 API 呼叫。
  • UpdateShardCount 僅支援統一的擴展。統一擴展會為雜湊索引鍵範圍建立均等百分比的碎片。
  • UpdateShardCount 操作會將碎片數量重新調整為大小均等的特定目標值。

分割單一碎片

您可以將「熱」或「冷」碎片分割成兩個碎片

**注意:**您只能透過 API 操作分割或合併碎片。

接收資料超過預期的碎片稱為「熱」碎片。使用 SplitShard API 選擇性地分割熱碎片,以增加對準這些碎片的雜湊索引鍵的容量。如需有關管理熱碎片的詳細資訊,請參閱重新碎片的策略

您還可以使用 Amazon CloudWatch 監控 Amazon Kinesis Data Streams 服務。若要使用 CloudWatch 指標來判斷「熱」或「冷」碎片,請開啟碎片層級指標 (例如 IncomingRecordsIncomingBytes)。

將兩個碎片合併為一個碎片

您可以將「熱」或「冷」碎片分割成兩個碎片。

**注意:**您只能透過 API 操作分割或合併碎片。

接收資料比預期少得多的碎片稱為「冷」碎片。使用 MergeShards API 合併冷碎片以使用其全部容量。這是碎片層級 API 呼叫。請注意,您只能合併兩個相鄰的碎片,其中它們的雜湊索引鍵範圍的合併會形成一個沒有任何間隙的連續集。

您還可以使用 Amazon CloudWatch 監控 Amazon Kinesis Data Streams 服務。透過開啟碎片層級指標 (例如 IncomingRecordsIncomingBytes),使用 CloudWatch 指標來判斷來判斷「熱」或「冷」碎片。

其他考量事項

重新碎片操作執行的碎片或一對碎片稱為父碎片。重新碎片操作後建立的碎片稱為子碎片。父碎片還會在串流保留期間之後,從「開啟」狀態轉換為「已關閉」狀態,最後轉換為「已過期」狀態。這可能會導致子碎片指派為「開啟」狀態。如需有關父碎片轉換的詳細資訊,請參閱重新碎片後的資料路由、資料持續性和碎片狀態

重新碎片後,繼續讀取「已關閉」碎片中的資料,直到「已關閉」碎片耗盡為止。這有助於保留取用者應用程式讀取的資料順序。耗盡所有「已關閉」碎片後,從開啟的子碎片中讀取資料。Amazon Kinesis 用戶端程式庫 (KCL) 專為適應重新碎片操作而設計。首先處理重新碎片之前存在碎片中的資料。如需重新碎片操作的詳細資訊,請參閱重新碎片、擴展和平行處理

如果您變更開啟碎片數量,則某些碎片的雜湊索引鍵範圍也可能會發生變更。雜湊索引鍵範圍是針對一組已排序連續正整數碎片的可能雜湊索引鍵值範圍。該範圍包括起始和結束索引鍵值。例如,如果您建立具有五個開啟碎片的 Kinesis Data Streams,則該串流會根據雜湊索引鍵範圍劃分為 5 個均等的部分。因此,所有碎片都有 20% 作為雜湊索引鍵空間值。

例如,假設您有 X 碎片的雜湊索引鍵範圍,從碎片 1碎片 X。您可以透過進一步分割碎片或合併碎片來修改範圍:

主控台或 UpdateShardCount API

如果您將開啟碎片數量從 5 變更為 10,則子碎片的產生索引鍵空間為 10%。雜湊索引鍵範圍平均劃分成值為 10% 的所有開啟碎片。

SplitShard API

將最後一個碎片 (碎片 5) 分割成兩個碎片 (碎片 6 和碎片 7)。在分割碎片之前,父碎片的索引鍵空間為 20%。分割碎片後,子碎片 (碎片 6 和碎片 7) 的索引鍵空間為 10%。父碎片的雜湊索引鍵範圍平均劃分成兩個值為 10% 的子碎片。因此,雜湊索引鍵空間會遭分割成 20%-20%-20%-20%-10%-10%。

MergeShards API

將最後兩個碎片 (碎片 4 和碎片 5) 合併成一個碎片 (碎片 6)。父碎片 (碎片 4 和碎片 5) 的雜湊索引鍵空間為 20%。合併碎片後,子碎片 (碎片 6) 的索引鍵空間為 40%。父碎片的雜湊索引鍵範圍會加入到等於 40% 的兩個子碎片中。因此,雜湊索引鍵空間會遭分割成 20%-20%-20%-40%。

AWS 官方
AWS 官方已更新 5 個月前