首页
学习
活动
专区
圈层
工具
发布

ElasticSearch 如何使用 TDigest 算法计算亿级数据的百分位数?

ElasticSearch 如何使用 TDigest 算法计算亿级数据的百分位数? 大家好,我是历小冰。...百分位数 ElasticSearch 可以使用 percentiles 来分析指定字段的百分位数,具体请求如下所示,分析 logs 索引下的 latency 字段的百分位数,也就是计算网站请求的延迟百分位数...因此,percentiles 使用 TDigest 算法,它是一种近似算法,对不同百分位数的计算精确度不同,较为极端的百分位数范围更加准确,比如说 1% 或 99% 的百分位要比 50% 的百分位要准确...所以,TDigest 在压缩比率(压缩比率越大,质心数代表的数据就要越多)的基础上,按照百分位数来控制各个质心数代表的数据的多少,在两侧的质心数较小,精准度更高,而在中间的质心数则较大,以此达到前文所说的...MergingDigest的实现较为简单,顾名思义,其算法名称叫做 buffer-and-merge,所以实现上使用 tempWeight 和 tempMean 两个数组来代表质心数数组,将数据和保存的质心数进行

4.1K10

ElasticSearch 如何使用 TDigest 算法计算亿级数据的百分位数?

百分位数 ElasticSearch 可以使用 percentiles 来分析指定字段的百分位数,具体请求如下所示,分析 logs 索引下的 latency 字段的百分位数,也就是计算网站请求的延迟百分位数...因此,percentiles 使用 TDigest 算法,它是一种近似算法,对不同百分位数的计算精确度不同,较为极端的百分位数范围更加准确,比如说 1% 或 99% 的百分位要比 50% 的百分位要准确...对应的,计算百分位数也只需要从这些质心数中找到对应的位置的质心数,它的平均值就是百分位数值。 ? 很明显,质心数的个数值越大,表达它代表的数据越多,丢失的信息越大,也就越不精准。...所以,TDigest 在压缩比率(压缩比率越大,质心数代表的数据就要越多)的基础上,按照百分位数来控制各个质心数代表的数据的多少,在两侧的质心数较小,精准度更高,而在中间的质心数则较大,以此达到前文所说的...MergingDigest的实现较为简单,顾名思义,其算法名称叫做 buffer-and-merge,所以实现上使用 tempWeight 和 tempMean 两个数组来代表质心数数组,将数据和保存的质心数进行

