我正在寻找一种高效的分位数算法,它允许样本值随时间的变化而进行“插入”或替换。
假设我有
我看到最接近此类算法的是t-Digest数据结构。它可以高效地存储样本值。唯一缺少的是删除和替换样本值的能力。
我还查看了Apache Quantiles Datasketch - 它也存在相同的问题 - 没有办法删除和替换样本。
编辑:经过更深思熟虑,不一定需要删除旧值并插入递增的值。如果有一个限制只能更新值的约束条件,可能会更容易地重新计算内部状态。
假设我有
1-n
项的值。我想将这些值放入一个可以高效存储它们的分位数算法中。但是在未来的某个时刻,item-i
的值会增加。我想删除item-i
的原始值并替换为更新后的值。具体用例是用于流式系统,其中样本值随时间增加。我看到最接近此类算法的是t-Digest数据结构。它可以高效地存储样本值。唯一缺少的是删除和替换样本值的能力。
我还查看了Apache Quantiles Datasketch - 它也存在相同的问题 - 没有办法删除和替换样本。
编辑:经过更深思熟虑,不一定需要删除旧值并插入递增的值。如果有一个限制只能更新值的约束条件,可能会更容易地重新计算内部状态。