我們正在使用AWS DynamoDB來存儲應用程序日誌。來自我們系統中多個組件的日誌將被存儲在這裏。我們期待着大量的寫入,只有最少的讀取次數。DynamoDB表結構
我們用於寫入DynamoDB的客戶端爲分區鍵生成UUID,但是使用它會使實際搜索變得困難。
最突出的搜索情況是,
- 搜索基於構件/日期/時間
- 搜索基礎上的JobId /文件名
- 搜索基於日誌級別
從到目前爲止,我所讀到的使用分區密鑰的UUID並不適合我們的情況。我目前正在考慮使用/作爲我們的分區鍵和ISO 8601時間戳作爲我們的排序鍵。這聽起來合理/廣泛使用的設置這樣的用例嗎?
如果不善意建議可以使用的替代品。
感謝@Prague提供的信息,我們正在尋找ES來存儲我們的日誌,但是這給出了我們選擇的方法的一些想法。 – M22an
請注意,如果您使用UUID作爲hashkey,那麼使用timestamp作爲排序鍵是毫無意義的,因爲您無法通過DynamoDB中的sortkey進行搜索:您還需要提供散列鍵。相反,嘗試使用全局二級索引來查詢需求,因爲它們更加靈活:散列鍵不必是唯一的,並且可以是稀疏的。 –