2011-05-25 65 views
0

CSV文件我有我的堅持數據兩大要求:持久性與實時更改

  1. 有它存儲在像CSV清潔和可擴展格式。
  2. 用戶可以快速保持數據修改,以避免功率/致命故障數據丟失。

第一個要求排除了大多數數據庫,通常在第二個數據庫中表現優異。

關於如何實現這個的任何建議?

我的數據大多是表格式的,所以沒有模型複雜性要求,預期的大小在數十/數十萬個記錄內。

該平臺是.Net。

+3

CSV不是堅持什麼,特別是現場修改一個很好的解決方案。這是一種數據傳輸格式。 – 2011-05-25 19:11:16

+0

另外請注意,如果做得「正確」,除了符合(休閒)眼睛還有更多的CSV:空白,報價,嵌入式報價,現場換行,數字和日期格式等。體面和強大CSV編寫器/閱讀器不僅僅是'StringBuilder.Append()'和/或'String.Split()'。編輯:對不起,我不是故意暗示你不知道,但以防萬一...... – 2011-05-26 04:59:13

+1

謝謝你提到它。我已經獲得了一些在最差條件下解析csv的經驗(unicode,延遲加載,包含堆棧跟蹤的字段等)。我發現LumenWorks csvreader能夠做到最好,速度最快。 – adams 2011-05-26 14:53:29

回答

0

爲什麼不把它存儲在數據庫中,但不是一列=一個值,而是一行=一個值? 某事像這樣:


csvId | value | name?| 
    1 | "aaa" | 
    1 | "bbb" | 

那麼它的「擴張」

+0

這是一個可行的選擇,我沒有考慮過。爲了簡單起見,我想避免依賴第三方庫進行操作的數據庫或不易移植的數據庫(沒有SqlServer,沒有像db4Objects等自定義序列化解決方案)。 例如csv/xml格式可以輕鬆操作並移植到其他平臺。 012vCsv的優點是更緊湊,分析速度更快。 – adams 2011-05-25 19:21:30

+0

您如何看待這個問題:在開始時加載所有條目。在每一個更改後,將整個記錄追加到正在運行的「日誌」中。空閒時和/或關閉合並數據文件和日誌文件時。好處是快速加載(特別是如果首先加載n個條目)快速持久的更改和純csv格式。利弊是沉重的合併價格。 – adams 2011-05-26 15:03:31