美文网首页
ES聚合分析一网打尽(二) 数据统计相关操作

ES聚合分析一网打尽(二) 数据统计相关操作

作者: 北手洛洛 | 来源:发表于2020-04-07 22:34 被阅读0次

Cardinality Aggregation

类似于mysql的distinct,不过精度达不到100%

计算总共有多少个制造商

POST /kibana_sample_data_ecommerce/_search

{

  "size": 0,

  "aggs": {

    "type_count": {

      "cardinality": {

        "field": "manufacturer.keyword"

      }

    }

  }

}

控制数据的准确度

POST /kibana_sample_data_ecommerce/_search

{

  "size": 0,

  "aggs": {

    "type_count": {

      "cardinality": {

        "field": "category.keyword",

        "precision_threshold": 100 

      }

    }

  }

}

计算制造商和类别的所有搭配的个数

POST /kibana_sample_data_ecommerce/_search

{

  "size": 0, 

    "aggs" : {

        "type_count" : {

            "cardinality" : {

                "script": {

                    "lang": "painless",

                    "source": "doc['manufacturer.keyword'].value + ' ' + doc['category.keyword'].value"

                }

            }

        }

    }

}

返回结果

{

    "aggregations" : {

        "type_count" : {

           "value" : 64

        }

    }

}

如上所见,manufacturer类别为21,category类别为6,但是组合类别为64,验证了制造商并不是做所有的类别的商品。

missing value

可以对不存在该field的值做统计,将所有不存在的作为一个单独的处理

POST /kibana_sample_data_ecommerce/_search

{

  "size": 0,

  "aggs": {

    "category_cardinality": {

      "cardinality": {

        "field": "category.keyword",

        "missing": "N/A"

      }

    }

  }

}

Extended Stats Aggregation

扩展统计结果,增加了平方和、方差、标准差、标准差区间(std_deviation_bounds)

POST /kibana_sample_data_ecommerce/_search

{

  "size": 0,

  "aggs": {

    "price_stats": {

      "extended_stats": {

        "field": "taxful_total_price"

      }

    }

  }

}

通过sigma控制std_deviation_bounds返回几个标准差间隔,默认为2,可以通过具体值为[avg+std_deviation*sigma,avg-std_deviation*sigma]

POST /kibana_sample_data_ecommerce/_search

{

  "size": 0,

  "aggs": {

    "price_stats": {

      "extended_stats": {

        "field": "taxful_total_price",

        "sigma":3

      }

    }

  }

}

script、value script、missing与avg基本相同,简单示例如下

script:

POST /kibana_sample_data_ecommerce/_search

{

    "size": 0,

    "aggs" : {

        "price_stats" : {

            "extended_stats" : {

                "script" : {

                    "source": "doc.taxful_total_price.value"

                }

            }

        }

    }

}

value script:

POST /kibana_sample_data_ecommerce/_search

{

    "size": 0,

    "aggs" : {

        "price_stats" : {

            "extended_stats" : {

                "field" : "taxful_total_price",

                "script" : {

                    "lang" : "painless",

                    "source": "_value * params.correction",

                    "params" : {

                        "correction" : 1.2

                    }

                }

            }

        }

    }

}

missing:

POST /kibana_sample_data_ecommerce/_search

{

  "size": 0,

  "aggs": {

    "price_stats": {

      "extended_stats": {

        "field": "taxful_total_price",

        "missing": 100

      }

    }

  }

}

相关文章

网友评论

      本文标题:ES聚合分析一网打尽(二) 数据统计相关操作

      本文链接:https://www.haomeiwen.com/subject/gtcaphtx.html