我应该如何存储极大量的流量数据以便于检索?

Chr*_*urm 6 database sqlite storage

对于流量计费系统,我需要存储大量关于通过我们的网关路由器发送的互联网数据包的数据集(包含时间戳,用户ID,目标或源IP,字节数等).

这些数据必须存储一段时间,至少几天.也应该可以轻松检索.

有什么好办法呢?我已经有了一些想法:

  • 为每个用户和每天创建一个文件,并将每个数据集附加到该文件.

    • 优点:它可能非常快,并且在给定一致的文件布局的情况下很容易找到数据.
    • 缺点:不容易看到所有用户的所有UDP流量.
  • 使用数据库

    • 优点:使用正确的SQL查询很容易找到特定数据.
    • 缺点:我不确定是否有一个数据库引擎可以有效地处理可能有数亿个数据集的表.
  • 也许可以将两种方法结合起来:为每个用户使用SQLite数据库文件.

    • 优点:在他的文件上使用SQL查询获取一个用户的信息很容易.
    • 缺点:获取整体信息仍然很困难.

但也许其他人有一个非常好的主意?

首先十分感谢.

Mit*_*ers 0

我认为正确的答案实际上取决于“数据集”的定义。正如您在问题中提到的,您正在为每条记录存储单独的信息集;时间戳、用户 ID、目标 ip、源 ip、字节数等。

SQL Server 完全有能力处理这种类型的包含数亿条记录的数据存储,没有任何实际困难。当然,这种类型的日志记录需要一些好的硬件来处理,但它不应该太复杂。

我认为任何其他解决方案都会使报告变得非常困难,而且从听起来来说这是一个重要的要求。