我有名爲「Users」的AWS DynamoDB表,其中的哈希鍵/主鍵是包含電子郵件的「UserID」。它有兩個屬性,第一個叫做「Daily Points」,第二個叫「TimeSpendInTheApp」。現在我需要在桌面上運行一個查詢或掃描,這將使我獲得最高分的前50名用戶和在應用程序中花費最多時間的前50名用戶。現在這個查詢將每天由cron aws lambda執行一次。我正在嘗試爲此查詢或掃描找到最佳解決方案。對我而言,成本比速度/效率最重要。由於維護二級全局索引或點上的本地索引可能是昂貴的操作,因爲我必須爲這些索引分配讀取和寫入單位,這是我想要避免的。 「用戶」表格最多有100,000到150,000條記錄,平均來說它將有50,000條記錄。我最好的選擇是什麼?請建議。掃描DynamDB表或查詢輔助全局索引或本地索引(什麼是最佳解決方案)
我在想,我的第一個選擇是,我可以掃描過濾表達式上的某些點(例如5000)以上的記錄的整個表格,在此掃描後,如果找到50個或50個以上的記錄,數值並取前50條記錄。如果此掃描結果不是或結果非常少,則減小濾波器表達式值(例如3000),然後再次執行相同的掃描操作。如果篩選表達式值(例如2500)返回的記錄太多,如5000或更多,則減少篩選表達式值。這甚至是可能的,我想它也需要處理分頁。在具有50,000條記錄的表上掃描是否可取?
任何意見或建議將有所幫助。提前致謝。