三十二、Elasticsearch聚合分析--两个核心概念buc
2017-07-19 本文已影响102人
编程界的小学生
比如数据:
city | name |
---|---|
北京 | 小李 |
北京 | 小王 |
上海 | 小张 |
上海 | 小丽 |
上海 | 小陈 |
1、bucket
bucket:一个分组
基于city划分buckets
划分出来两个bucket,一个是北京bucket,一个是上海bucket。
北京bucket:包含了2个人,小李和小王
上海bucket:包含了3个人,小张,小丽,小陈
按照某个字段进行bucket划分,那个字段的值相同的那些数据,就会被划分到一个bucket中。
有一些mysql的sql知识的话,聚合,首先第一步就是分组,对每个组内的数据进行聚合分析,分组就是我们这里的bucket
2、metric
metric:对一个数据分组执行的统计
当我们有了一堆bucket之后,就可以对每个bucket中的数据进行聚合分词了,比如说计算一个bucket内所有数据的数量,或者计算一个bucket内所有数据的平均值,最大最小值等。
metric就是对一个bucket执行的某种聚合分析的操作,比如说求平均值,求最大最小值等。
select count(*) from access_log group by user_id
bucket:group by user_id --》那些user_id相同的数据,就会被划分到一个bucket中
metric:count(*),对每个user_id bucket中的所有的数据,计算一个数量
若有兴趣,欢迎来加入群,【Java初学者学习交流群】:458430385,此群有Java开发人员、UI设计人员和前端工程师。有问必答,共同探讨学习,一起进步!
欢迎关注我的微信公众号【Java码农社区】,会定时推送各种干货:
qrcode_for_gh_577b64e73701_258.jpg