0

我愿意使用 timescaledb 连续聚合收集特定时间间隔的蜡烛价格股票数据,例如 37 分钟,我的间隔将在每天 00:00 开始。

所以举个例子,我愿意每天从00:00、00:37、01:14……到23:26,然后从00:00、008:37……重新开始。以此类推,直到 23:26。因此,例如数据将是:

06/09 00:00 间隔蜡烛

06/09 00:37 间隔蜡烛

06/09 01:14 间隔蜡烛

...

06/09 23:26 间隔蜡烛

07/09 00:00 间隔蜡烛

07/09 00:37 间隔蜡烛

...

等等

当然,我想让它们在同一个视图中,而不是每天为此创建一个新的超表。

我如何使用 timescaledb 弥补这一点?

我已经查看了文档,但不确定我应该使用什么......它是刷新策略吗?起源?

当然我可以使用 37 分钟的桶,但我的问题在第一天之后就开始了。一天中的最后一根蜡烛将在 23:26,之后的下一根蜡烛将在 00:03 而不是 00:00,我将失去同步

非常感谢您,非常感谢您的帮助!

4

1 回答 1

0

您可以在 SELECT 语句中使用 time_bucket('37 min', time_column)。例如,如果您有分钟级别的数据,并且想要以 37 分钟的间隔生成烛台数据,您可以执行以下操作:

SELECT 
time_bucket('37 min', time) AS bucket
, FIRST(price_open, time) AS open_price
, LAST(price_close, time) AS close_price
, MIN(price_low) AS lowest
, MAX(price_high) AS highest
, SUM(trading_volume) AS volume
, symbol 
FROM stocks_intraday 
WHERE symbol = 'TSLA'
GROUP BY bucket, symbol
ORDER BY bucket desc

结果:

2021-08-31 20:00:00|  733.8901|      734.0|733.8901|   734.0|   4816|TSLA  |
2021-08-31 19:23:00|    733.98|      734.0|  733.64|   734.0|   8950|TSLA  |
2021-08-31 18:46:00|     734.0|     733.55|  733.55|   734.2|   4737|TSLA  |
2021-08-31 18:09:00|     734.5|      733.8|   733.8|   734.7|   4231|TSLA  |
2021-08-31 17:32:00|  734.6899|     734.47|  733.86|734.6899|   7902|TSLA  |
2021-08-31 16:55:00|     736.2|      734.5|  734.05|   736.2| 294596|TSLA  |
etc...

然后使用它来创建连续聚合。(没有 ORDER BY)

于 2021-09-07T09:40:48.270 回答