我想构建一些东西来存储和提供时间序列数据,这些数据来自不同时间间隔的各种来源。这包括原始数据和计算数据。例如,假设我想记录每 30 秒的温度读数,以及每 5 分钟单独计算的温度预测。
我需要能够快速查询数据,并且我发现关系数据库一旦变得太大就无法正常工作。所以我正在考虑创建某种内存中的东西,但我确信它会在某个时候崩溃,所以我需要将数据保存到磁盘。所以我想知道,为什么不让整个事情都基于磁盘,对常用数据进行某种缓存呢?
但我对如何去做这件事有点不知所措。我正在想象数据源定期将更新数据集推送到服务器,使用某种字符串键/符号来识别数据是什么。服务器获取数据,然后呢?将其写入某种二进制文件?我可以每个符号写入一个文件吗?(假设超过 100k 个符号)
我认为我想要的是类似于 google 的 BigTable,但规模要小得多。基本上,一个分布式哈希表,将字符串键映射到相关数据的时间序列,具有非常快速的检索和按时间检索范围查询的能力。和多维数据的加分。
哦,这将(理想情况下)由 C#/windows 项目 - 它不需要那么高性能。