我是相當新的DynamoDB,目前我們正在考慮使用DynamoDB現有項目遷移到無服務器應用程序,我們希望從關係數據庫管理系統數據庫適應以下設置:DynamoDB查詢與多個標籤
表:
- 項目(專案編號)
- 文件(寫到FileID,專案編號,文件名) 個
- 標籤(寫到FileID,標籤)
我們希望與DynamoDB查詢來獲取所有文件特定項目(由專案編號)與一個或多個標籤(按標籤)。在關係數據庫管理系統這個查詢將是簡單的東西,如:
SELECT * FROM Files JOIN Tags ON Tags.FileID = Files.FileID WHERE Files.ProjectID = ?PROJECT AND Tags.Tag = ?TAG_1 OR ?TAG_2 ...
目前,我們有以下DynamoDB設置(但它仍然可以更改):
- 項目(專案編號[ HashKey],...)
- 文件(專案編號[HashKey],寫到FileID [RangeKey],...)
也請考慮該項目耳鼻喉科的數量ries是巨大的(介於1000 - 30000之間),也是每個項目的文件數量(介於50到100.000之間),查詢速度應該很快。
如何使用DynamoDB查詢實現這一點,最好不使用過濾器表達式,因爲它們在數據選擇之後應用?如果表文件可能具有StringSet標記作爲列,但我想這不能用於高效的DynamoDB查詢(因此不使用DynamoDB掃描),因爲DynamoDB-indices只能是String類型,二進制和數字,而不是類型的StringSet?這可能是Global Secondary Index(GSI)的適用用例嗎?