随着Elasticsearch在全球范围内的快速发展,其功能和应用场景日益丰富。在今天的Elastic大会2023上,我们了解到了关于Elasticsearch7和8系列的一系列令人兴奋的新功能。本文将为大家详细介绍这些新功能及其应用,帮助大家更好地了解和使用Elasticsearch。
1. 新的集群平衡策略
策略1:根据分片大小对磁盘进行再平衡 在这种策略中,系统会监控集群中各个节点上磁盘的使用情况。如果发现某个节点的磁盘使用率超过了预设的阈值,系统会自动触发分片迁移操作,将该节点上的一部分分片迁移到其他使用率较低的节点。这种基于分片大小的再平衡策略有助于实现集群中磁盘资源的均衡分配,从而提高整体性能。
策略2:根据引入数据负载对索引进行再平衡 对于读写请求的负载,系统会监控集群中各个节点上的引入数据负载情况。根据引入数据负载,系统会自动调整索引分片在各个节点上的分布,使得负载较高的节点上的分片数量减少,而负载较低的节点上的分片数量增加。这样可以在保证系统性能的同时,实现集群内引入数据负载的均衡分配。
这种新的集群平衡策略有以下优点:新的集群平衡策略通过均衡分配磁盘和引入数据负载,充分利用各节点资源,提高整体性能。实现节点间负载均衡,降低单个节点故障对集群的影响,进而增强系统稳定性。
此外,该策略可根据实际需求自动调整资源分配,避免资源浪费,提升资源利用率。同时,自动化调整减轻运维人员负担,降低人工干预风险,有助于降低运维成本。
2、Kibana 支持 ARM体系架构
3. 集中化采集平台与安全场景功能
此外,在安全场景方面,Elastic Stack提供了EQL时间序列功能,适用于需要先后顺序匹配的场景。
4. 存算分离架构及新的搜索语言ESQL
Elastic Stack的未来发展方向主要围绕服务和存算分离的架构。在云原生架构中,使用对象存储作为介质,可以减少数据搬运的成本和提高自动伸缩能力。
此外,Elastic Stack还将引入新的搜索语言ESQL,提供更高的数据处理灵活性和性能。ESQL采用管道进行连接,可以实现数据转换、过滤等多个步骤的搜索操作。
5. 全观测解决方案
Elastic Stack提供了全观测解决方案,包括日志、指标、APM、RUM真实用户监测、Synthetic监测、通用性能剖析等。这些功能可以帮助用户更全面地了解和监控系统的运行状态。
6. 安全解决方案
Elastic Stack还提供了安全解决方案,包括采集安全相关的数据、分析和检测异常行为、自动响应等。Elastic Security可提供一站式安全解决方案,将SIEM、Endpoint Security和Threat Hunting功能集成在一个平台上,帮助企业实现更高效的安全防护。
7. 机器学习集成
Elasticsearch已经集成了机器学习功能,可以用于异常检测、时间序列预测等任务。新版本的Elasticsearch将进一步优化机器学习功能,提高模型的训练和预测性能,并提供更多的机器学习算法供用户选择。
这块,我个人非常推荐第2部分 李捷老师讲的 GPT4 VS Elasticsearch,非常好,值得反复学习!(如下图所示)
8. 地理空间搜索与可视化
Elasticsearch 7和8系列进一步加强了地理空间搜索与可视化功能。新功能包括对GeoJSON数据的支持、地理空间数据处理功能的优化、以及更多地理空间聚合和可视化工具。这些功能将帮助用户更方便地处理和分析地理空间数据。
基于 Elasticsearch + kibana 实现 IP 地址分布地图可视化
9. 弹性计算资源调度与成本优化
Elasticsearch 引入了弹性计算资源调度功能,可以根据实际业务需求动态分配计算资源。此外,新版本还提供了成本优化工具,帮助用户评估和优化Elasticsearch集群的运行成本。
10. 更强大的API和客户端库支持
Elasticsearch 7和8系列将提供更强大的API和客户端库支持,以满足各种编程语言和平台的需求。这将使开发者更容易地集成和使用Elasticsearch功能。
11. 检索层面的优化
关于检索层面的优化,Elasticsearch 7和8系列也有很多显著的改进。以下是一些关键的检索优化功能:
11.1. Point In Time (PIT)
Point In Time(PIT)是Elasticsearch 7.10版本之后引入的一项新特性。它允许用户在搜索时创建一个快照,该快照会在一段时间内保持一致。这使得用户能够在不同的搜索请求之间获得一致的视图,从而避免了因索引更新而导致的结果不一致。
干货 | 全方位深度解读 Elasticsearch 分页查询
11.2. Wildcard字段类型
Wildcard字段类型是一种新的字段类型,专为支持高效的通配符和正则表达式查询而设计。它可以帮助用户更快地执行包含通配符和正则表达式的复杂查询,提高查询性能。
11.3. Runtime Fields
Runtime Fields是一种新的字段类型,允许用户在查询时动态计算字段值。这意味着用户无需在索引时计算和存储这些字段,从而节省存储空间和提高索引性能。此外,Runtime Fields 还支持Painless脚本语言,使用户能够灵活地定义字段计算逻辑。
Elasticsearch 运行时类型 Runtime fields 深入详解
11.4. 检索快照
Elasticsearch 7和8系列支持检索快照功能,允许用户在查询时指定一个历史索引快照。这对于需要查询历史数据或分析数据变化的应用场景非常有用。用户可以轻松地回溯到任何时点的数据状态,以满足各种业务需求。
11.5. Enrich Pipeline
Enrich Pipeline是一种新的数据处理管道,允许用户在索引时对数据进行实时查找和丰富。这类似于数据库中的lookup操作,可以帮助用户将相关数据合并到一个文档中,以便于后续的搜索和分析。Enrich Pipeline支持多种查找策略,如精确匹配、模糊匹配和地理空间匹配,以满足不同场景的需求。
Enrich Processor——Elasticsearch 跨索引关联数据新方式
11.6 搜索优化排序
Block Max WAND 算法是一种基于倒排索引的高效文档检索算法,旨在快速地识别并跳过那些没有竞争力的文档,从而提高查询效率。
Block Max WAND 算法的实现流程包括将文档集合划分为多个块,对每个块构建倒排索引,并使用倒排索引计算文档分数。在选择排名最高的块进行下一轮检索时,跳过那些分数低于已找到的文档的最低分数的块。重复此过程,直到找到足够数量的文档或者所有块都被跳过为止。
11.7 Match only Text
"Match only Text" 查询适用于需要对文本类型字段进行模糊匹配查询的场景,例如在搜索引擎、电商平台等应用中用户输入关键词进行查询,或者对非结构化或半结构化数据进行关键词匹配,如日志数据、社交媒体数据等。但需注意,该查询通常不适用于需要精确匹配或范围查询的场景,此时应选择其他查询类型,如 "term" 查询或 "range" 查询。
通过以上检索层面的优化,Elasticsearch 7和8系列在查询性能、数据存储、实时计算和数据处理等方面都取得了显著的改进,为用户提供了更为强大和灵活的检索功能。
11.8 仅保存 Doc Value 字段
Elasticsearch 在处理字段数据时,可以选择仅保存 Doc Values。Doc Values 是一种在磁盘上的列式存储格式,这种存储方式可以让 Elasticsearch 在执行查询和聚合操作时变得更高效。仅保存 Doc Value 字段的好处包括:节省磁盘空间:仅保留 Doc Values 可以减少存储索引时所需的磁盘空间,因为它仅包含实际需要用于查询和聚合的数据。提高查询性能:由于 Doc Values 是列式存储,所以在执行聚合和排序等操作时,Elasticsearch 可以更高效地处理数据。
这有助于加快查询响应时间。减少内存使用:Doc Values 在磁盘上存储,而不是在内存中,因此可以降低内存使用,尤其是在执行大量聚合操作时。缓存友好:由于 Doc Values 是按列存储的,因此在缓存时可以更好地利用 CPU 缓存行。这有助于提高查询性能。
需要注意的是,仅保存 Doc Value 字段会限制某些功能。例如,文档源(_source)字段将不可用,这意味着无法使用部分文档更新或者检索原始文档内容。因此,在仅保留 Doc Values 的情况下,应权衡这些限制与上述好处之间的关系。
12、总结
Elastic大会2023为我们带来了关于Elasticsearch 7和8系列的众多令人激动的新功能。这些新功能将有助于提高数据处理能力、降低存储成本、增强实时计算灵活性,以及提高安全性和可观测性。作为一款成熟的搜索和分析引擎,Elasticsearch在不断优化和完善,将为用户带来更好的体验。
说明:本文内容梳理自 Elastic 官方资深架构师朱杰老师的分享。
中国最大的 ElasticStack 非官方公众号