使用附加日期信息高效存储和检索2D数组

时间:2013-11-15 09:30:56

标签: c# database storage bigdata

我正在编写一个C#程序集,它应该存储和检索基于时间的数据,因此数据由尺寸为500 x 2000的2D双数组组成。

每10到100秒,我得到一组应存储约2年的数据。 检索应该足够快,以便在几秒钟内获得一组~5000个阵列。

此外,例如,超过6个月的数据应该被删除,每小时只有一个数组可用。

现在我已经检查了几种可能性:

  • “经典”数据库,例如MS SQL。我正在创建一个数据库结构,它存储与timedata分开的数组,因此我可以查询timedata并获得我真正需要的数组。优点是非常好的处理(插入/删除/选择)数据。 问题是,您需要对数据库进行一定程度的维护,这是我无法保证的。

  • 键值数据库,例如Redis的。运行良好,(必须序列化+压缩数组),但我担心由于数组大小,这种存储不是正确的。另一件事是,它应该是一个持久存储,而不仅仅在内存中可用。

有人知道其他可能吗?

1 个答案:

答案 0 :(得分:0)

我怀疑数据的消费者会依次需要它。如果是用于处理或查看,则可能不需要同时拥有所有阵列。也许你可以实现一种数组的流式传输。 你可以这样做:

  • 将它们存储在文件系统中,逐个读取和发送文件。您可以将索引保存在SQL数据库中的文件中,其中时间戳是聚簇主索引。
  • 使用数据库(SQL很好),您可以在其中按时间戳索引和排序数组,并将数组保存为blob数据。这可以促进快速有序的读取。