“ElasticSearch聚合分析:分桶聚合(bucket)”的版本间差异
跳到导航
跳到搜索
(建立内容为“category:ElasticSearch == 关于 == <syntaxhighlight lang="JSON" highlight=""> </syntaxhighlight>”的新页面) |
无编辑摘要 |
||
第2行: | 第2行: | ||
== 关于 == | == 关于 == | ||
Elasticsearch 桶聚合,目的就是数据分组,先将数据按指定的条件分成多个组,然后对每一个组进行统计。 | |||
* 组的概念跟桶是等同的,在ES中统一使用桶(bucket)这个术语。 | |||
ES 桶聚合的作用跟 SQL 的 group by 的作用是一样的,区别是 ES 支持更加强大的数据分组能力,SQL 只能根据字段的唯一值进行分组,分组的数量跟字段的唯一值的数量相等。 | |||
: 例如: group by 店铺 id, 去掉重复的店铺 ID 后,有多少个店铺就有多少个分组。 | |||
ES常用的桶聚合如下: | |||
* '''Terms 聚合''':类似 SQL 的 group by,'''根据字段唯一值分组'''; | |||
* '''Histogram 聚合''':根据'''数值间隔'''分组; | |||
*: 例如: 价格按100间隔分组,0、100、200、300等等 | |||
* '''Date histogram聚合''':根据时间间隔分组; | |||
*: 例如:按月、按天、按小时分组 | |||
* '''Range聚合''':按数值范围分组; | |||
*: 例如: 0-150一组,150-200一组,200-500一组。 | |||
* “桶聚合”一般不单独使用,都是配合“指标聚合”一起使用,对数据分组之后肯定要统计桶内数据,在 ES 中如果没有明确指定指标聚合,默认使用 '''Value Count''' 指标聚合,统计桶内文档总数。 | |||
<syntaxhighlight lang="JSON" highlight=""> | <syntaxhighlight lang="JSON" highlight=""> | ||
</syntaxhighlight> | </syntaxhighlight> |
2021年5月21日 (五) 00:53的版本
关于
Elasticsearch 桶聚合,目的就是数据分组,先将数据按指定的条件分成多个组,然后对每一个组进行统计。
- 组的概念跟桶是等同的,在ES中统一使用桶(bucket)这个术语。
ES 桶聚合的作用跟 SQL 的 group by 的作用是一样的,区别是 ES 支持更加强大的数据分组能力,SQL 只能根据字段的唯一值进行分组,分组的数量跟字段的唯一值的数量相等。
- 例如: group by 店铺 id, 去掉重复的店铺 ID 后,有多少个店铺就有多少个分组。
ES常用的桶聚合如下:
- Terms 聚合:类似 SQL 的 group by,根据字段唯一值分组;
- Histogram 聚合:根据数值间隔分组;
- 例如: 价格按100间隔分组,0、100、200、300等等
- Date histogram聚合:根据时间间隔分组;
- 例如:按月、按天、按小时分组
- Range聚合:按数值范围分组;
- 例如: 0-150一组,150-200一组,200-500一组。
- “桶聚合”一般不单独使用,都是配合“指标聚合”一起使用,对数据分组之后肯定要统计桶内数据,在 ES 中如果没有明确指定指标聚合,默认使用 Value Count 指标聚合,统计桶内文档总数。