0

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

数组大小为 [1400][400],在高峰时间,我们每 50 毫秒获取一个数组。

我们需要存储多少?至少,最后一小时的每个阵列 - 之后,每分钟只有一个阵列,持续 7 天 - 之后,每小时只有一个阵列,持续 2 年。

首先我想到了一个带有 NHawk 接口的 RRD 工具,但它不能存储整个数组。第二个想法:数据库(如 MS SQL),但我认为它会减慢速度,或者你需要一台非常强大的机器。

我们的问题是否有另一种选择?

4

1 回答 1

0

不太了解它,但这篇文章似乎暗示 NHawk 可以存储对象数组,当然它不如将它们作为原始整数:

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

如果您必须手动执行此操作并且上述内容无济于事,您能否不只是将数组存储为图像(因为 int 可以很容易地转换为颜色),然后将其存储在文件系统中的某个位置并将一个条目放入数据库指向哪个文件系统?我的意思是你可以使用 blob,但你会占用数据库中的空间。我不知道您希望您的解决方案有多智能,因为每个阵列的大小都会像 2mb 一样,如果这种情况几乎每秒发生 20 次,那么每秒 40mb 你就会吃光。所以你需要可扩展的存储,所以你可能想看看使用云存储或其他东西,然后把你的文件转储在那里,只有一个薄层来包装和记录条目而不是数据......

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

于 2012-10-16T15:37:06.630 回答