2011-12-01 31 views
4

我正在研究一個Python應用程序,我希望可以進行擴展以容納每秒大約150次寫入。這分散在大約50個不同的來源。很多數據記錄,數據庫或文件的體系結構?

Mongodb是一個很好的候選人嗎?我分裂寫入數據庫,或者只是爲每個源創建一個日誌文件並分別解析它們。

有關記錄大量數據的其他建議嗎?

回答

6

我要說的是,MongoDB的非常般配的日誌收集,因爲:

  1. MongoDB中有着驚人的快速寫入
  2. 日誌不是那麼重要了,所以沒關係要寬鬆一些他們的服務器故障的情況。因此,您可以運行mongodb 而不使用journaling選項以避免寫入開銷。
  3. 另外您可以使用分片來提高寫入速度,同時您可以將最舊的日誌移動到單獨收集或文件系統中。
  4. 你可以容易export數據從數據庫到json/csv。
  5. 一旦您擁有了數據庫中的所有內容,您將能夠通過查詢數據來查找您需要的日誌。

所以,我認爲mongodb完全適合日誌這樣的事情。您不需要在文件系統中管理大量日誌文件。 Mongodb爲你做這件事。

+3

+1。我認爲5)是最重要的論據:你真的想分析你的日誌。在一個更大的應用程序中,日誌文件是毫無價值的,因爲除非你跟蹤錯誤,否則你不能讀取單獨的行。我也建議不僅要記錄文本,而且還要記錄一些有意義的數據(例如用戶ID,服務器名稱,模塊ID等) – mnemosyn

+1

@mnemosyn:我同意,我正在記錄所有內容:請求詳細信息,用戶信息,異常細節等。:)。管理面板的應用程序上我的工作在默認情況下顯示今天的日誌,並有很多過濾字段,分頁等。 –

+0

@everyone謝謝你們。我設置了它,它非常無痛。我必須檢查日記功能。 – Coder1