DynamoDB - 基本概念



在使用 DynamoDB 之前,您必須熟悉其基本元件和生態系統。在 DynamoDB 生態系統中,您使用表、屬性和專案進行操作。表包含一組專案,專案包含一組屬性。屬性是資料的基本元素,不需要進一步分解,即欄位。

主鍵

主鍵是表專案唯一標識的方法,二級索引提供查詢靈活性。DynamoDB 流記錄修改表資料的事件。

表建立不僅需要設定名稱,還需要設定主鍵;主鍵標識表專案。沒有兩個專案共享同一個主鍵。DynamoDB 使用兩種型別的主鍵:

  • 分割槽鍵 - 此簡單主鍵由單個屬性組成,稱為“分割槽鍵”。在內部,DynamoDB 使用鍵值作為雜湊函式的輸入來確定儲存位置。

  • 分割槽鍵和排序鍵 - 此鍵稱為“複合主鍵”,由兩個屬性組成。

    • 分割槽鍵和

    • 排序鍵。

    DynamoDB 將第一個屬性應用於雜湊函式,並將具有相同分割槽鍵的專案儲存在一起;其順序由排序鍵確定。專案可以共享分割槽鍵,但不能共享排序鍵。

主鍵屬性僅允許標量(單個)值;以及字串、數字或二進位制資料型別。非鍵屬性沒有這些限制。

二級索引

這些索引允許您使用備用鍵查詢表資料。雖然 DynamoDB 不強制使用它們,但它們可以最佳化查詢。

DynamoDB 使用兩種型別的二級索引:

  • 全域性二級索引 - 此索引擁有分割槽鍵和排序鍵,它們可能與表鍵不同。

  • 區域性二級索引 - 此索引擁有與表相同的分割槽鍵,但其排序鍵不同。

API

DynamoDB 提供的 API 操作包括控制平面、資料平面(例如,建立、讀取、更新和刪除)和流的操作。在控制平面操作中,您可以使用以下工具建立和管理表:

  • CreateTable
  • DescribeTable
  • ListTables
  • UpdateTable
  • DeleteTable

在資料平面中,您可以使用以下工具執行 CRUD 操作:

建立 讀取 更新 刪除

PutItem

BatchWriteItem

GetItem

BatchGetItem

Query

Scan

UpdateItem

DeleteItem

BatchWriteItem

流操作控制表流。您可以檢視以下流工具:

  • ListStreams
  • DescribeStream
  • GetShardIterator
  • GetRecords

預置吞吐量

在表建立中,您指定預置吞吐量,這將為讀寫保留資源。您可以使用容量單位來衡量和設定吞吐量。

當應用程式超過設定的吞吐量時,請求將失敗。DynamoDB GUI 控制檯允許監控已設定和已使用的吞吐量,以便更好地進行動態配置。

讀取一致性

DynamoDB 使用最終一致性強一致性讀取來支援動態應用程式需求。最終一致性讀取並不總是提供當前資料。

強一致性讀取總是提供當前資料(裝置故障或網路問題除外)。最終一致性讀取是預設設定,需要在ConsistentRead引數中設定為 true 才能更改它。

分割槽

DynamoDB 使用分割槽進行資料儲存。這些表的儲存分配具有 SSD 後端,並自動跨區域複製。DynamoDB 管理所有分割槽任務,無需使用者參與。

在表建立中,表進入 CREATING 狀態,這將分配分割槽。當它達到 ACTIVE 狀態時,您可以執行操作。當其容量達到最大值或您更改吞吐量時,系統會更改分割槽。

廣告
© . All rights reserved.