【问题标题】:Time Series Predictions in PostgreSQLPostgreSQL 中的时间序列预测
【发布时间】:2018-07-23 19:03:52
【问题描述】:

我是 PostgreSQL 和数据库系统的新手,我目前正在尝试创建一个数据库来存储观察值以及过去对某个时间序列所做的所有预测。

我已经为观察值建立了一个表(实际上是一个视图),其中的行看起来基本上像: (时间、对象、价值)

现在我想存储预测,这意味着对于每个时间,某些软件为接下来的 N 个时间步预测了什么,N 是可变的,因为软件具有不同的预测类型。

我想过多种解决方案,如下:

  1. 将每个预测存储为一行,使用 max(N)=240 列,即(时间、对象、值 1、值 2、...、值 240)。
  2. 将每个预测存储为一行,将预测值存储为二进制 JSON,即(时间、对象、JSONB 预测)。
  3. 将每个预测 value 存储为一行,其中有一列指定预测的延迟时间(以小时为单位),即 (时间、对象、延迟、价值)。

当我将检索和计算预测的汇总值时,我不知道这些选择中的每一个会如何影响性能。我想做的一个典型的事情是检索一些延迟的预测性能,即当我们提前 x 天预测时预测误差有多大,我需要这个查询执行得非常快,以便在仪表板。

你认为哪个选项最好?或者你有什么其他想法?

非常感谢!

【问题讨论】:

    标签: postgresql time-series


    【解决方案1】:

    如果没有关于所收集数据的访问模式的更多信息,我强烈建议使用jsonb。

    每个时间步使用一列会导致系统目录和统计数据膨胀。

    如果您需要过滤预测值,您也不想维护 240 个索引。

    如果您不需要在WHERE 条件中使用这些值,您可以使用json 而不是jsonb。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-05
      • 2015-05-19
      • 2013-04-03
      • 1970-01-01
      • 2020-04-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多