【发布时间】:2010-02-26 18:08:08
【问题描述】:
对于流量统计系统,我需要存储大量关于通过我们的网关路由器发送的互联网数据包的数据集(包含时间戳、用户 ID、目标或源 ip、字节数等)。
这些数据必须存储一段时间,至少几天。也应该可以轻松检索。
有什么好的方法可以做到这一点?我已经有了一些想法:
-
为每个用户和日期创建一个文件,并将每个数据集附加到它。
- 优势:速度可能非常快,并且在文件布局一致的情况下很容易找到数据。
- 缺点:不容易看到例如所有用户的所有 UDP 流量。
-
使用数据库
- 优点:使用正确的 SQL 查询很容易找到特定数据。
- 缺点:我不确定是否有数据库引擎可以有效地处理包含数亿数据集的表。
-
也许可以将这两种方法结合起来: 为每个用户使用一个 SQLite 数据库文件。
- 优点:使用 SQL 查询对文件进行查询的用户可以轻松获取信息。
- 缺点:获取整体信息仍然很困难。
但也许其他人有一个很好的主意?
非常感谢。
【问题讨论】: