2011-02-17 42 views
0

我在賽車中使用數據記錄系統。我正在開發一個應用程序,幫助分析這個記錄的數據,並已發現一些查詢功能,數據集,數據表和LINQ是非常有用的,即最小值,平均值等。以可變記錄頻率存儲相關的基於時間的數據

目前,我正在提取從原始格式到數據表的所有數據以及後處理該數據。我目前也在處理所有頻道以相同頻率記錄的數據,即50Hz(每秒50個採樣)。我想開始將這些記錄的數據寫入數據庫,以便它與平臺無關,並且每當我想要分析數據集時,抽取過程都不會發生。

這導致我的主要問題......有沒有人有一個最好的方式來存儲按時間相關的數據,但以不同的速率記錄的建議?我有大約200個記錄的頻道,頻率從1 Hz到500 Hz不等。

一些我已經想到了到目前爲止的方法有:

  • 使用Double.NaN對於那些實際記錄的採樣之間
  • 創建單獨的表中的值在500Hz創建用於所有數據的數據表每個記錄頻率,即一個表格爲1 Hz,另一個表格爲10 Hz,另一個表格爲500 Hz。
  • 爲每個與時間表的關係創建一個單獨的表。然後,將每個時間步驟將被編入索引,並且對於每個信道的數據的表將不依賴於固定的時間頻率

我想我傾向於索引時間戳與單獨的表中的每個信道,但我想知道是否有人有最佳做法的建議。

根據記錄,數據集的範圍可以從10 Mb到200-300 Mb,具體取決於汽車運行時間的持續時間。

我想擁有一個容納整個賽季或者至少整個比賽事件的單一數據存儲,所以這也是我正在考慮的事情。

非常感謝您的任何建議!

回答

0

您可以創建一個表是這樣的:

Channel, Timestamp, Measurement 

數據庫結構不需要依賴頻率;頻率可以由時間戳之間的時間量來確定。

這給了您更多的靈活性,因爲您可以編寫一段代碼來處理所有通道上的計算,只需給它一個通道名稱即可。

+0

羅伯特 - 感謝您的迴應。我認爲你在那裏有一些事情,因爲我實際上有3個表格,即一個用於通道,一個用於時間戳,另一個用測量結果連接它們。 – 2011-02-17 22:27:21

相關問題