我正在编写一个C#程序集,它应该存储和检索基于时间的数据,因此数据由尺寸为500 x 2000的2D双数组组成。
每10到100秒,我得到一组应存储约2年的数据。 检索应该足够快,以便在几秒钟内获得一组~5000个阵列。
此外,例如,超过6个月的数据应该被删除,每小时只有一个数组可用。
现在我已经检查了几种可能性:
“经典”数据库,例如MS SQL。我正在创建一个数据库结构,它存储与timedata分开的数组,因此我可以查询timedata并获得我真正需要的数组。优点是非常好的处理(插入/删除/选择)数据。 问题是,您需要对数据库进行一定程度的维护,这是我无法保证的。
键值数据库,例如Redis的。运行良好,(必须序列化+压缩数组),但我担心由于数组大小,这种存储不是正确的。另一件事是,它应该是一个持久存储,而不仅仅在内存中可用。
有人知道其他可能吗?
答案 0 :(得分:0)
我怀疑数据的消费者会依次需要它。如果是用于处理或查看,则可能不需要同时拥有所有阵列。也许你可以实现一种数组的流式传输。 你可以这样做: