当前位置:   article > 正文

ElasticSearch6.2.4(13)——聚合分析之cardinality_elasticsearch cardinality 准确值

elasticsearch cardinality 准确值

1.es,去重,cartinality metric,对每个bucket中的指定的field进行去重,取去重后的count,类似于count(distcint)

  1. GET /tvs/sales/_search
  2. {
  3. "size": 0,
  4. "aggs": {
  5. "group_by_color":{
  6. "date_histogram": {
  7. "field": "sold_date",
  8. "interval": "month"
  9. },
  10. "aggs": {
  11. "group_by_brand": {
  12. "cardinality": {
  13. "field": "brand"
  14. }
  15. }
  16. }
  17. }
  18. }
  19. }

2.cardinality,count(distinct),5%的错误率,性能在100ms左右

(1):precision_threshold优化准确率和内存开销

  1. GET /tvs/sales/_search
  2. {
  3. "size": 0,
  4. "aggs": {
  5. "group_by_color":{
  6. "date_histogram": {
  7. "field": "sold_date",
  8. "interval": "month"
  9. },
  10. "aggs": {
  11. "group_by_brand": {
  12. "cardinality": {
  13. "field": "brand",
  14. "precision_threshold": 100
  15. }
  16. }
  17. }
  18. }
  19. }
  20. }
brand去重,如果brand的unique value,在100个以内,小米,长虹,三星,TCL,HTL。。。

在多少个unique value以内,cardinality,几乎保证100%准确
cardinality算法,会占用precision_threshold * 8 byte 内存消耗,100 * 8 = 800个字节
占用内存很小。。。而且unique value如果的确在值以内,那么可以确保100%准确
100,数百万的unique value,错误率在5%以内

precision_threshold,值设置的越大,占用内存越大,1000 * 8 = 8000 / 1000 = 8KB,可以确保更多unique value的场景下,100%的准确

field,去重,count,这时候,unique value,10000,precision_threshold=10000,10000 * 8 = 80000个byte,80KB

HyperLogLog++ (HLL)算法性能优化

cardinality底层算法:HLL算法,HLL算法的性能

会对所有的uqniue value取hash值,通过hash值近似去求distcint count,误差

默认情况下,发送一个cardinality请求的时候,会动态地对所有的field value,取hash值; 将取hash值的操作,前移到建立索引的时候

  1. PUT /tvs/
  2. {
  3. "mappings": {
  4. "sales": {
  5. "properties": {
  6. "brand": {
  7. "type": "text",
  8. "fields": {
  9. "hash": {
  10. "type": "murmur3"
  11. }
  12. }
  13. }
  14. }
  15. }
  16. }
  17. }
  1. GET /tvs/sales/_search
  2. {
  3. "size" : 0,
  4. "aggs" : {
  5. "distinct_brand" : {
  6. "cardinality" : {
  7. "field" : "brand.hash",
  8. "precision_threshold" : 100
  9. }
  10. }
  11. }
  12. }


声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号