当前播放: 22 | Elasticsearch聚合分析简介
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
课程目录
第一章:概述 (4讲)
01 | 课程介绍
免费
02 | 内容综述及学习建议
免费
03 | Elasticsearch简介及其发展历史
免费
04 | Elastic Stack家族成员及其应用场景
免费
第二章:安装上手 (4讲)
05 | Elasticsearch的安装与简单配置
免费
06 | Kibana的安装与界面快速浏览
07 | 在Docker容器中运行Elasticsearch Kibana和Cerebro
08 | Logstash安装与导入数据
第三章:Elasticsearch入门 (15讲)
09 | 基本概念:索引、文档和REST API
10 | 基本概念:节点、集群、分片及副本
11 | 文档的基本CRUD与批量操作
12 | 倒排索引介绍
13 | 通过Analyzer进行分词
14 | Search API概览
15 | URI Search详解
16 | Request Body与Query DSL简介
17 | Query String&Simple Query String查询
18 | Dynamic Mapping和常见字段类型
19 | 显式Mapping设置与常见参数介绍
20 | 多字段特性及Mapping中配置自定义Analyzer
21 | Index Template和Dynamic Template
22 | Elasticsearch聚合分析简介
23 | 第一部分总结
第四章:深入搜索 (13讲)
24 | 基于词项和基于全文的搜索
25 | 结构化搜索
26 | 搜索的相关性算分
27 | Query&Filtering与多字符串多字段查询
28 | 单字符串多字段查询:Dis Max Query
29 | 单字符串多字段查询:Multi Match
30 | 多语言及中文分词与检索
31 | Space Jam,一次全文搜索的实例
32 | 使用Search Template和Index Alias查询
33 | 综合排序:Function Score Query优化算分
34 | Term&Phrase Suggester
35 | 自动补全与基于上下文的提示
36 | 配置跨集群搜索
第五章:分布式特性及分布式搜索的机制 (8讲)
37 | 集群分布式模型及选主与脑裂问题
38 | 分片与集群的故障转移
39 | 文档分布式存储
40 | 分片及其生命周期
41 | 剖析分布式查询及相关性算分
42 | 排序及Doc Values&Fielddata
43 | 分页与遍历:From, Size, Search After & Scroll API
44 | 处理并发读写操作
第六章:深入聚合分析 (4讲)
45 | Bucket & Metric聚合分析及嵌套聚合
46 | Pipeline聚合分析
47 | 作用范围与排序
48 | 聚合分析的原理及精准度问题
第七章:数据建模 (7讲)
49 | 对象及Nested对象
50 | 文档的父子关系
51 | Update By Query & Reindex API
52 | Ingest Pipeline & Painless Script
53 | Elasticsearch数据建模实例
54 | Elasticsearch数据建模最佳实践
55 | 第二部分总结回顾
第八章:保护你的数据 (3讲)
56 | 集群身份认证与用户鉴权
57 | 集群内部安全通信
58 | 集群与外部间的安全通信
第九章:水平扩展Elasticsearch集群 (6讲)
59 | 常见的集群部署方式
60 | Hot & Warm架构与Shard Filtering
61 | 分片设计及管理
62 | 如何对集群进行容量规划
63 | 在私有云上管理Elasticsearch集群的一些方法
64 | 在公有云上管理与部署Elasticsearch集群
第十章:生产环境中的集群运维 (10讲)
65 | 生产环境常用配置与上线清单
66 | 监控Elasticsearch集群
67 | 诊断集群的潜在问题
68 | 解决集群Yellow与Red的问题
69 | 提升集群写性能
70 | 提升进群读性能
71 | 集群压力测试
72 | 段合并优化及注意事项
73 | 缓存及使用Breaker限制内存使用
74 | 一些运维的相关建议
第十一章:索引生命周期管理 (2讲)
75 | 使用Shrink与Rollover API有效管理时间序列索引
76 | 索引全生命周期管理及工具介绍
第十二章:用Logstash和Beats构建数据管道 (3讲)
77 | Logstash入门及架构介绍
78 | 利用JDBC插件导入数据到Elasticsearch
79 | Beats介绍
第十三章:用Kibana进行数据可视化分析 (4讲)
80 | 使用Index Pattern配置数据
81 | 使用Kibana Discover探索数据
82 | 基本可视化组件介绍
83 | 构建Dashboard
第十四章:探索X-Pack套件 (6讲)
84 | 用Monitoring和Alerting监控Elasticsearch集群
85 | 用APM进行程序性能监控
86 | 用机器学习实现时序数据的异常检测(上)
87 | 用机器学习实现时序数据的异常检测(下)
88 | 用ELK进行日志管理
89 | 用Canvas做数据演示
实战1:电影搜索服务 (3讲)
90 | 项目需求分析及架构设计
91 | 将电影数据导入Elasticsearch
92 | 搭建你的电影搜索服务
实战2:Stackoverflow用户调查问卷分析 (3讲)
93 | 需求分析及架构设计
94 | 数据Extract & Enrichment
95 | 构建Insights Dashboard
备战:Elastic认证 (5讲)
96 | Elastic认证介绍
97 | 考点梳理
98 | 集群数据备份
99 | 基于Java和Elasticseach构建应用
100 | 结束语
22 | Elasticsearch聚合分析简介

