0
我有一個具有以下字段的表:查詢DynamoDB中startTime和endTime字段的時間範圍?
uniqueID
startTime
endTime
value
otherData
鑑於10:00 AM今天上午11:00今天的時間範圍內,我想要檢索的所有項目,其中startTime
和上述時間之間endTime
秋天範圍。有沒有辦法有效地做到這一點?
我能想到的一個平庸的解決方案:
- 做一個GSI基於小時的一天甚至分區的哈希鍵,使
startTime
範圍鍵。 - 這樣我可以查詢
startTime
,條件爲startTime
> =今天上午10:00。然後,我必須爲今天的endTime
< = 11:00 AM添加過濾器表達式。過濾部分效率不高。
在DynamoDB中有更好的方法嗎?
2)掃描你由於數據太多,不會太好。 3)uniqueID與startTime沒有關聯,我不明白這是如何工作的?如果我想要對範圍鍵進行查詢,我還需要提供一個散列鍵,在這種情況下,它將是uniqueID。這是你的意思嗎? –
uniqueID將是hashKey,startTime將是rangeKey。 – Mircea
這仍然意味着我需要按endTime過濾嗎?這意味着它與GSI解決方案相同。實際上,GSI解決方案更有意義,因爲我將使用GSI散列密鑰將數據分區爲小時桶。 –