时序数据库操作
创建时序数据库hypertable
1、创建一个标准表(PostgreSQL docs)。
CREATE TABLE conditions (
time TIMESTAMPTZ NOT NULL,
location TEXT NOT NULL,
temperature DOUBLE PRECISION NULL
);
2.转换为hypertable(执行TimescaleDB 命令)
首先将表转换conditions为hypertable,仅对column进行时间分区time,然后在location四个分区上添加一个额外的分区键:
#将普通表转换为时序表(对时间进行分区)
SELECT create_hypertable('conditions', 'time');
SELECT create_hypertable('conditions', 'time', chunk_time_interval => INTERVAL '1 day');
#或则可以给时间块添加时间间隔,默认为7天(1.5版本以前为30天)
SELECT add_dimension('conditions', 'time', chunk_time_interval => INTERVAL '1 day');
#重新设置时间分区间隔,只会对新创建的分区生效
SELECT set_chunk_time_interval('conditions', INTERVAL '24 hours');
SELECT set_chunk_time_interval('conditions', 86400000000);
SELECT set_chunk_time_interval('conditions', 86400000); #unix是毫秒
另外也可以添加空间分区
#直接创建
SELECT create_hypertable('conditions', 'time', 'location', 4); #添加4个空间分区,根据location划分分区
#若hypertable已存在,可以采用 add_dimension直接进行添加,number_partitions为空间分区的个数,必须指定
SELECT create_hypertable('conditions', 'time');
SELECT add_dimension