Elasticsearch 5.0 简介(medcl微信直播实录)

大家好,非常高兴能在这里给大家分享,感谢InfoQ提供的这个微信的平台,首先简单自我介绍一下,我叫曾勇,是Elastic的工程师。

Elastic将在今年秋季的时候发布一个Elasticsearch V5.0的大版本,这次的微信分享将给大家介绍一下5.0版里面的一些新的特性和改进。

5.0? 天啦噜,你是不是觉得版本跳的太快了。
好吧,先来说说背后的原因吧。
这里写图片描述

相信大家都听说ELK吧,是Elasticsearch、Logstash、Kibana三个产品的首字母缩写,现在Elastic又新增了一个新的开源项目成员:Beats,

这里写图片描述

有人建议以后这么叫:ELKB?为了未来更好的扩展性:) ELKBS?ELKBSU?…..所以我们打算将产品线命名为ElasticStack,同时由于现在的版本比较混乱,每个产品的版本号都不一样,Elasticsearch和Logstash目前是2.3.4;Kibana是4.5.3;Beats是1.2.3;
这里写图片描述

版本号太乱了有没有,什么版本的ES用什么版本的Kibana?有没有兼容性问题?
所以我们打算将这些的产品版本号也统一一下,即v5.0,为什么是5.0,因为Kibana都4.x了,下个版本就只能是5.0了,其他产品就跟着跳跃一把,第一个5.0正式版将在今年的秋季发布,目前最新的测试版本是:5.0 Alpha 4
这里写图片描述

上面就是整个ElasticStack了,其实还是之前的那些啦

目前各团队正在紧张的开发测试中,每天都有新的功能和改进,本次分享主要介绍一下Elasticsearch的主要变化。

首先来看看5.0里面都引入了哪些新的功能吧。
首先看看跟性能有关的,第一个就是Lucene 6.x 的支持,

Elasticsearch5.0率先集成了Lucene6版本,其中最重要的特性就是 Dimensional Point Fields,多维浮点字段,ES里面相关的字段如date, numeric,ip 和 Geospatial 都将大大提升性能,这么说吧,磁盘空间少一半;索引时间少一半;查询性能提升25%;IPV6也支持了。

为什么快,底层使用的是Block k-d trees,核心思想是将数字类型编码成定长的字节数组,对定长的字节数组内容进行编码排序,然后来构建二叉树,然后依次递归构建,目前底层支持8个维度和最多每个维度16个字节,基本满足大部分场景
说了这么多,看图比较直接

这里写图片描述

图中从2015/10/32 total bytes飙升是因为es启用了docvalues,我们关注红线,最近的引入新的数据结构之后,红色的索引大小只有原来的一半大小。索引小了之后,merge的时间也响应的减少了,看下图
这里写图片描述

相应的Java堆内存占用只原来的一半:
这里写图片描述

再看看索引的性能,也是飙升

这里写图片描述

当然Lucene6里面还有很多优化和改进,这里没有一一列举。我们再看看索引性能方面的其他优化

ES5.0在Internal engine级别移除了用于避免同一文档并发更新的竞争锁,带来15%-20%的性能提升 #18060

这里写图片描述
以上截图来自ES的每日持续性能监控:https://benchmarks.elastic.co/index.html

另一个和aggregation的改进也是非常大,Instant Aggregations

Elasticsearch已经在Shard层面提供了Aggregation缓存,如果你的数据没有变化,ES能够直接返回上次的缓存结果,但是有一个场景比较特殊,就是 date histogram,大家kibana上面的条件是不是经常设置的相对时间,如:from:now-30d to:now,好吧,now是一个变量,每时每刻都在变,所以query条件一直在变,缓存也就是没有利用起来,经过一年时间大量的重构,现在可以做到对查询做到灵活的重写,首先now关键字最终会被重写成具体的值,其次,每个shard会根据自己的数据的范围来重写查询为 match_all或者是match_none查询,所以现在的查询能够被有效的缓存,并且只有个别数据有变化的Shard才需要重新计算,大大提升查询速度。

另外再看看和Scroll相关的吧,现在新增了一个:Sliced Scroll
用过Scroll接口吧,很慢?如果你数据量很大,用Scroll遍历数据那确实是接受不了,现在Scroll接口可以并发来进行数据遍历了,
每个Scroll请求,可以分成多个Slice请求,可以理解为切片,各Slice独立并行,利用Scroll重建或者遍历要快很多倍。

看看这个demo
这里写图片描述

