iT邦幫忙

2022 iThome 鐵人賽

DAY 14
0
Software Development

NoSQL: Not Only SQL系列 第 14

[Day 14] Key-Value Database: 以 DynamoDB 為例

  • 分享至 

  • xImage
  •  

DynamoDB 由 Amazon 在 2012 年發表,是 Key-Value Database 的一種,主打高可擴充性和高可用性,是 AWS 雲端服務的項目之一。DynamoDB 採 一致性雜湊法 將資料分片,搭配 Peer-to-Peer 的複製方式,在資料寫入時預設會建立 N 份資料在不同的節點中(這是可自訂參數,如果需要可以視需求自行調整),發生資料衝突時會以最後寫入的版本為主(last write wins)。

在 DynamoDB 中資料被儲存在 Table 中,存在 Table 中的每一筆資料為 Item,可儲存的 Item 無數量上限,Item 中又包含 Property,類似於關聯式資料庫中的 Column,不同的是它們不需要被預先定義好,且每個 Item 中除了作為 Primary Key 的 Properties 以外,其餘 Properties 都是獨立的,不必一致。

DynamoDB 有兩種定義 Primary Key (PK) 的方式,分別為 Partition KeyPartition Key + Sort Key。使用 Partition Key 作為 PK 時,DynamoDB 會使用它作為計算一致性雜湊時的依據,由計算出來的結果決定該 Item 要存放的節點;Partition Key + Sort Key 當作複合 PK 時,資料存放的節點由 Partition Key 進行計算和判斷,這時相同 Partition Key 但不同 Sort Key 的 Items 會被放在一起。不管是使用哪種 Primary Key,在同張 Table 中 PK 都不可以重複。

https://ithelp.ithome.com.tw/upload/images/20220915/20151137qED7EWBJNw.png

如同前幾天介紹 Key-Value Database 時提到的,這類資料庫的設計提供的是以 Key 查尋 Value,基本上不提供用其他方式查詢資料,因此如果在 DynamoDB 中真的需要以其他條件查詢,可以透過建立 Secondary Index 達到此目的。

對 DynamoDB 有興趣的人可以在 官方文件Developer Guide論文 查看更多資訊。


上一篇
[Day 13] Key-Value Database: 簡介
下一篇
[Day 15] Key-Value Database: 以 DynamoDB 為例
系列文
NoSQL: Not Only SQL30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言