首页 > 解决方案 > 时间序列数据存储:RDBMS 与 NoSQL

问题描述

这些天来,我面临着存储一些时间序列数据的问题。

该数据取自工业机器:对于每个作业(大约每小时 3 个,24/24 小时),软件记录:

振动数据以非常高的频率(> 10 kHz)采集,并导致非常庞大的内存需求。这个问题使我的公司评估了一些有效存储这些数据的可能性。

插入不会很频繁(当机器不工作时,可能每天 1 或 2 次)。读取可能会非常频繁(另一个软件将检索数据以进行绘图和分析)。

目前,单个节点将用于存储数据,所以我不想(暂时)考虑分区和并行化问题。

我应该更喜欢什么解决方案?一个关系 DBMS(如 MySQL 或 PostgreSQL),还是一个通用的 NoSQL DB(如一个面向列的数据库 - 考虑到所有时间序列都是单变量的 - 如 Cassandra,或面向文档的数据库,如 MongoDB)?

除了我的特定用例之外,什么时候通常更喜欢 RDMBS 而不是 NoSQL 用于时间序列存储?何时更喜欢 NoSQL 而不是 RDBMS?

标签: databasenosqltime-seriesbigdatarelational-database

解决方案


tl;博士:

通常对于时间序列,我会使用像 InfluxDb 这样的时间序列数据库。

将 NoSQL 用于非结构化的大量数据,例如:记录结果、网站搜索数据等。非常适合针对特定查询进行优化。

当你有简单的实体时,也可以使用 NoSQL(文档存储),这些实体基本上可以包含关于实体的所有内容。由于通常是小型数据模型,因此在微服务​​中派上用场。

使用关系数据库:当您具有层次结构时,例如:销售流程的工作流程的进出。如果必须在大量数据上保持数据结构的完整性,则关系会更好。

这是关于如何处理各种关系关系与文档存储的很好的总结:https ://completedeveloperpodcast.com/document-vs-relational-databases/


好吧,总的来说,网上有很多关于这个主题的文章。通常,在关系数据库中,原理图是“预先”知道的——尽管它会随着时间的推移而改变,但它是相当静态的。

大多数 Not-only-SQL的最大“好处”是它们:

  • 不需要固定的原理图和固定的关系来保持数据的一致性。这意味着 - 例如图形数据库 - 您可以更轻松、更灵活地与其他对象相关联,或者您必须拥有几个独立的表。
  • 通过设计能够(更好)水平扩展,这在更大的系统中是解决性能相关问题的一大好处。(考虑成为几个独立的表来看看为什么)
  • 数据不需要(非常)结构化。如果您需要在数据库中包含外部数据源或典型的非结构化数据,这又是一个好处。
  • 在小型实体中运行良好,查询优化存储。

注意:有多种 NoSQL 数据库类型,都有不同的方法和各自的优缺点。


所以:

除了我的特定用例之外,什么时候通常更喜欢 RDMBS 而不是 NoSQL 用于时间序列存储?

使用 RDMBS 时,您至少需要预先了解您的原理图,并且它们不会经常更改。

在以下情况下,您更喜欢 RDMBS:

  • 这种结构化数据和一致性检查是您存储的数据的内在属性。例如:维护仓库库存清单,跟踪工作时间等。
  • 您的数据存储可以被视为一个独立的权限。例如:文件系统索引器或产品测试结果存储。

何时更喜欢 NoSQL 而不是 RDBMS?

在以下情况下,您更喜欢 NoSQL:

  • 您无法预先确定所有关系并期望经常添加数据、源和关系。典型的用例是大数据存储、关系存储;更具体的:社交网络、高级统计相关性或经常变化的外部数据提供者。
  • 您需要高可扩展性,这在大多数 NoSQL 系统中更为自然。
  • 您只想以或多或少的结构化方式将一些数据转储到云中的某个位置。例如,创建一个简单的表来保存设置记录。
  • 有简单的实体和查询,不需要复杂的连接和分层数据

至于你的用例:

您的数据结构似乎是众所周知且固定的。这要求关系数据库。

数据量和它的简单性是选择 NoSQL 的一个论据。

至于高负载:数据结构也是预先知道的。然而,处理高负载时涉及到一些问题。可以将关系数据库配置为应付这个数量并且性能非常好,但 NoSQL 通常对此进行了更好的优化。


我觉得这有点平衡,而过去是关系型的;在这种情况下,我现在会去文件存储。


但是,它确实提出了另一个问题:由于您正在 24/7 监控;您多久需要一次去年或前一年的数据?上个月还是上周?

我只是问,因为有更多选项可以处理这些数据量。历史数据通常被视为日志,仅“不时”请求。在这种情况下,您可以将数据卡盘存储在不同的服务器上,甚至以不同的形式存储。例如,10kHz 振动数据也可以以 blob 或存储数据流的形式存储在专用服务器上。


推荐阅读