22 | Elasticsearch聚合分析简介

阮一鸣
eBay Pronto平台技术负责人
100讲 约1000分钟16916
单独订阅¥129
2人成团¥99
5
登录 后留言

精选留言(15)

  • hellochenpro
    阮老师,你好。
    我在用 "aggs" 做聚合查询的实验时,发现,在第一行如果用 "size": 20 ,这样聚合查询会不成功,返回了类似 match_all 的查询结果。如果用 "size": 0 ,则聚合查询的结果正常。
    请问,对于“size”:0 和 20,这两个值的差别是什么?

    作者回复: 做聚合分析,应该讲size 设置为0,否则会返回查询结果。写20,aggs的相关结果会出现在比较后面而已。

    2019-07-11
    5
  • Geek_5b11b8
    聚合结果,有些是不准确的,老师也可以介绍一下

    作者回复: 后续有章节讲解

    2019-07-14
    5
    2
  • GET movies/_search
    {
      "size": 0,
    "aggs": {
    "years": {
    "terms":{
    "field":"year"
    }
    }
    }
    }
    老师,您好,我用上边的查询方式查之前的movies index,发现数据不是很全,没有1995年的,实际数据是有1995年的,这个是怎么回事呢?
    2019-07-14
    1
    1
  • Geek_b36bac
    有一个问题想请教一下,在您的demo中,根据目的地进行聚合分组后会得到不到目的地的航班信息,现在我有两个需求,不知道能不能有很好的实现方式:
    1、根据目的地聚合分组后,需要返回该分组的所有航班信息列表(即文档数据),这个数据能在聚合查询的时候同事返回吗?如果能,dsl该怎么写?
    2、聚合后分组数特别多(比如说聚合分组后有1000个目的地),可以对这1000个目的地做分页查询吗?(类似于from+size分页,真分页)
    2019-11-16
  • PLADahuzi
    老师我想问下我在es中按照商品的sku的维度写入的数据,现在我根据sku中的spu no进行聚合分桶,我想拿到每个桶中第一个sku的文档,但是只能能拿到spu 的no,现在我要怎么才能拿到桶中的第一个文档啊
    2019-09-30
  • godtrue
    老师好,请问后面会有这些聚合功能的原理讲解嘛?
    分布式的数据每个分片存储部分数据,像最大、最小、计数等分表计算再比较或累加,不过分组和求平均值需要全部数据后才能得到吧?ES具体是怎么实现这些聚合功能的?
    2019-09-20
  • Cybertrunk
    It's odd. in kibanan discovery, I use filter bar to search "DestCountry" which equals to "IT", then i got 2007 hits. But, when i use the follow aggs in console, it gives me the answer of 2371. i use ES7.3.
    -= agg query in console =-
    GET kibana_sample_data_flights/_search
    {
      "size": 0,
      "aggs": {
        "flight_dest": {
          "terms": {
            "field": "DestCountry"
          }
        }
      }
    }
    -= result =-
    {
      "took" : 0,
      "timed_out" : false,
      "_shards" : {
        "total" : 1,
        "successful" : 1,
        "skipped" : 0,
        "failed" : 0
      },
      "hits" : {
        "total" : {
          "value" : 10000,
          "relation" : "gte"
        },
        "max_score" : null,
        "hits" : [ ]
      },
      "aggregations" : {
        "flight_dest" : {
          "doc_count_error_upper_bound" : 0,
          "sum_other_doc_count" : 3187,
          "buckets" : [
            {
              "key" : "IT",
              "doc_count" : 2371
            },
    ......
    }
    Sorry, and msot wierd, when i use edit in DSL from filter setting in filter bar. it gave me the following answer.
    -= in DSL =-
    {
      "query": {
        "match": {
          "DestCountry": {
            "query": "IT"
          }
        }
      }
    }
    then I use this to search in console, I got the answer of 2371, which equal to using agg.
    -= query in console =-
    GET kibana_sample_data_flights/_search
    {
      "query": {
        "match": {
          "DestCountry": {
            "query": "IT"
          }
        }
      }
    }

    so, do we trust the result of filter bar in Kibana Discovery ?
    2019-08-26
    2
  • 陈子文
    ES中的查询以及聚合,可以跨index吗?如果可以,这部分有讲解吗?

    作者回复: 可以啊,跨index只需要在index中写上index名字,用逗号间隔,或者用通配符

    例如

    post index1,index2,logs*/_search

    代表搜索index1 index2和全部log开头的索引

    2019-08-08
  • GaelYang
    老师请教一下,对于nested类型的数据,怎么返回真实的命中数呢
    2019-07-24
  • SuperSnow
    阮老师,您好!看了其他人的留言,我有一个问题,关于ES可以当成时序数据库。
    es更重要的点是获取数据,然后搜索和分析数据吧。如果当成类似hbase之类的数据库是不是有点失去重点的感觉,虽然es可以当成这种类型的库存在。
    因为前两天看了一篇文章,关于陶建辉将他写的用于物联网的TDengine的大数据平台开源了,号称比hadoop快10倍。当时我问了一个问题,就是他的这个平台与ES的区别,当时他说:我们处理的是结构化的日志数据,比如物联网、车联网的各种传感器、机器产生的数据,ES主要做文本数据的搜索和处理。
    那我的问题是:
    1)ES除了可以存储非结构数据,也可以存储结构性数据,是否可以将ES当成大数据库来用呢?
    2)由于ES在处理数据的效率比hadoop快,这只是get的效率。那write的场景,用es来落地是否合适?还是说业务操作的数据还是存储在类似RDBMS,hbase之类的库中,然后与es搞同步,目的主要是用es的搜索与处理的这些闪光功能点呢?

    作者回复: 日志处理属于es的常用case。用来做日志类数据,完全可以把es当作数据库使用,本身他就支持水平扩展。

    对于一些交易信息,对于数据的trasaction要求比较高,同时数据的update操作又很多(日志型的数据其实update很少的),这时就考虑用数据库做同步。作为同步。

    2019-07-16
    1
  • zj
    flight_dest这个表示什么含义

    作者回复: 航班的目的地

    2019-07-16
    2
  • Y
    老师 用aggs做聚合分析的时候 sum_other_doc_count 返回的是指定聚合字段为空的数据吗 我看下来好像不是 还是说聚合分析最多返回十条buckets?
    2019-07-12
    2
  • CD南国
    希望老师针对聚合场景做些性能分析的内容,比如股票场景,同时有上万人做统计分析查询,感谢
    2019-07-10
    1
  • 陈华应
    期待kibana是如何与这些聚合信息相结合的,另外编程语言提供的API有没有只关注结果数据的功能呢?

    作者回复: 不知道你说的只关注结果数据的功能是什么意思。

    JAVA有high level的client

    2019-07-10
    1
  • robincoin
    elasticsearch可以用作时序数据库么,时序聚合分析效率如何?

    作者回复: 可以。例如grafana就可以运行在es之上。es自己也有timelion,就是用来分析时序数据的

    2019-07-10
收起评论
看过的人还看
MySQL实战45讲

林晓斌  网名丁奇,前阿里资深技术专家

48讲 | 44087 人已学习

拼团 ¥79 原价 ¥99
Kafka核心技术与实战

胡夕  人人贷计算平台部总监,Apache Kafka Contributor

46讲 | 8571 人已学习

拼团 ¥79 原价 ¥99
从0开始学架构

李运华  资深技术专家

59讲 | 39231 人已学习

¥99
趣谈网络协议

刘超  网易研究院云计算技术部首席架构师

51讲 | 40031 人已学习

拼团 ¥79 原价 ¥99