TDigest算法原理

TDigest是一种用于大数据集的近似百分位数算法,它在精度、速度和实时性之间取得平衡。该算法通过质心数(Centroid)来近似概率密度函数,使用MergingDigest和AVLGroupTree两种实现方式,适用于已排序和未排序的数据集,被广泛应用于Spark、ES等系统。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

起因

一般的聚合分析中较为常见的 percentiles 百分位数分析:n 个数据按数值大小排列,处于 p% 位置的值称第 p 百分位数。

当数据量较小或者数据集中存储在同一位置时,用上述类似的百分位数分析方法就很容易。

但当数据量不断增长时,对于数据进行聚合分析就需要在数据量,精确度和实时性三个方面进行取舍,只能满足其中两项。

T-Digest算法

TDigest就是一种简单,快速,精确度高,可并行化的近似百分位算法,被Spark,ES,Kylin等系统使用。TDigest主要有两种实现算法,一种是buffer-and-merge算法,一种是聚类算法

TDigest 使用的思想是近似算法常用的 Sketch,也就是素描,用一部分数据来刻画整体数据集的特征,就像我们日常的素描画一样,虽然和实物有差距,但是却看着和实物很像,能够展现实物的特征。

我们知道,概率密度函数(PDF)上的某一点的 y 值就是其 x 值在整体数据集中的出现概率,整个函数的面积相加就正好为 1 ,可以说它刻画了数据在数据集中的分布态势。(如下示意的正态分布)

PDF 函数曲线中的点都对应着数据集中的数据,当数据量较少时,我们可以使用数据集的所有点来计算该函数,但是当数据量较大时,我们只有通过少量数据来代替数据集的所有数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值