java版hyperLogLog
所属分类 architecture
浏览量 1498
概率数据结构
Probabilistic
基数 cardinality
不重复元素统计 譬如 网站UV 统计
Cardinality Estimation
一个 HyperLogLog 只需要花费12KB内存,就可以近似计算 近2^64个不同元素的基数,错误率在1.625%
net.agkn
hll
1.6.0
import net.agkn.hll.HLL;
public class HLLTest {
public static void main(String[] args) throws Exception {
System.out.println("hello,hyperloglog");
//number of bucket and bits per bucket
HLL hll = new HLL(16, 8);
for(int i=0;i<100;i++){
hll.addRaw(i);
}
System.out.println(hll.cardinality());
for(int i=0;i<100000;i++){
hll.addRaw(i);
}
System.out.println(hll.cardinality());
hll = new HLL(20, 8);
for(int i=0;i<100000;i++){
hll.addRaw(i);
}
System.out.println(hll.cardinality());
hll = new HLL(30, 8);
for(int i=0;i<100000;i++){
hll.addRaw(i);
}
System.out.println(hll.cardinality());
}
}
上一篇
下一篇
git合并处理
数据结构要点
hive四种存储格式
磁盘io与直接io
Linux IO sync fsync与fdatasync
sendfile 零拷贝机制