在数据库中存储大量时间序列的有效方法是什么?

时间:2013-06-10 17:43:08

标签: sql database database-design nosql time-series

我需要在数据库中存储一堆时间序列,但我同时关注大小处理时间

为了减小我已经使用的尺寸,在另一个项目中,压缩/ JSON来存储整个时间序列,这在存储空间方面非常有效。 但问题是要搜索一些数据,你必须首先检索整个时间序列,解压缩并反序列化它,当然你不能使用数据库集成的查询功能,如SQL SELECT / WHERE。

即使您只需要一个点,消耗带宽即可获取数据, CPU 解压缩, RAM 即可存储...

对于之前的项目来说,这不是一个问题,因为时间序列总是被整体操作,基本上是在图表或Excel中显示,但这次我希望有一个能力来搜索数据数据库

在数据操作方面允许这种灵活性,例如使用SQL,有“标准格式”:按日期排一行,但我有两个问题:

  • 超过10年的时间序列可能有3000个值,所以它意味着3000行,所以想象一下,如果我有1M时间序列,我可以拥有3G行! 我不确定像MySQL或PostgreSQL这样的“普通”数据库能处理如此庞大的数据行,但希望我错了。
  • 我不知道DBMS是否擅长优化所有单元格所需的空间,虽然它不是“太大”但是没关系

我可以选择任何免费的数据库,所以如果它可以提供帮助,也欢迎 NoSQL

您有建议,还是更好的反馈

感谢您的任何意见。

1 个答案:

答案 0 :(得分:2)

Checkout TempoDB:http://tempo-db.com

我是联合创始人,我们构建了解决这个问题的服务。

访问模式是按时间顺序写入数据,通常不编辑它(高度不可变),然后按时间读回数据。

您将面临的基本问题是对时间戳进行索引,其中有数十亿行。您希望将查询性能与基础总数据集大小分离,后者总是至少线性增长。我们做所有这些......还有更多:)