2016-02-29 21 views
3

我正在尋找關於如何最好地處理我正在處理的應用程序的數據版本的輸入。對大量數據進行實時版本化

摘要

我有改變多次的第二行基於數據。一些數據是靜態的,一些是高度可變的,一些是中間數據。我想存儲所有的增量,這樣我就可以回到任何時間點並捕獲這些值。 每個州都同樣重要。我希望能夠搜索和評估狀態,例如「給我所有的時間X有價值Y」。

打個比方:汽車

我打算用汽車作比喻來解釋我的問題:

  • 我要救車上的每一個可能的屬性(=大量的數據)
  • 汽車可以是靜態的(=一些更新),或移動(=許多更新)
  • 該車可能會得到一個重繪(=一些值可能看起來靜態的,但他們都沒有)
  • 我不在乎車是去還是從
  • 我要檢查它停止(=按屬性要求州)
  • 我想計算之間的行駛距離(=同等重要狀態)來狀態(=詢問和比較狀態)
  • 如果有人偷了車,我想知道它的時候了(=大量實時更新)

我們談論的是每車數據的演出,和不同的汽車噸。 我還想在稍後的指針上比較汽車彼此(例如粉紅色的汽車被偷得更少?),所以更多的汽車=更多的數據。

圖片時間

我畫一個快速圖表可視化更新:Picture。一旦我得到10個代表,我會嵌入它。

問題

請告訴我救我的數據的最佳方式?我正在考慮一些稀少的數據庫解決方案,其重複值的開銷較低。 我打開任何數據庫引擎或解決方案。

+0

雖然這*是一個相當廣泛和潛在的置評問題,我希望看到它仍然是開放的。設計問題的範圍已被很好地定義,我相信對未來的SO成員來說,可行的答案是有用的。物聯網將會有這種範式的許多應用,我相信我們已經看到製造商社區中可以訪問的技術。 – Prune

回答

0

存儲抵達事實的最佳方式是完全。你只需要首先看一下數據,而且他們到達的速度越快,保護它們的速度越快並且不受阻擋就越重要。

華爾街在半個世紀以來一直在做這種事情。將緩慢移動的東西 - 名稱,地址 - 放在一張表中,將短暫的東西 - 通常是價格 - 放在另一張表中。不要太擔心「重複」;首先應用KISS原則。在管理增量時,很容易把事情弄糟,而且更容易使用「增量簿記」開銷來減少「儲蓄」。另外,如果您將所有內容保存在整齊的行中,那麼任何SQL DBMS都將以高度的置信度回答時間點查詢。

相關問題