2011-12-01 54 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