我正在寻找一种存储时间戳数据的方法。
每个时间戳可能包含1到10个数据字段。
我可以使用简单的数据解决方案或SQL将数据存储为(time, key, value)
吗?如何与像mongo这样的noSQL解决方案相比,我可以存储{time:.., key1:..., key2:...}
?
它将存储大约10个数据点,每秒最多10个字段。这些数据可能会被收集长达10年,很容易汇总十亿记录。数据库应该能够帮助使用时间范围查询来绘制数据图形。
它应该能够处理繁重的写入频率,每秒约100(好吧,这不是那么高,但仍然......),同时能够处理返回大约一百万条记录的查询(也许甚至更多)
数据本身非常简单,它们只是电子测量。有些需要以高频率(~100毫秒)进行测量,有些需要每隔1分钟左右进行一次测量。
任何使用此类评论的人都可以评论他们使用的方法的优点和缺点吗?
(显然这是一个非常具体的场景,所以这绝对不是要转向什么是最好的数据库类型的问题)。
示例数据:
{ _id: Date(2013-05-08 18:48:40.078554),
V_in: 2.44,
I_in: .00988,
I_max: 0.11,
},
{_id: Date(2013-05-08 18:48:40.078325),
I_max: 0.100,
},
{ _id: Date(2001-08-09 23:48:43.083454),
V_out: 2.44,
I_in: .00988,
I_max: 0.11,
},
谢谢。
答案 0 :(得分:6)
查看一些时间序列数据库:
已安装的软件
服务
答案 1 :(得分:4)
可能值得一看的其他人:
答案 2 :(得分:2)
为简单起见,我只想为每个测量点创建一个带有列的时间戳表,并且整数主键在技术上是冗余的,因为时间戳唯一地标识了测量点,但是通过以下方式引用特定行更容易数字而不是时间戳。对于在该时间戳期间未采用的任何测量参数,您将获得空值,这将占用每行多个额外位(列数为2的基数,向上舍入),但您也不必进行任何连接。如果您决定稍后要添加列,这是事实,但这确实不太困难,您可以创建另一个单独的表来锁定此列。
请点击此处查看您的数据示例:http://www.sqlfiddle.com/#!2/e967c/4
我建议制作一些大尺寸的虚拟数据库,以确保您使用的任何结构仍能充分发挥作用。