t-digest: 高效计算数据流近似分位数
tdigest Fast approximate quantiles in Go 项目地址: https://gitcode.com/gh_mirrors/tdige/tdigest
1. 项目基础介绍
t-digest
是一个由 Go 语言编写的开源项目,旨在提供一种高效计算数据流近似分位数的方法。该项目基于 Ted Dunning 的 t-digest 算法,是一种用于计算数据流中任意分位数的巧妙数据结构/算法。
2. 核心功能
t-digest
的核心功能是能够对数据流进行快速地近似分位数计算。与传统的计算分位数方法不同,t-digest 不需要将所有数据存储在内存中,而是通过维护一个较小的数据结构来表示整个数据集,这使得其能够处理大量数据而不会占用过多内存。其主要特点如下:
- 近似计算:通过近似方法计算分位数,适用于对结果精度要求不是极端精确的场景。
- 低内存占用:即使是处理数百万数据点,t-digest 也只需要占用几KB的内存。
- 压缩比高:数据压缩比通常在20(对于1k数据点)到500(对于1M数据点)之间。
- 计算速度快:单个数据点的添加通常在1到4微秒之间,而分位数的计算通常在几十纳秒到几百纳秒之间。
3. 最近更新的功能
根据项目的最新更新,最近的版本主要在以下方面进行了增强:
- 性能优化:对内部算法进行了优化,提高了数据添加和分位数计算的速度。
- 错误修复:修复了在特定条件下可能出现的计算错误。
- 文档完善:对项目的文档进行了更新和完善,使得用户更容易理解和使用该库。
请注意,由于项目已在2023年1月20日被归档,目前不再计划进行更新。因此,建议用户考虑使用其他活跃的替代项目,如 influxdata/tdigest。
tdigest Fast approximate quantiles in Go 项目地址: https://gitcode.com/gh_mirrors/tdige/tdigest
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考