带你读《Elastic Stack 实战手册》之40:——3.4.2.21.Aggregations(1)

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 带你读《Elastic Stack 实战手册》之40:——3.4.2.21.Aggregations(1)

3.4.2.21.Aggregations


创作人:扈臣聪、孙斌

审稿人:刘帅

 

一、基本概念

 

1、什么是聚合

 

在数据分析的过程中,我们通常会对有相同属性的数据集进行分类、计算,从而得到该数据某个或某些属性上在时间维度、地理维度等呈现的分布效果。聚合(Aggregations)根据搜索/查询文档上下文获得的数据集构建分析数据信息的工作单元。我们可以通过组合的方式完成复杂的数据分析和输出。

 

每种聚合都有特定的用途和输出结果,主要包含以下三个种类:

 

l 指标聚合(Metrics)

l 跟踪计算数据分析单元中的数据指标。

l 桶聚合(Bucket)

l 对数据文档进行分组,并按照分组的形式返回每组中的数据。

l 管道聚合(Pipeline)

l 从其他聚合结果中进行的聚合。

 

聚合功能为 Elasticsearch 注入了统计分析的血统,使用户在面对大数据提取统计指标时变得游刃有余。ES 聚合有丰富的聚合函数,可以满足绝大多数用户的需求,同时聚合结果会实时返回给用户。

 

1)指标概念(Metric)

 

对数据集内的数据进行最大值、最小值、平均值、求和等指标的计算,类似于 SQL 中的 max、


2)桶概念(Bucket)

 

又叫分组聚合,类似分类一样,在进行桶聚合时,评估每个文档的存储桶条件(分类),当满足存储桶条件时,就将该文档放入到对应的存储桶中。最终得到一个桶列表(不同的分类),每个桶中放着属于该桶的文档。例如按照 “地区” 聚合,一个人将被分到北京桶或上海桶或其他桶里。

 

3)聚合的结构

 

聚合的基本结构为:

 

{
  "aggregations": {
    "<aggregation_name>": {
      "<aggregation_type>": {
       <aggregation_body>
      }
    }
  }
}

其中 aggregations(可以简写为 aggs)为聚合操作的关键字,操作的对象是数据结构。每一个聚合关联一个用户自定义的逻辑聚合名(即 aggregation_name,例如平均年龄可以定义为 my_avg_age)这些逻辑名可以唯一地表示响应中的聚合结果。每一个聚合拥有一个特定的类型,比如平均值聚合为 avg,每一种聚合会根据聚合的性质定义参数(比如,平均值聚合会要求指定聚合的字段)。

 

4)测试数据集


在学习、练习 Elasticsearch 的时候,常常需要一些测试数据。这个时候我们可以选择手动导入或者直接使用官方的测试数据。官方测试数据链接如下:https://www.elastic.co/guide/cn/kibana/current/tutorial-load-dataset.html,遵循操作步骤即可以完成数据导入。



《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.2.Elasticsearch基础应用——3.4.2.21.Aggregations(2) https://developer.aliyun.com/article/1229244

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
数据可视化 索引
带你读《Elastic Stack 实战手册》之40:——3.4.2.21.Aggregations(13)
带你读《Elastic Stack 实战手册》之40:——3.4.2.21.Aggregations(13)
|
资源调度
带你读《Elastic Stack 实战手册》之40:——3.4.2.21.Aggregations(7)
带你读《Elastic Stack 实战手册》之40:——3.4.2.21.Aggregations(7)
|
存储
带你读《Elastic Stack 实战手册》之40:——3.4.2.21.Aggregations(2)
带你读《Elastic Stack 实战手册》之40:——3.4.2.21.Aggregations(2)
带你读《Elastic Stack 实战手册》之40:——3.4.2.21.Aggregations(12)
带你读《Elastic Stack 实战手册》之40:——3.4.2.21.Aggregations(12)
|
存储
带你读《Elastic Stack 实战手册》之40:——3.4.2.21.Aggregations(3)
带你读《Elastic Stack 实战手册》之40:——3.4.2.21.Aggregations(3)
|
存储
带你读《Elastic Stack 实战手册》之40:——3.4.2.21.Aggregations(5)
带你读《Elastic Stack 实战手册》之40:——3.4.2.21.Aggregations(5)
|
存储
带你读《Elastic Stack 实战手册》之40:——3.4.2.21.Aggregations(8)
带你读《Elastic Stack 实战手册》之40:——3.4.2.21.Aggregations(8)
106 0
带你读《Elastic Stack 实战手册》之40:——3.4.2.21.Aggregations(11)
带你读《Elastic Stack 实战手册》之40:——3.4.2.21.Aggregations(11)
106 0
|
存储 自然语言处理 关系型数据库
带你读《Elastic Stack 实战手册》之40:——3.4.2.21.Aggregations(14)
带你读《Elastic Stack 实战手册》之40:——3.4.2.21.Aggregations(14)
|
编解码 算法
带你读《Elastic Stack 实战手册》之40:——3.4.2.21.Aggregations(6)
带你读《Elastic Stack 实战手册》之40:——3.4.2.21.Aggregations(6)
105 0