timescaledb
时序数据库扩展插件
仓库
timescale/timescaledb
https://github.com/timescale/timescaledb
源码
timescaledb-2.26.4.tar.gz
timescaledb-2.26.4.tar.gz
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
timescaledb | 2.26.4 | TIME | Timescale | C |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 1000 | timescaledb | 否 | 是 | 是 | 是 | 是 | 否 | timescaledb_information |
| 相关扩展 | timescaledb_toolkit timeseries pg_cron pg_partman periods temporal_tables emaj pg_task |
|---|
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | PIGSTY | 2.26.4 | 1817161514 | timescaledb | - |
| RPM | PIGSTY | 2.26.4 | 1817161514 | timescaledb-tsl_$v | - |
| DEB | PIGSTY | 2.26.4 | 1817161514 | postgresql-$v-timescaledb-tsl | - |
构建
您可以使用 pig build 命令构建 timescaledb 扩展的 RPM / DEB 包:
pig build pkg timescaledb # 构建 RPM / DEB 包
安装
您可以直接安装 timescaledb 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:
pig repo add pgsql -u # 添加仓库并更新缓存
使用 pig 或者是 apt/yum/dnf 安装扩展:
pig install timescaledb; # 当前活跃 PG 版本安装
pig ext install -y timescaledb -v 18 # PG 18
pig ext install -y timescaledb -v 17 # PG 17
pig ext install -y timescaledb -v 16 # PG 16
pig ext install -y timescaledb -v 15 # PG 15
dnf install -y timescaledb-tsl_18 # PG 18
dnf install -y timescaledb-tsl_17 # PG 17
dnf install -y timescaledb-tsl_16 # PG 16
dnf install -y timescaledb-tsl_15 # PG 15
apt install -y postgresql-18-timescaledb-tsl # PG 18
apt install -y postgresql-17-timescaledb-tsl # PG 17
apt install -y postgresql-16-timescaledb-tsl # PG 16
apt install -y postgresql-15-timescaledb-tsl # PG 15
预加载配置:
shared_preload_libraries = 'timescaledb';
创建扩展:
CREATE EXTENSION timescaledb;
用法
来源:README,TimescaleDB 2.26.4 release,create_hypertable() API,CREATE TABLE hypertable API,continuous aggregates guide,add_job() API,add_columnstore_policy() API
timescaledb 是 PostgreSQL 的时序与事件分析扩展。当前文档重点强调 hypertables、continuous aggregates、automation jobs,以及将较旧 chunks 移入 columnstore。
Hypertables
CREATE EXTENSION timescaledb;
CREATE TABLE ts_test (
ts timestamptz NOT NULL,
id bigint,
v integer
);
SELECT create_hypertable('ts_test', by_range('ts'));
create_hypertable()仍可使用,但 API 文档从 TimescaleDB 2.20.0 起将其标记为 old,并建议新用户转向CREATE TABLE ... WITH (...)。- 当前 README 也展示了更新模式:
CREATE TABLE ... WITH (tsdb.hypertable)。
Continuous aggregates 与 jobs
CREATE MATERIALIZED VIEW ts_hourly
WITH (timescaledb.continuous) AS
SELECT time_bucket('1 hour', ts) AS bucket,
count(*) AS cnt,
avg(v) AS avg_v
FROM ts_test
GROUP BY bucket;
SELECT add_continuous_aggregate_policy(
'ts_hourly',
start_offset => INTERVAL '3 hours',
end_offset => INTERVAL '1 hour',
schedule_interval => INTERVAL '1 hour'
);
SELECT add_job('user_defined_action', '1h');
- Continuous aggregates 要求在 hypertable 的时间维度上使用
time_bucket(...)。 - TimescaleDB 2.13 及以后,real-time aggregates 默认关闭,除非另行配置。
Columnstore
ALTER TABLE ts_test SET (
timescaledb.enable_columnstore,
timescaledb.orderby = 'ts DESC'
);
CALL add_columnstore_policy('ts_test', after => INTERVAL '1 day');
- 文档将
add_columnstore_policy()与convert_to_columnstore()作为当前 API。 - 较早的压缩函数如
add_compression_policy()已被文档标记为 old API,并由 columnstore 接口取代。
注意事项
- TimescaleDB 2.26.4 是 2.26.3 之上的 bug-fix release;release notes 建议升级,但没有为 hypertables、continuous aggregates、jobs 或 columnstore 增加新的 SQL 使用接口。
- 相关 2.26.4 修复涉及 continuous aggregate 规划与刷新、运行时 chunk exclusion、restore 后 background worker 重启、
orderby上的 sparse indexes,以及 compressed chunk merge safety。继续使用上述文档 API,不需要因该 patch release 本身修改 SQL。