使用.net进行实时数据存储和访问

时间:2010-01-15 06:48:10

标签: c# .net database real-time

有没有人有接收和更新大量数据,存储,排序和快速可视化的经验?

最好是,我正在寻找.NET解决方案,但这可能不切实际。

现在了解详情......

我每秒会收到大约1000次更新,一些更新,一些新的数据记录行。但是,它也可能非常突发,有时会有5000次更新和新行。

到那天结束时,我可能有400到500万行数据。

我必须存储它们并在UI中显示用户更新。用户界面允许用户对数据应用多个过滤器,以显示他们想要的内容。我需要更新所有记录并向用户显示这些更新。

我的视觉更新率为1 fps。

任何人对此问题有任何指导或指导?我无法想象我是第一个必须处理这样的事情的人......

首先,我会考虑某种内存数据库,但是一旦我获得足够大的数据集,它是否足够快以便在一天结束时查询更新?或者这一切都依赖于智能索引和查询?

提前致谢。

2 个答案:

答案 0 :(得分:1)

这是一个非常有趣且具有挑战性的问题。

我会接近管道设计,处理器实现排序,过滤,聚合等。管道需要一个异步(线程安全)输入缓冲区,及时处理(根据你的1fps req。一秒钟)。如果你不能这样做,你需要根据问题的性质将数据排在某个地方,磁盘或内存中。

因此,UI需要以拉式而不是推式实现,您只想每秒更新一次。

对于数据存储区,您有多种选择。使用数据库并不是一个坏主意,因为无论如何你需要数据持久化(我猜也是可查询的)。如果您使用的是ORM,您可能会发现NHibernate与其卓越的二级缓存相结合是一个不错的选择。

许多考虑因素也可能与Ayende在设计NHProf(NHibernate的实时分析器)时所做的相似。他在his blog上写了一系列关于他们的帖子。

答案 1 :(得分:-1)

可能是Oracle更合适的RDBMS解决方案。您的问题的问题在于,在这个“关键”级别,您需要处理太多变量和条件。不仅软件,而且你可以拥有的硬件(它的成本:)),连接速度,你期望的普通用户系统设置和越来越多...... 祝你好运。