2012-06-08 80 views
2

我完全不熟悉數據庫,所以不能迴避問題的簡單性。我們有一個嵌入式Linux系統,需要存儲數小時內收集的數據。數據需要依次搜索,包括GPS,環境數據等數據。這些數據需要保存在可移動SSD上的文件夾中,並標記爲「任務」。幾個「任務」可以存在於單個SSD中,不應混合在一起,因爲它們需要根據用戶的判斷向外部媒體單獨複製和保存。由於停電的可能性,數據將每秒保存10次,並且需要非常強大。順序數據數據庫

數據將需要在創建的系統上進行搜索,但是在將可移動磁盤帶到另一個系統(也是Linux)後,需要在其中加載和使用數據。在過去,我們已經完成了自定義文件來存儲數據,但它似乎是一個數據庫可能是最好的選擇。像MySQL這樣的數據庫如何可移植?用戶是否可以輕鬆地將帶有數據庫的磁盤移除並將其插入新機器中使用,而無需太多努力?我們的查詢主要以時間爲基礎,因爲用戶將以收集速度10倍的速度收集數據後,可以「播放」數據。此外,我們的基本代碼是用Qt(C++)編寫的,所以我們需要以這種方式與數據庫進行交互。

回答

2

我會去與SQLite。它小而輕。它將所有數據存儲到一個文件中。您可以將文件複製或移動到另一臺計算機並在那裏閱讀。您的數據編寫者可以重新制作文件,當它檢測到今天的ssd沒有文件時爲空。

另外值得一提的是,SQLite僅在選擇少量安全關鍵軟件的情況下經歷testing。該測試套件雖然部分自動生成,但卻是驚人的1億行代碼。說到健壯性,它一點都不簡單。我相信SQLite不僅僅是一個隨機的自制數據庫實現。

SQLite用於認證航空電子AFAIK。

+0

我應該提到,在這種情況下「嵌入」並不意味着處理能力小或有限。該軟件運行在昂貴的64位工作站主板上,該主板使用雙六進制內核和大量RAM。它恰好在直升機中。 – Brad

+0

儘管如此,整個數據庫可以存放在一個文件中,您可以將它們物理地攜帶到新機器上並讀取。 –