我們已經有了一個windows azure表存儲系統,我們有各種實體類型在白天報告值,所以我們有以下分區和行關鍵方案:Windows Azure表訪問延遲分區鍵和行鍵選擇
大約有4000 - 5000個實體。有6種實體類型,類型大致均勻分佈。所以每個人約800人。
ParitionKey:的EntityType最新
行鍵:ENTITYID
每一行記錄值,該日期的實體。這是目前JSON序列化。
數據非常冗長。
我們會定期回顧這些分區在一個月或兩個月內的值,具體取決於我們的網站用戶想要查看的內容。
我們遇到了一個問題,如果我們想查詢一個實體的一個月的數據,我們發現我們必須通過entityId查詢31個分區鍵。
初始速度非常慢,但在第一次調用之後,結果被緩存。
不幸的是,網站的本質是會有不同數量的不同查詢,所以數據不太可能從緩存中受益。
我們顯然可以使分區更大,也許整整一週的數據並將rowKeys擴展到entityId和日期。
還有哪些其他選項對我開放,或者僅僅是Windows Azure表遭受相當高的延遲?
不知道這是否適用於您的情況,但我們在應用程序中處理它的方式是我們將數據存儲兩次。數據的第二個副本具有「PartitionKey」和「RowKey」值反轉,即RowKey值變成了PartitionKey,反之亦然。這樣,如果我們想要搜索特定的'EntityId',我們直接進入該分區並在那裏搜索。 –