gpt4 book ai didi

database - 存储大量写入和高聚合的时间序列数据的最佳方式。 (约 10 亿点)

转载 作者:太空狗 更新时间:2023-10-30 01:45:38 29 4
gpt4 key购买 nike

我正在寻找一种方法来存储带有时间戳的数据。

每个时间戳可能有 1 到 10 个数据字段。

我可以使用简单的数据解决方案或 SQL 将数据存储为 (time, key, value) 吗?这与我可以存储 {time:.., key1:..., key2:...} 的 noSQL 解决方案相比如何?

它将存储大约 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,
},

谢谢。

最佳答案

为简单起见,我只制作一个时间戳表,每个测量点都有一列,整数主键在技术上是多余的,因为时间戳唯一标识一个测量点,但是通过以下方式引用特定行更容易数字而不是时间戳。对于在该时间戳期间未采用的任何测量参数,您将拥有空值,每行将占用一些额外的位(列数的基数 2,四舍五入),但您也不必进行任何连接.如果您决定以后要添加列,这是真的,但这真的不是太难,您可以制作另一个单独的表,以该表为键。

请在此处查看您的数据示例:http://www.sqlfiddle.com/#!2/e967c/4

我会建议制作一些大型虚拟数据库,以确保您使用的任何结构仍能充分发挥作用。

(time,key,value) 建议 smells喜欢EAV ,如果您计划扩展,我会避免这种情况。

关于database - 存储大量写入和高聚合的时间序列数据的最佳方式。 (约 10 亿点),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16448941/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com