Tuesday, January 06, 2015

Amazon DynamoDB - Global Secondary Index (GSI)

[什麼是GSI]
Global Secondary Index跟Local Secondary Index很類似,
都是讓你可以在原有的table上選擇另一組key來幫助資料查詢.
不過GSI的彈性更大, Hash key可以是任意的attribute, 也可以跟原本的table的schema不同.
LSI只能用在原本是Hash-Range key的table,
GSI則是Hash/Hash-Range key都可以, 其所建立的index也不一定要有Range key.
但還是只能選擇單一值的attribute當key.

[對throughput的影響]
與LSI不同, GSI並不會佔用原本table的throughput,
而是需要另外指定專屬於那個index的throughput.
因為我們並不會直接寫入資料到GSI, 而是在我們新增修改刪除原始table的時候,由DynamoDB主動更新GSI的資料.
所以就是用更新的頻率來預估計寫入的throughput,
讀取的throughput就是看你的使用情境
另外, 讀取GSI的資料只能是eventually consistent哦!

ref:
- Global Secondary Index

Amazon DynamoDB:
- Local Secondary Index

No comments:

Post a Comment