为交通会计系统,我需要存储大量的数据集的关于互联网上分组发送的通过我们网路由器(含有时间戳、用户标识、目的地或来源ip字节数,等等)。

这些数据已被储存一段时间,至少几天.容易检索的应该是可能的。

什么是一个很好的方式做到这一点?我已经有了一些想法:

  • 创建一个文件针对每个用户和天的和追加的每个数据集。

    • 优势:它可能很快,数据是很容易找到给予一致的文件的布局。
    • 缺点:这不是很容易可能看到,例如所有UDP业务的所有用户。
  • 使用数据库

    • 优势:这是非常容易找到具体数据的权利SQL query.
    • 缺点:我不确定如果有一个数据库引擎,可以有效地处理表可能数以百计的数以百万计的数据集。
  • 也许可以结合两种方法:使用源码数据库文件,对于每个用户。

    • 优势:它可以很容易地获得信息对于一个用户使用SQL查询关于他的文件。
    • 缺点:得到整体的信息仍然是困难的。

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

非常感谢。

没有正确的解决方案

其他提示

首先,获取 数据仓库的工具包 你之前做什么。

你在做一个数据仓库工作,需要解决这样一个数据仓库的工作。你需要读了适当的设计图案为这样的事情。

[注:数据仓库并不意味着疯狂大或昂贵的或复杂的。这意味着明星的架构和明智的方式处理大量数据,这是从来没有更新。]

  1. SQL数据库是缓慢的,但这种缓慢是很好的为灵活的检索。

  2. 本文件系统是快。这是一个可怕的事情更新,但是你没有更新,你只是累积。

一个典型的DW的办法,为此要做到这一点。

  1. 定义"明星的架构"对于你的数据。可测量的事实和属性("尺寸")的那些事实。你的事实似乎#字节。其他的一切(地址、时间戳、用户标识,等等。) 是的一个层面,事实。

  2. 建立维数据的主维数据库。这是相对较小(IP地址,用户、新维度,等等)。 每个层面将会有所有你可能想知道的。这一增长,人们总是添加的属性方面。

  3. 创建一个"装载"的过程,需要你的记录,解决的方面(时间、地址,用户,等等。) 合并维键的措施(#的字节)。这个可以更新维度添加一个新的用户或一种新的地址。通常,你在读书实际上行,这样做查和编写实行所有适当的FK的与它们相关联。

  4. 保存这些文件加载到光盘上。这些文件不会更新。他们只是累积。使用一个简单的符号,如CSV,所以可以轻松散装载它们。

当有人想做分析,建立他们的数据市场.

为选定的IP地址或时间框架或什么的,得到所有相关事实,再加上相关联的主维数据和散装载数据市场.

你可以做所有的SQL queries你想在这个市场。大部分的查询将下放到 SELECT COUNT(*)SELECT SUM(*) 与各个 GROUP BYHAVINGWHERE 条款。

我认为正确的答案真正取决于该定义的"数据集".因为你说在你的问题你都保存单独设置的信息对每个记录;时间戳,userid,ip地、来源ip数字节等。

SQL服务器完全有能力处理这种类型的数据储存有数以百计的数以百万计的记录,没有任何真正的困难。授予这种类型的记录要求一些良好的硬件来处理它,但是它不应该太复杂。

任何其他的解决办法在我看来是要去做报告很辛苦的,并从它的声音,是一个重要的要求。

那么,你是在一个案件中,你有 很多 更写活动于阅读,您想要你写不来阻止你和你想让你的读取以"合理的快速",但不是至关重要的。这是一个典型的业务情报的使用情况。

你也许应该采用一个数据库和存储数据在作为一个"规范化"模式,以避免复杂的连接和多个插入每一个记录。想想你的表作为一个巨大的日志的文件。

在这种情况下,一些"新的和花式的"非sql数据库可能是你在找什么:他们提供宽松的酸的制约,这你应该不介意在这里(情况下的崩溃,可以松散的最后一线的日志),但它们执行更好的进入,因为他们不必同步的期刊上的磁盘在每个交易。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top