2012-02-29 65 views
4

我正在考慮長時間存儲對象上的三角洲的各種方式(30年將是常見的情況)。一種選擇是使單個增量表存儲每個對象的更改。由於delta需要長時間存儲,因此delta表會變得非常大,所以我正在考慮通過不將每個delta存儲爲一個字符串來至少將其配對。是適用於長期序列化的協議緩衝區?

增量表將主要從.NET(intlongdecimalstring等)存儲的原語。增量表看起來像

| RowIdentifier | FieldIdentifier | NewValue | Timestamp | 

是協議緩衝區(protobuf網或其他一些protobuf的實現)適合這樣長期儲存?

+0

在速度的技術進步,這些天,準備系統持續了30年聽起來相當樂觀:) – dasblinkenlight 2012-02-29 16:05:31

+0

樂觀,肯定的。但在法律上,即使在此期間遷移到新系統,業務也需要獲得可用數據。 – Nathan 2012-02-29 16:08:18

回答

3

我看不到任何它不會的原因。如果絕對必要(你知道,如果沒有現有的語言仍然工作)規範是記錄和非常簡單。

可追加使它對delta也非常有用。

所以:它會工作嗎?是

但是,如果問題是「我該嗎?」 - 如果需要更多信息。可能是,可能不是。

3

答案是No.

想想你在問什麼,以及你想要應用的解決方案。

  • Protocol Buffers的:速度
  • 您的需要:長期兼容性

的需要數據存儲的方式幹30年價值那是能夠高速讀取?可能沒有。

我認爲XML是我的第一選擇,因爲它是'明文',它是'自我描述'的縮影,將來可以被1000種不同的編程語言讀取。如果存儲是一個問題,GZIP也將有一個XML的現場日。

+2

此外,「增量表格將變得非常大」。我可能是未來學家,但我有一個瘋狂的想法,未來可用的磁盤容量也可能會增加。 – adelphus 2012-02-29 16:18:49