2010-07-07 57 views
0

我正在爲記錄多個不同節點的數據的應用程序創建數據庫。數據記錄看起來像這樣:跨多個節點建模時間日誌記錄

  • 時間戳
  • 幾個整數值
  • 幾個浮點值
  • 也許一個字符串或兩個

每個節點分別輪詢。

我會在每10分鐘和每10秒(可變記錄間隔)之間創建一個日誌條目,所以我會查看每個節點每天10k條目以下(最多)。

我想知道如何構建數據庫以獲得最佳數據訪問/管理。我想我會想要訪問至少30天的歷史數據,並且我想爲100個節點做好準備。

最初我想創建一個包含日誌數據的單個表,並通過1:1關係將每個日誌條目鏈接到一個節點,但是恐怕我的表在這種情況下會變得太大。

是爲每個節點創建一個單獨的表一個可行的選項?

任何意見/建議將有幫助,

謝謝!

+0

一些問題:插入數據(行)。一旦插入,數據是否更新?是否有超過30天的數據被定期刪除,還是隻是永遠堆積起來?您必須能夠報告當前數據,還是可以在生成數據和將數據提供給用戶之間存在延遲(一小時,一天)?他們將如何使用數據進行大報告,趨勢分析,並將其輸入到後續系統中?對於輸入或輸出來說,亞秒級性能至關重要?這些和類似的問題將推動OLTP與倉庫設計決策。 – 2010-07-07 17:57:34

+0

答案,按問題順序:數據一旦記錄就不會更新。在30天之後,我想它會被移到一個檔案數據庫,在那裏它確實會永遠堆積(如果可能的話)。報告當前數據的能力至關重要,但我們可能會延遲幾分鐘。數據將用於報告,分析,可能會導入後續系統。秒以下的表現不是一個因素,秒的分辨率已經足夠。 – Goro 2010-07-07 20:27:31

回答

1

讀你的上述評論,我會去幾乎你先想通方式:

與所有必要的信息創建一個表。你的想法看起來很好,因爲架構很小,這對任務來說就足夠了。

在30天后歸檔數據的cron作業是個不錯的主意。如果您不想將其移動到其他數據庫(表格),則可以將其導出爲CSV(或類似文件)並將其存儲在某個地方。

有些事情你應該記住:

  • 在每個數據庫服務器,尤其是存儲
  • 出口比例如不同格式的數據足夠的空間CSV可能不是最好的主意。如果您的應用程序具有可以更容易存儲的另一種格式,則您可以使用使用另一種格式。