1

我對數據模型的建模有點新,因爲他們使用 GAE進行高效查詢,但對RDBMS有豐富的知識。App引擎數據建模問題

問題出在這裏: 我得到了大約一百萬個術語(字符串),並且需要查詢和比較 相關數值作爲每週數據點的時間序列。 可以把它看作X軸上的時間曲線圖和一個線性Y軸 ,顯示數字度量。

到目前爲止,我在 數據存儲得到每學期和天離散數據點,我正在尋找一種方法來聚集通過 一週該數據爲和存儲數據,這樣我可以查詢數據存儲有效。 我想預先計算每一個術語數時間序列不同 長度的(4周,5周,6周等)的,並存儲每個條目 作爲{term, start_week, [time series]}

隨着RDBMS我可以很容易地通過周組和創建數據序列以編程方式,無論是作爲存儲過程還是應用程序後端。由於GAE限制和BigTable作爲高度分佈式系統的性質,這不是一種選擇。

任何想法,高度讚賞!

回答

2

你正在走向的方法似乎是合理的,但這一切都取決於你需要執行的查詢類型。假設您需要通過名稱(字符串)和星期查找的時間序列,您通常希望之間,比如獲取,連續1和100週數據,我建議如下:

  • 有一個實體對於每個學期的每週價值數據,如你所建議的那樣
  • 不是將數據「鬆散」地存儲起來並定期聚合,而是直接在這種形式中存儲新的點。每當你收到一個新的數據點,如果它是一週的第一個點,創建一個新的實體。如果不是,則檢索當週的現有實體並將其數據追加到它。
  • 當您想繪製數據時,查詢所需的術語和時間段,並按時間順序獲取結果。
+0

問題是:我不得不查詢一個時間序列的一個術語,但數百個術語。該查詢然後需要很長時間才能完成。 – poezn 2010-08-12 18:07:37

+0

你能詳細說明你的用例嗎?如果您知道術語和時間段,只要正確使用密鑰名稱,就可以爲單個批量數據存儲獲取所需的所有記錄,這比許多查詢效率更高。 – 2010-08-13 08:29:16