3

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

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

因此,即使您只需要一点,您也会消耗带宽来获取数据、CPU来解压缩、RAM来存储......

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

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

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

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

你有什么建议,或者更好的一些反馈

感谢您的任何意见。

4

1 回答 1

3

结帐 TempoDB:http ://tempo-db.com

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

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

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

于 2013-06-12T20:35:20.173 回答