我需要能夠在我的 DynamoDB 表上運行一些基于范圍的查詢,例如int_attribute > 5, 或starts_with(string_attribute, "foo"). 這些都可以通過創建全域或本地二級索引然后向這些索引提交查詢來回答。但是,運行查詢需要您還提供磁區鍵的單個值來限制查詢集。這些查詢都沒有嚴格的相等條件,因此我正在考慮為我的 Dynamo 表中的所有專案提供相同的磁區鍵,并僅使用排序鍵區分它們。我的資料集將在 10 GB 磁區大小限制內。
如果我這樣做,是否會出現任何災難性問題?
uj5u.com熱心網友回復:
是的,您可以創建一個 GSI,其中每個專案都在同一個磁區鍵下。需要注意的是,您通常會將所有這些寫入放入同一個物理磁區,每個磁區的最大更新速率為 1,000 WCU。
如果您的更新率低于此值,請繼續。如果您的更新率高于此值,您將需要遵循對 GSI 磁區鍵值進行分片的模式,以便它分布在更多磁區中。
假設 GSI 需要 10,000 個 WCU。您可以將每個專案的 GSI PK 值分配給 x 為 0 到 9 的隨機值value-{x}。然后是的,在查詢時您執行 10 次查詢并將結果自己重新組合在一起。這種方法可以根據您的需要進行擴展。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/435117.html
上一篇:使用DNS訪問EC2實體
