【技术课堂】TDengine 如何高效计算千万级数据的百分位数?

在统计学中,如果将一组数据从小到大排序,并计算相应的累计百分位,则某一百分位所对应数据的值就称为这一百分位的百分位数。可表示为:一组 n 个观测值按数值大小排列。如,处于 p% 位置的值称第 p 百分位数。

第 50 百分位数称为中位数。第 25 百分位数又称第一个四分位数(First Quartile),用 Q1 表示;第 50 百分位数又称第二个四分位数(Second Quartile),用 Q2 表示;第 75 百分位数又称第三个四分位数(Third Quartile),用 Q3 表示。

百分位数提供了有关各数据项如何在最小值与最大值之间分布的信息。

比如,某人的工资为 1W,他并不知道自己的工资水平如何。但是如果告诉他,他的工资低于全公司 10% 的人,他立即就能明白自己所处的位置,这个 10% 就是所谓的百分位数。

随着物联网技术的发展,联网设备呈指数级增长,这些设备产生了非常典型的海量的时序数据。而对于用户来说,通过百分位数来统计这些时序数据的分布信息,是一件非常有价值的事情。

那么,百分位数的计算原理是怎样的?常用计算方法有哪些?TDengine 的百分位数统计是如何实现的?如何做到千万级数据秒返回?

2021 年 9 月 23 日(周四)20:00-21:00,锁定 TDengine 线上 Meetup,由 TDengine 研发工程师段宽军为你揭示千万级数据百分位数计算秒返回的奥秘!

段宽军,TDengine Database 研发工程师,多年来一直从事 C、C++ 底层及内核相关研发工作,曾在腾讯负责 QQ 浏览器线的安全及攻防,目前在涛思数据负责流式计算、查询存储等方面的相关工作。

他的分享围绕以下内容展开:

  1. 什么是百分位数?
  2. 百分位数计算方法
  3. 百分位数的作用
  4. TDengine Database 中百分位数的实现

直播已结束!

视频回放

欢迎大家扫描下方二维码,关注 TDengine Database 的视频号!

This image has an empty alt attribute; its file name is image.jpg