可以看到两个scroll请求,id分别是0和1,max是最大可支持的并行任务,可以各自独立进行数据的遍历获取。
我们再看看es在查询优化这块做的工作,

新增

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《Elasticsearch 5.0 Cookbook》是一本关于Elasticsearch 5.0版本的实用指南,主要介绍了如何使用Elasticsearch 5.0进行数据分析和日志管理等常见任务的解决方案。 本书以实际问题为出发点,提供了一系列经过验证的解决方案和最佳实践,帮助读者快速高效地使用Elasticsearch 5.0。书中主要包括以下内容: 1. 安装和配置Elasticsearch:介绍了如何在不同平台上安装和配置Elasticsearch,并讲解了相关的重要配置选项。 2. 索引和搜索数据:讲解了如何创建索引和映射,以及如何执行基本和高级搜索。同时,还介绍了如何处理分页、排序、聚合和过滤等操作。 3. 数据分析:详细介绍了使用Elasticsearch进行数据分析的方法,包括使用聚合框架进行数据汇总和分组,使用脚本进行自定义计算,以及使用机器学习模块进行异常检测和预测等。 4. 日志管理:介绍了如何使用Elasticsearch集中管理和分析日志数据,包括使用Logstash进行日志收集和过滤,使用Kibana进行日志分析和可视化等。 5. 性能调优和集群管理:提供了一些优化Elasticsearch集群性能的建议和技巧,包括缓存、分片、副本和硬件选择等。 通过学习《Elasticsearch 5.0 Cookbook》,读者能够系统地了解和掌握Elasticsearch 5.0的功能和用法,以及如何应用最佳实践解决实际问题。无论是刚接触Elasticsearch的初学者,还是有一定经验的开发者和管理员,都可以从中获得实用的知识和技能,提高工作效率和系统性能。 ### 回答2: 《Elasticsearch 5.0 Cookbook》是一本关于Elasticsearch 5.0的烹饪书。本书旨在帮助读者理解和运用Elasticsearch的各种功能和技术,解决各种实际场景下的问题。 这本书的内容分为多个章节,每个章节介绍了一个或多个实际问题,并给出了相应的解决方案。书中的示例代码和详细说明能够帮助读者理解和运用Elasticsearch的各种功能。 在《Elasticsearch 5.0 Cookbook》中,读者可以学到如何配置和管理Elasticsearch集群,如何使用索引和映射来存储和搜索数据,以及如何使用各种查询语句来实现高效的搜索。此外,本书还介绍了如何使用聚合和分析来分析数据,如何使用索引别名和索引模板来管理索引,以及如何使用插件来扩展Elasticsearch的功能。 本书适合那些对Elasticsearch感兴趣的读者,无论是新手还是有一定经验的用户。读者只需要具备基本的计算机和编程知识即可。 总之,《Elasticsearch 5.0 Cookbook》是一本很好的学习和实践Elasticsearch的指南,通过读这本书,读者可以快速掌握Elasticsearch的各种功能和技巧,提升自己在搜索和数据分析领域的能力。 ### 回答3: 《Elasticsearch 5.0 Cookbook》是一本关于Elasticsearch 5.0版本的技术书籍。Elasticsearch是一种开源的分布式搜索和分析引擎,它可以实现快速搜索、实时数据分析和复杂数据聚合等功能。这本Cookbook旨在帮助读者了解和掌握使用Elasticsearch进行数据处理和分析的方法。 该书以食谱的形式呈现,分为多个章节,每个章节介绍一个常见的数据处理和分析场景,并提供相应的解决方案。读者可以根据自己的需求选择相应的章节进行学习和实践。该书涵盖了各种方面的内容,包括索引、搜索、聚合、分析和可视化等。 该书针对不同的读者群体提供了不同的内容,从初学者到有经验的开发者都可以从中获益。初学者可以通过学习基本的Elasticsearch概念和术语,了解其架构和工作原理。有经验的开发者可以深入学习高级特性和技巧,了解如何使用Elasticsearch解决更复杂的数据处理和分析问题。 此外,该书还提供了一些最佳实践和性能优化的建议,帮助读者更好地利用Elasticsearch的功能并提高系统的性能和稳定性。同时,书中也介绍了一些常见问题和故障排除的方法,帮助读者解决在实际使用过程中可能遇到的各种困难和挑战。 总之,《Elasticsearch 5.0 Cookbook》是一本全面而实用的技术书籍,适合对Elasticsearch感兴趣的读者学习和参考。无论是初学者还是有经验的开发者,都可以通过该书提供的食谱式的学习方式,快速了解并掌握Elasticsearch的使用方法和技巧。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值