如何将分钟数据划分为包含Timescaledb(PostgreSQL扩展名)中每个月的表
我是timescaledb的新手,我想为表中的每种股票存储一分钟ohlcv刻度。一只股票每天产生1440个滴答声,一个月产生43200个滴答声。我有100个资产,每个月我都要存储它们的刻度,基本上每隔30天左右对表进行划分,这样我就不必为这个划分构建复杂的逻辑。关于如何使用timescale DB实现这一点的任何建议 目前,我的做法是如何将分钟数据划分为包含Timescaledb(PostgreSQL扩展名)中每个月的表,postgresql,time-series,timescaledb,Postgresql,Time Series,Timescaledb,我是timescaledb的新手,我想为表中的每种股票存储一分钟ohlcv刻度。一只股票每天产生1440个滴答声,一个月产生43200个滴答声。我有100个资产,每个月我都要存储它们的刻度,基本上每隔30天左右对表进行划分,这样我就不必为这个划分构建复杂的逻辑。关于如何使用timescale DB实现这一点的任何建议 目前,我的做法是 获取传入的勾号(例如时间戳1535090420) 将其时间戳四舍五入到最接近的30天周期(1535090420/(86400*30))=592.24167438
- 获取传入的勾号(例如时间戳1535090420)
- 将其时间戳四舍五入到最接近的30天周期(1535090420/(86400*30))=592.241674383
- 将该数字四舍五入到592,然后乘以区间,得到1534464000,这是最接近的30天存储桶,所有刻度都应该存储在该存储桶中,因此我创建了一个名为OHLC_1534464000的表(如果不存在),并将刻度添加到该表中
- 有没有更好的办法
create_hypertable('ohlc','timestamp',chunk_time_interval=>interval'30天');
这将创建30天的块(只是引擎盖下的Postgres表),并根据时间戳将每个勾号透明地放置在适当的块中。一旦超过当前30天周期的刻度出现,它将自动创建一个新区块。您只需在主表(
ohlc
)上插入和查询,就像它是一个Postgres表一样 天哪!我希望我能投你10票!非常感谢你,伙计