1.4K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【数学建模】——matplotlib简单应用

    1.绘制带有中文标签和图例的正弦和余弦曲线 使用numpy创建自变量数组t。 计算正弦函数值s和余弦函数值z。 使用pylab绘制正弦和余弦曲线,并设置标签。...使用pie函数绘制饼状图,设置标签、颜色和百分比格式。 使饼状图中的某些部分裂开,设置阴影和开始角度。 设置坐标轴刻度和标签。 设置坐标轴跨度和纵横比。...计算角度数组,均匀分布在圆周上。 使用polar函数绘制雷达图,设置角度和数据,设置颜色、线型和端点符号。 设置角度网格标签,使用中文字体。 填充雷达图内部。...pl.show() 9.绘制三维曲线 使用numpy创建自变量数组theta和z。...计算极坐标下的x和y值。 使用mpl_toolkits.mplot3d中的plot函数绘制三维曲线。 设置图例。

    55910

    NumPy 学习笔记(四)

    out=None, keepdims=) 计算数组中元素最大值与最小值的差   4、numpy.percentile(a, q, axis) a 表示一个数组对象,q 表示要计算的百分数...=False) 计算 a 的中位数   6、numpy.mean(a, axis=None, dtype=None, out=None, keepdims=) 返回数组中元素的算术平均值...如果提供了轴,则沿其计算   7、numpy.average(a, axis=None, weights=None, returned=False) 根据 weights 中给出的各自的权重计算数组中元素的加权平均值...np.ptp(arr, axis=1)) print("ptp(arr): ", np.ptp(arr)) # numpy.percentile(a, q, axis) a 表示一个对象,q 表示要计算的百分数...(arr, 100, axis=1)) # 若所求百分数不能刚好对应数组里的数,则会在前后两个数之间取平均值 print(np.percentile(np.array([1., 2., 3., 4.,

    63920

    Python:Numpy详解

    numpy.percentile() 百分位数是统计中使用的度量,表示小于这个值的观察值的百分比。 函数numpy.percentile()接受以下参数。 ...numpy.percentile(a, q, axis) 参数说明:  a: 输入数组q: 要计算的百分位数,在 0 ~ 100 之间axis: 沿着它计算百分位数的轴 首先明确百分位数:  第 p 个百分位数是这样一个值...举个例子:高等院校的入学考试成绩经常以百分位数的形式报告。比如,假设某个考生在入学考试中的语文部分的原始分数为 54 分。相对于参加同一考试的其他学生来说,他的成绩如何并不容易知道。...但是如果原始分数54分恰好对应的是第70百分位数,我们就能知道大约70%的学生的考分比他低,而约30%的学生考分比他高。  这里的 p = 70。 ...,它的通用计算公式如下,即结果数组中的每个元素都是:数组a的最后一维上的所有元素与数组b的倒数第二位上的所有元素的乘积和: dot(a, b)[i,j,k,m] = sum(a[i,j,:] * b[k

    4.4K00

    统计学(一) Z 分数与Z检验先修

    ;计算公式为 Z = (X - M)/SD,用来描述某分数(变量上的特定个体,只是一个)在其分布中高于(或低于,如果它为负)平均数的标准差数目。...总的来说,可以确定该分数所在的位置("段位") 如何理解 Z 分数公式? 先从标准差开始,标准差能够用来表示数据的变异程度。...实践应用 我们现在随机抽取一位同学,计算 TA 强硬指数的“段位”求解 z 分数   现在我们知道了 "石军" 同学的 z 分数大约为 -0.63,那接下来该如何判断其“段位”呢?...(答案见原文,上同) z 分数与百分位数有什么异同?计算公式与 numpy 中的 percentile 函数可当成是一体吗?...(答案:percentile(百分位数)更接近顺序变量,Z-score(标准分数)是连续变量。分布正态时两者无差别,偏态时用百分位数更好,不过还是要看具体情况。)

    2.5K30

    【数据可视化】Matplotlib 从入门到精通学习笔记

    NumPy 是 Python 科学计算的软件包,ndarray 则是 NumPy 提供的一种数组结构。Matplotlib 由 John D....Matplotlib 提供了一个 pie() 函数,该函数可以生成数组中数据的饼状图。您可使用 x/sum(x) 来计算各个扇形区域占饼图总和的百分比。...pie() 函数的参数说明如下:[TABLE]以下示例:关于不同计算机语言学习人数的饼状图。autopct 参数设置为 %1.2f% ,并将各项所占总和的百分比显示在相对应的扇形区内。...它能显示出一组数据的最大值、最小值、中位数、及上下四分位数。 在箱型图中,我们从上四分位数到下四分位数绘制一个盒子,然后用一条垂直触须(形象地称为“盒须”)穿过盒子的中间。...同时,它可以在每个网格点(x,y)处计算出一个 z 值。 以下示例展示了如何绘制三维正弦等高线图。

    6.1K31

    Numpy基础20问

    属性返回元素的乘积,来计算数组元素数量。...Numpy支持的数据类型非常多,所以很适合做数值计算。下面给出常见的数据类型: 10、如何查看数组的类型? 数组(ndarrry)对象提供dtype属性,用来查看数组类型。...多维数组有多个轴,那么就需要对每个轴进行索引。 例如,三维数组形状为(x,y,z),分别代表:0轴有x个元素、1轴有y个元素,2轴有z个元素。...广播(Broadcast)是 numpy 对不同形状(shape)的数组进行数值计算的方式, 对多个数组的算术运算通常在相应的元素上进行。 较小的数组在较大的数组上“广播”,以便它们具有兼容的形状。...,其shape相同,那么广播就是两个数组相同位数的元素进行运算。

    5.2K10

    Python中的Numpy基础20问

    属性返回元素的乘积,来计算数组元素数量。...Numpy支持的数据类型非常多,所以很适合做数值计算。下面给出常见的数据类型: ? 10、如何查看数组的类型? 数组(ndarrry)对象提供dtype属性,用来查看数组类型。...多维数组有多个轴,那么就需要对每个轴进行索引。 例如,三维数组形状为(x,y,z),分别代表:0轴有x个元素、1轴有y个元素,2轴有z个元素。...广播(Broadcast)是 numpy 对不同形状(shape)的数组进行数值计算的方式, 对多个数组的算术运算通常在相应的元素上进行。 较小的数组在较大的数组上“广播”,以便它们具有兼容的形状。...,其shape相同,那么广播就是两个数组相同位数的元素进行运算。

    6.1K20

    利用Python进行描述统计

    均值计算公式 中位数 中位数不易受到异常值的影响。 相对位置的度量 百分位数 百分位数 百分位数将所有观测值分成100份,反映的是一个数据在所有观测值中的相对位置。...如何计算第p百分位数? Step1:将所有观测值从小到大排列。 Step2:计算i = (p/100)n p是所求的百分位数的位置,n是项数。...如何求四分位数? 四分位数是特殊的百分位数,因此,计算百分位数的方法可以直接用来计算四分位数。 注:四分位数位置的确定方法有几种,每种方法得到的结果会略有差异,但不会很大。...Z分数(标准计分) 上面的所有指标度量的都是所有观测值的离散程度,而Z分数能够度量单独一个数据的离散程度,常用来比较来自于不同分布(不同总体)或不同量级的观测值。...Z分数计算公式 Z分数应用例子 从Z分数的大小即可判断这个温度在North Bend更奇怪。

    2.9K30

    一篇文章学会Matplotlib

    ;参数colors给出了用于稳定饼图底色的四种颜色. # 自动百分比句型说明每个区域占用的百分比;startangle指定旋转图表的起始角度。...= np.sin(np.sqrt(X**2 + Y**2)) # 根据X和Y数组生成Z数组 # 在3D坐标系中绘制3D曲面 ax.plot_surface(X, Y, Z, cmap=plt.cm.Blues...plt.title('3D Plot Example') #设置图表标题 plt.show() #显示图表 这个示例演示了如何创建简单的三维坐标系。...使用’np.meshgrid()'生成相应的网格,并在采用sin()函数计算定义的图形Z值,最后绘制三维曲面并为其添加轴标签。...plt.show() #展示图表结果 在这个示例中,除了在上一个示例中所看到的基础功能之外,这里展示了如何通过在图形上添加注释来增强Matplotlib图表。

    1.7K10

    Mayavi 入门

    mlab.surf绘制一个三维空间中的曲面。曲面上的每个点的坐标由surf函数的三个二维数组参数x,y,z给出。...mesh和surf类似,其三个数组参数x, y, z也是二维数组,他们相同下标的三个元素组成曲面上某点的三维坐标。点之间的连接关系(边和面)由其在x,y,z数组中间的位置关系决定。...由于这个程序所计算的曲面是一个旋转体,曲面上的各个点的坐标是在球面坐标系中计算的,然后按照坐标转换公式将球面坐标转换为X-Y-Z坐标。...洛仑兹吸引子的轨迹算法请参照: SciPy-数值计算库 imshow, surf, contour_surf : 这三个函数都可以接收一个二维数组s,以其第一轴的下标为X轴坐标,第二轴的下标为Y轴坐标。...imshow函数将此二维数组当作一个图片显示,每点的颜色为数组s的每个元素的值。surf函数则将此二维数组绘制成三维空间中的曲面,数组中每个元素的值为点的Z轴坐标。

    2.1K40

    ChatGPT 总结的初中数学知识点汇总

    七年级数学(上) 第一章 有理数 有理数的概念 定义:有理数是可以表示为两个整数之比的数,包括整数和分数。 示例:3,-2,1/2 都是有理数。...方程的变形与解法 变形:通过数学操作将方程化简为更简单的形式,如将方程两边同时减去某个数。 解法:将变形后的方程解出未知数的值,如对方程4z - 6 = 10,变形得4z = 16,解得z = 4。...数据的描述:平均数、中位数等 平均数:将所有数据相加后除以数据个数,得到数据的平均值。 中位数:将数据从小到大排列,位于中间位置的值。...面积:圆的面积等于半径的平方乘以π,即πr²。 第二十五章 概率 概率的基本概念与计算 概率:事件发生的可能性,通常用分数、小数或百分数表示。 计算:概率 = 有利结果的数目 / 总结果的数目。...第二十九章 投影与视图 投影与视图的概念与性质 投影:三维物体在某个平面上的投影。 视图:三维物体在不同方向上的投影。 投影与视图的关系与应用 关系:不同方向的投影可以确定三维物体的形状和大小。

    66010

    9种统计学图形的matplotlib画法|收藏收藏!

    ','f','g','h'],color='m') plt.xlabel('评分') plt.ylabel('编号') plt.show() 参数说明:绘制条形图plt.barh(x,y) x:在y轴上显示的类别...,固定长度的数组。...b:y轴上的离散数值,固定长度的数组。 c:气泡的颜色,可以是固定颜色也可以是一个数组。 s:气泡的大小,用于记录第三维度的函数关系。 cmap:颜色映射表,可以简单理解成配色方案。...y:数据点的垂直位置 fmt:数据点的标记样式和数据点标记的连接线样式 xerr:x轴方向数据点的误差计算方法 yerr:y轴方向数据误差点的计算方法 ecolor:误差棒的颜色 mfc:数据点的标记颜色...本节我们简单介绍了一下matplotlib是如何绘制统计学中常见的图形的,大家可以收藏下来,需要的时候可翻出查阅。

    3K20

    CSS进阶

    (ts) 取值(正【右&下】/负【左&上】): 像素单位 百分比 .father:hover .son {             ...百分比: 参照盒子自身的尺寸计算 */             /* transform: translate(100%,100%); */             /* 3....,Y轴就发生了变化,此时在位移那么就是在已经改变的X,Y轴上进行位移,不能达到我们想要的效果 旋转1/4圈之后: .box:hover img {             transform...: 值 取值(正/负): 像素单位数值(800 ~ 1200)【指的是眼睛到屏幕的距离】 空间转换时,为元素添加 近大( 正值 )远小( 负值 )、近实远虚的视觉效果...x,y,z 取值为0-1之间的数字 旋转方向判断: 左手法则 判断旋转方向: 左手握住旋转轴, 拇指指向正值方向, 手指弯曲方向为旋转正值方向。

    1.1K20

    NumPy 笔记(超级全!收藏√)

    numpy.percentile()  百分位数是统计中使用的度量,表示小于这个值的观察值的百分比。 函数numpy.percentile()接受以下参数。 ...numpy.percentile(a, q, axis) 参数说明:  a: 输入数组q: 要计算的百分位数,在 0 ~ 100 之间axis: 沿着它计算百分位数的轴  首先明确百分位数:  第 p...个百分位数是这样一个值,它使得至少有 p% 的数据项小于或等于这个值,且至少有 (100-p)% 的数据项大于或等于这个值。 ...举个例子:高等院校的入学考试成绩经常以百分位数的形式报告。比如,假设某个考生在入学考试中的语文部分的原始分数为 54 分。相对于参加同一考试的其他学生来说,他的成绩如何并不容易知道。...但是如果原始分数54分恰好对应的是第70百分位数,我们就能知道大约70%的学生的考分比他低,而约30%的学生考分比他高。这里的 p = 70。

    5.7K30
    领券