關於DynamoDB的基本知識:
- NoSQL DB
- 適合儲存document那類弱結構的資料
- 不支援cross-resource transaction control
- Transaction control只存在單一個新增/修改/刪除操作,由DynamoDB內部處理transaction.資料寫入就是寫入了,不能由application控制 transaction,不能讓多個新增/修改/刪除操作使用同一個transaction
- 資料儲存在SSD
- 以存取流量計價,而非以儲存空間計價
- 計價的單位是capacity unit,在 item size > 4K時,一個 capacity unit 等於一個guaranteed concurrent connection,超過4K就會再多用一個capacity unit,以此類推
- Capacity unit 分成 Read 跟 Write,要分開設定,計價費率也不同
- 超過設定的capacity unit的存取流量會被throttle掉
- 支援 TTL
- 支援 alarm
- 支援auto-scaling
- 當流量太大可以自動增加capacity unit
- 支援 trigger
- 所有新增/修改/刪除的事件都會trigger 到指定的AWS Lambda function,這點跟RDBMS類似
- 讀取的操作分為query跟scan
- 一個table支援無上限數量的item
- 一個table必須要設定primary key attribute(s)
- 可以用單一 attribute 作為 primary key, 稱為partition key,或是由兩個attribute組成 (partition key & sort key). primary key的值必須要unique