保存2D阵列(高频) - 需要的结构

时间:2012-10-04 08:02:57

标签: .net database arrays io rrd

我正在寻找将2D(int)阵列存储到本地光盘的解决方案 - 听起来不是很难,但阵列的频率和大小一直困扰着我。

数组大小为[1400] [400],在高峰时间,我们每隔50ms就会得到一个数组。

我们需要储存多少钱?至少,最后一小时的每一个数组 - 在那之后,每天只有7天的每分钟数组 - 之后,每2小时只有一个数组。

首先我想到了一个带有NHawk接口的RRD工具,但它无法存储整个数组。 第二个想法:数据库(比如MS SQL),但我觉得它要慢一点,否则你需要一台非常强大的机器。

我们的问题还有其他选择吗?

1 个答案:

答案 0 :(得分:0)

对此并不了解,但是这篇文章似乎暗示着NHawk可以存储对象数组,并认为它不会像将它们作为原始注入一样好:

http://www.codeproject.com/Articles/28763/C-Hooks-For-RRDtool

如果你不得不手动执行此操作并且上面没有帮助,你不能只是将数组存储为图像(因为int可以很容易地转换为颜色)然后将它存储在某个地方的文件系统上并放置一个进入指向文件系统的数据库?我的意思是你可以使用blob,但你会在数据库中占用空间。我不知道你想要你的解决方案有多聪明,因为每个阵列的大小都是2mb,如果那几乎每秒发生20次,你就会吃掉40mb。所以你需要可扩展的存储,所以你可能想看看使用云存储或其他东西,只是将你的文件转储到那里,只有一个薄层包装和记录条目而不是数据......

没有关于您的解决方案需要多好的更多信息(即快速黑客或大型可维护系统)。很难提出相关的解决方案。

相关问题