【发布时间】:2018-07-23 19:03:52
【问题描述】:
我是 PostgreSQL 和数据库系统的新手,我目前正在尝试创建一个数据库来存储观察值以及过去对某个时间序列所做的所有预测。
我已经为观察值建立了一个表(实际上是一个视图),其中的行看起来基本上像: (时间、对象、价值)
现在我想存储预测,这意味着对于每个时间,某些软件为接下来的 N 个时间步预测了什么,N 是可变的,因为软件具有不同的预测类型。
我想过多种解决方案,如下:
- 将每个预测存储为一行,使用 max(N)=240 列,即(时间、对象、值 1、值 2、...、值 240)。
- 将每个预测存储为一行,将预测值存储为二进制 JSON,即(时间、对象、JSONB 预测)。
- 将每个预测 value 存储为一行,其中有一列指定预测的延迟时间(以小时为单位),即 (时间、对象、延迟、价值)。
当我将检索和计算预测的汇总值时,我不知道这些选择中的每一个会如何影响性能。我想做的一个典型的事情是检索一些延迟的预测性能,即当我们提前 x 天预测时预测误差有多大,我需要这个查询执行得非常快,以便在仪表板。
你认为哪个选项最好?或者你有什么其他想法?
非常感谢!
【问题讨论】: