如何启动 TimescaleDB 压缩作业?
How to start TimescaleDB compression job?
我已将大量历史数据加载到 timescaledb table。
CREATE TABLE quotes (
"time" timestamp NULL,
symbol_id int4 NULL,
"open" numeric(14,6) NULL,
"close" numeric(14,6) NULL,
high numeric(14,6) NULL,
low numeric(14,6) NULL,
volume int8 NULL,
CONSTRAINT quotes_ts_pkey PRIMARY KEY (symbol_id, "time")
);
SELECT create_hypertable('quotes', 'time', 'symbol_id', 1, create_default_indexes => false);
ALTER TABLE quotes SET (
timescaledb.compress,
timescaledb.compress_segmentby = 'symbol_id'
);
SELECT add_compress_chunks_policy('quotes', INTERVAL '7 days');
之后我将数据插入 table:
insert into quotes ("time", data_id, "open", "close", high, low, volume)
select "time", symbol_id, "open", "close", high, low, volume
from source_schema.quotes;
我看到哪些数据没有被压缩。
SELECT * FROM timescaledb_information.compressed_chunk_stats
ORDER BY compression_status, hypertable_name, chunk_name;
我还可以 select 将必须压缩的旧数据分块(这是我的期望)。
SELECT show_chunks('quotes', older_than => INTERVAL '7 days');
如果我尝试压缩块,效果很好:
SELECT compress_chunk('_timescaledb_internal._hyper_1_59_chunk');
但是我如何启动内部 timescaledb 作业以根据指定的策略自动压缩块?
“SELECT add_compress_chunks_policy('quotes', INTERVAL '7 天');”应该为任何早于 7 天的块启动该自动化过程。 (也就是说,块的 end 必须 >= 7 天。)
您还可以查看压缩数据或后台工作任务的信息视图:
https://docs.timescale.com/latest/api#timescaledb_information-compressed_hypertable_stats
https://docs.timescale.com/latest/api#timescaledb_information-compressed_chunk_stats
https://docs.timescale.com/latest/api#timescaledb_information-policy_stats
根据您提供的信息不能确定为什么看不到压缩数据。在 slack.timescale.com 的社区松弛频道上帮助调试可能会更容易。干杯!
我已将大量历史数据加载到 timescaledb table。
CREATE TABLE quotes (
"time" timestamp NULL,
symbol_id int4 NULL,
"open" numeric(14,6) NULL,
"close" numeric(14,6) NULL,
high numeric(14,6) NULL,
low numeric(14,6) NULL,
volume int8 NULL,
CONSTRAINT quotes_ts_pkey PRIMARY KEY (symbol_id, "time")
);
SELECT create_hypertable('quotes', 'time', 'symbol_id', 1, create_default_indexes => false);
ALTER TABLE quotes SET (
timescaledb.compress,
timescaledb.compress_segmentby = 'symbol_id'
);
SELECT add_compress_chunks_policy('quotes', INTERVAL '7 days');
之后我将数据插入 table:
insert into quotes ("time", data_id, "open", "close", high, low, volume)
select "time", symbol_id, "open", "close", high, low, volume
from source_schema.quotes;
我看到哪些数据没有被压缩。
SELECT * FROM timescaledb_information.compressed_chunk_stats
ORDER BY compression_status, hypertable_name, chunk_name;
我还可以 select 将必须压缩的旧数据分块(这是我的期望)。
SELECT show_chunks('quotes', older_than => INTERVAL '7 days');
如果我尝试压缩块,效果很好:
SELECT compress_chunk('_timescaledb_internal._hyper_1_59_chunk');
但是我如何启动内部 timescaledb 作业以根据指定的策略自动压缩块?
“SELECT add_compress_chunks_policy('quotes', INTERVAL '7 天');”应该为任何早于 7 天的块启动该自动化过程。 (也就是说,块的 end 必须 >= 7 天。)
您还可以查看压缩数据或后台工作任务的信息视图:
https://docs.timescale.com/latest/api#timescaledb_information-compressed_hypertable_stats https://docs.timescale.com/latest/api#timescaledb_information-compressed_chunk_stats https://docs.timescale.com/latest/api#timescaledb_information-policy_stats
根据您提供的信息不能确定为什么看不到压缩数据。在 slack.timescale.com 的社区松弛频道上帮助调试可能会更容易。干杯!