跳转到主要内容

tdigest

tdigest 聚合函数

概览

扩展包名版本分类许可证语言
tdigest1.4.7FUNCPostgreSQLC
ID扩展名BinLibLoadCreateTrustReloc模式
4710tdigest否是否是否是-

版本

类型仓库版本PG 大版本包名依赖
EXTPGDG1.4.71817161514tdigest-
RPMPGDG1.4.71817161514tdigest_$v-
DEBPGDG1.4.71817161514postgresql-$v-tdigest-
OS / PGPG18PG17PG16PG15PG14
el8.x86_64
el8.aarch64
el9.x86_64
el9.aarch64
el10.x86_64
el10.aarch64
d12.x86_64
d12.aarch64
d13.x86_64
d13.aarch64
u22.x86_64
u22.aarch64
u24.x86_64
u24.aarch64
u26.x86_64
u26.aarch64

安装

您可以直接安装 tdigest 扩展包的预置二进制包,首先确保 PGDG 仓库已经添加并启用:

pig repo add pgdg -u          # 添加 PGDG 仓库并更新缓存

使用 pig 或者是 apt/yum/dnf 安装扩展:

安装
pig install tdigest;          # 当前活跃 PG 版本安装
pig
pig ext install -y tdigest -v 18  # PG 18
pig ext install -y tdigest -v 17  # PG 17
pig ext install -y tdigest -v 16  # PG 16
pig ext install -y tdigest -v 15  # PG 15
pig ext install -y tdigest -v 14  # PG 14
dnf
dnf install -y tdigest_18       # PG 18
dnf install -y tdigest_17       # PG 17
dnf install -y tdigest_16       # PG 16
dnf install -y tdigest_15       # PG 15
dnf install -y tdigest_14       # PG 14
apt
apt install -y postgresql-18-tdigest   # PG 18
apt install -y postgresql-17-tdigest   # PG 17
apt install -y postgresql-16-tdigest   # PG 16
apt install -y postgresql-15-tdigest   # PG 15
apt install -y postgresql-14-tdigest   # PG 14

创建扩展:

CREATE EXTENSION tdigest;

用法

来源:

tdigest 1.4.7 提供可合并的近似排名统计。可存储部分数据的摘要,再合并计算分位数,无需对全部原始数据排序。

核心工作流

CREATE EXTENSION tdigest;
SELECT tdigest_percentile(v, 100, ARRAY[0.5, 0.95, 0.99])
FROM generate_series(1, 1000) AS g(v);
CREATE TABLE digest_daily AS
SELECT current_date AS day, tdigest(v, 100) AS digest
FROM generate_series(1, 1000) AS g(v);
SELECT tdigest_percentile(digest, 0.95) FROM digest_daily;

函数与精度

tdigest(value, compression) 创建摘要;tdigest(digest) 合并已存储的摘要。tdigest_percentile 估算分位数,tdigest_percentile_of 估算排名,均提供标量和数组形式。tdigest_add 与 tdigest_union 更新或合并摘要;tdigest_count、tdigest_sum 与 tdigest_avg 返回计数及截尾聚合。截尾聚合的上下界参数表示分位数阈值,而非原始数据值边界。tdigest_is_valid 检查序列化值。

compression 必须在 10 到 10000 之间。较大值通常以更多内存和 CPU 换取更高精度,但不提供固定误差上界。应使用代表性数据与精确结果对照,并在合并状态时保持压缩参数一致。

升级与边界

1.4.7 修复了相邻值分位数插值、大计数反向排名、可复用状态的终结处理及 NULL 压缩参数处理,并将更多标量函数标记为可安全并行执行。应同时更新已安装的共享库和 SQL,并执行 ALTER EXTENSION tdigest UPDATE TO '1.4.7'。用 tdigest_is_valid 检查已存储摘要;更严格的验证可能拒绝旧版本接受的畸形值。安装需要超级用户权限,扩展可重定位且无需预加载。发布元数据声明最低 PostgreSQL 13,更新日志也记录了 PostgreSQL 19 构建修复,但这些信息不构成性能保证。

这个页面对您有帮助吗?