棘手的問題 - 但我會分享我的經驗,讓你決定是否有幫助。
如果您需要從處理源文件保留的輸出,你用它來產生多個意見所得到的數據,那麼你可能考慮使用的嵌入式數據庫。原因使用嵌入式數據庫(恕我直言):
- 要利用RDBMS功能(ACID,關係,外鍵約束,觸發器,聚集......)
- 爲了更容易導出以靈活的方式
- 數據要允許訪問您處理的數據對外部客戶端(稱爲格式)
- 爲了讓數據更靈活的轉換觀看
因素做準備時,你在作出決定時應該考慮:
- 什麼是目標平臺(s)(windows,linux,android,iPhone,PDA)?
- 什麼技術基礎? (Java,.Net,C,C++,...)
- 預期或需要設計哪些資源約束? (RAM,CPU,HD空間)
- 需要考慮哪些操作行爲(連接到網絡,斷開連接)?
在典型的現代桌面上,有足夠的備用容量來處理大多數操作。在eeePC,PDA和其他便攜式設備上,可能不是。在嵌入式設備上,很可能不是。您使用的語言可能具有幫助進行內存管理的功能 - 也許您可以利用這些功能。連接性方面(有狀態/無狀態/等)可能會影響您在任何給定點上確實需要保留在內存中的多少。
如果你正在處理真的很大的文件,那麼你可能會考慮採用流處理方式,這樣你一次只能在內存中佔用一小部分數據 - 但這並不意味着你應該或者不應該)使用嵌入式數據庫。直的文本或二進制文件也可以工作(基於記錄,基於列,基於行...)。
有些數據庫將允許您在數據存儲後與數據進行交互的更有效方式 - 這取決於引擎。我發現如果你的基本文件需要很多聚合(我的意思是你最初從最初的源文件生成的文件),那麼RDBMS引擎對簡化你的邏輯非常有幫助。其他選項包括構建基本變換,然後添加其他步驟以將其處理到每個特定視圖的其他臨時存儲中,然後再處理它們以呈現到目標(報告?)格式。
只是一個意識流的反應 - 希望有一點幫助。
編輯:
根據您的進一步澄清,我不知道一個嵌入式數據庫是要採取的方向。你或者需要做一些簡化的假設來渲染你的圖或者像分割一樣調查方法(渲染圖的部分,然後在渲染下一部分之前緩存輸出)。
我的答案沒有解決您的問題嗎? – 2010-07-01 18:34:56