带你读《Elastic Stack 实战手册》之40:——3.4.2.21.Aggregations(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

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。 &nbsp;
相关文章
|
存储 安全 算法
一种基于改进的TPM的嵌入式系统可信计算体系结构
一种基于改进的TPM的嵌入式系统可信计算体系结构
423 0
|
负载均衡
【SpringCloud】Ribbon负载均衡原理、负载均衡策略、饥饿加载
【SpringCloud】Ribbon负载均衡原理、负载均衡策略、饥饿加载
329 0
|
机器学习/深度学习 传感器 人工智能
通用人工智能、人工智能感知和大型语言模型
也许你还没有注意到,人工智能系统最近的表现越来越令人惊讶。
234 0
通用人工智能、人工智能感知和大型语言模型
|
前端开发 Unix Linux
【Linux】【操作】Linux环境运行Windows程序方式一览(全网最全)
【Linux】【操作】Linux环境运行Windows程序方式一览(全网最全)
5249 0
|
SQL 自然语言处理 安全
PHP使用elasticsearch搜索安装及分词方法
为什么会用到这个ES搜索?
561 0
|
Web App开发 测试技术 数据安全/隐私保护
|
Ubuntu Linux 编译器
Linux多线程实践(2) --线程基本API
POSIX线程库   与线程有关的函数构成了一个完整的系列,绝大多数函数的名字都是以“pthread_”开头,要使用这些函数库,要通过引入头文,而且链接这些线程函数库时要使用编译器命令的“-l...
1242 0
|
1天前
|
数据采集 人工智能 安全
|
10天前
|
云安全 监控 安全

热门文章

最新文章