elasticsearch字段distinct去重后统计的几种方案和适用场景

匿名 (未验证) 提交于 2019-12-03 00:32:02

为了实现类似等价的sql:

SELECT COUNT(DISTINCT deviceID) FROM t_order_report;

为什么我要说类似等价呢? 因为从精确性、性能等角度还是存在很大的差别!

前置条件,场景为


如果你对去重结果的精准度没有特殊要求,使用cardinality聚合函数



如果你对去重结果要求精确,使用termsagg聚合(类似group by)


size(Integer.MAX_VALUE)可以指定桶个数




针对海量数据去重(多桶)场景,方法尝试:


缺点:性能不达标



总结:目前elasticsearch 对海量数据去重,支持的并不友好,暂无好的解决方案







易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!