代码之家  ›  专栏  ›  技术社区  ›  makapuf

存储许多日志文件

  •  11
  • makapuf  · 技术社区  · 16 年前

    • 平面文本文件(具有适当的锁定),每个上传的文件一个文件,每天一个目录/生产者
    • 带文本的数据库表(出于内部原因,MySQL是首选)(pb和DB清除作为删除可能会很长!)
    • 每行文本有一条记录的数据库表

    5 回复  |  直到 16 年前
        1
  •  8
  •   kris    16 年前

    我认为MongoDB是日志记录的最佳解决方案。它非常快,例如,它插入数据的速度可能比发送数据的速度快。您可以对数据(例如,日期范围或日志级别)、索引和字段或字段组合进行有趣的查询。这也很好,因为你可以随机向日志中添加更多字段(“哎呀,我们想为其中一些添加一个堆栈跟踪字段”),而且不会造成问题(就像平面文本文件一样)。

    http://www.mongodb.org/display/DOCS/Production+Deployments ).在升级到1.0之前,我们还想添加一些功能。

        2
  •  4
  •   Igor Krivokon    16 年前

    我会选择第一个解决方案。

        3
  •  2
  •   brianegge    16 年前

    我会按照你最初的建议,每次上传写一个文件,每天写一个目录。在一天结束时,对文件进行处理,然后对目录tar.bz2进行处理。

        4
  •  1
  •   Osama Al-Maadeed    16 年前

    因为你想存储它们以便计算misc。每晚对它们进行统计,导出它们(按到达日期或第一行内容排序)。..您预计每天需要100000个文件,总共10000000行:

    我建议:

    1. 使用以下格式将所有文件存储为常规文本文件:yyyymmdd/produccerid/fileno。
    2. 加载文件后,很容易从数据库中获取统计数据,并以所需的任何格式发布。(甚至可能是另一个“统计”数据库)。您还可以生成图形。
    3. 为了节省空间,您可以压缩每日文件夹。由于它们是文本文件,因此压缩效果很好。

        5
  •  0
  •   Dima    16 年前