Elastic Stack 8.9:更快的跨集群搜索和指标聚合

news2024/11/20 16:36:55

作者:Tyler Perkins, Gilad Gal, Teresa Soler, Shani Sagiv, Bernhard Suhm, George Kobar

 

Elastic Stack 8.9 在多个方面实现了显着的性能改进:Kibana® 中更快的跨集群搜索、Elasticsearch® 更快的聚合,以及更快、更相关的向量搜索(阅读 Elastic Search 8.9 博客以了解更多信息)。 这些性能增强可加速大规模洞察,并使 Elastic® 的矢量搜索成为相关性和速度方面的领导者。 此外,还可以利用 Kibana 中的多项增强功能、地理线的简化聚合以及使用 Terraform 从单个位置简化跨集群警报规则的管理。

这些新功能使客户能够:

  • 指标聚合速度提高 90% 以上
  • 将跨集群搜索的延迟减少高达 80 倍
  • 使用 Terraform 从一个位置管理跨多个集群的警报规则

Elastic Stack 8.9 现已在 Elastic Cloud 上推出,这是唯一包含最新版本中所有新功能的托管 Elasticsearch 产品。 你还可以下载 Elastic Stack 和我们的云编排产品 Elastic Cloud Enterprise 和 Elastic Cloud for Kubernetes,以获得自我管理的体验。

Elastic 8.9 中还有哪些新功能? 查看8.9公告帖子了解更多>>

指标聚合延迟的根本改进

作为时间序列数据库 (TSDB) 项目的一部分,与优化 Elasticsearch 指标数据相关,我们致力于改善指标数据经常使用的聚合的延迟。 我们专注于 Kubernetes 指标,并在聚合延迟方面实现了一到两个数量级的改进(即,运行相关聚合所花费的时间是 8.9 之前的 10% 到 1%)。

让我们检查一下详细信息和相关的公开每天基准:

  • 我们改进了 Elasticsearch 的默认刷新行为。 默认情况下,仅当分片处于搜索活动状态时才会发生刷新,并且分片在搜索活动 30 秒后进入搜索空闲状态。 当分片处于搜索空闲状态时,不会发生计划刷新,这有利于索引吞吐量。 然而,搜索一个搜索空闲分片可能会显着增加查询时间 - 这在 Kibana 中加载可视化时会很明显,因为在闲置一段时间后,仪表板加载速度会很慢。 我们进行了两项更改,将聚合搜索的延迟减少了 90% 以上,因为分片处于搜索空闲状态。
    • 我们改进了搜索 api 的 can match 阶段,有时无需执行任何与搜索相关的 I/O 即可确定查询是否与分片不匹配。 对于查询不存在的字段或不匹配的常量关键字字段的特定查询,我们可以跳过整个分片,而无需在数据节点上执行任何与搜索相关的 I/O。 这改进了默认刷新行为,因为分片保持搜索空闲状态并且不会发生计划刷新。
    • 当分片处于搜索空闲状态并且确实需要进行刷新时,刷新会立即执行,而不是让刷新调度程序启动。 这减少了搜索空闲分片时的延迟,并将查询时间减少了 1 秒以上(具体改进取决于数据节点上分配的分片数量)。

  • 我们改进了基数聚合的能力,以识别某些文档集无法添加新值,因此不应将其作为基数聚合运行的一部分进行检查。 此优化导致基数聚合改进超过 85%,在某些条件下超过 99%。
  • 我们改变了使用直方图的方式,从 AVL 树更改为合并,以一点点准确度(从大约 0.1% 的错误更改为大约 1% 的错误)换取大量聚合延迟改进(聚合运行速度提高两倍到 50 几倍)。 此改进会影响一组聚合,包括百分位数、百分位数排名等。
从我们的公开每天基准中 降采样(downsample)性能改进

 

跨集群搜索速度更快,网络行程更少

跨集群搜索 (CCS) 可让你将多个 Elasticsearch 集群联合到一个 Kibana 或搜索端点中,以帮助满足你的数据本地化、监管和合规性以及扩展需求。 集群可以位于世界任何地方、Elastic Cloud 中,或者位于你自己的云或本地自我管理部署中。

作为一个分布式系统,Elasticsearch 会受到网络延迟的影响。 这种情况在跨集群设置中会被放大,其中搜索必须通过网络展开到多个集群以及这些集群内的节点。 网络行程越多,网络延迟对性能的影响就越大。 传统上,如果不使用我们称为 “最小化往返” 的选项,跨集群搜索就会涉及大量网络行程。

即使使用 CCS,search API 也支持最小化往返,但是当 Kibana 通过 CCS 进行搜索时,它在幕后使用 async_search API,该 API 不支持最小化往返。 我们在 8.9 中通过在异步搜索中添加对 ccs_minimize_roundtrips=true 的支持解决了该限制。 Kibana 8.9 默认使用此模式。 

随着更多分片的参与,性能增益会增加。 我们运行了跨集群搜索操作的基准测试,模拟了具有不同数量的远程集群的典型 Kibana 使用场景 —— 最多 150 个集群,总共 150,000 个分片! 在这些测试中,我们发现常见任务(例如加载 “Discover” 页面或仪表板)在最小化往返次数时加载速度提高了 10 到 80 倍。

有时我们还看到,随着我们添加更多远程集群,平均时间(下面的粉红色条)保持更加一致。

 

在不最小化往返的情况下,它往往会更明显地增加。

 

总体而言,我们预计在 8.9 中使用 CCS 时速度会有显着提高。

针对冷和冰冻层进行更快、更可靠的 CCS 搜索

我们还改进了针对可搜索快照(冷或冻结层数据)的远程搜索,并优化了分片跳过。 本地搜索(非 CCS)可以使用集群状态信息过滤(跳过)不相关的分片,将搜索请求的时间范围与分片元数据中的最小和最大时间戳进行比较。 到目前为止,CCS 在不最小化往返行程时不支持这种分片跳过机制。

在 8.9 中,我们在远程集群中执行搜索的 can_match 阶段。 这使得搜索在使用和不使用 CCS 的情况下表现相似,因为协调节点可以确定要跳过哪些分片,这对于冷索引和冻结索引尤其重要。 这可以通过不那么频繁地访问远程集群来改善本地和远程集群之间存在延迟的情况。 请注意,此优化仅在不最小化往返行程时才相关。 最小化往返的跨集群搜索已经具备了这种能力。 在 8.9 中,无论哪种方式都可以满足你的需求。

 

查找与运行状况报告相关的 ILM 策略

索引生命周期管理 (ILM) 可自动执行你的数据管理工作,执行 rollover、shrink、merge、downsample 操作等,并将数据从一层移动到下一层,以便你可以优化成本和性能权衡。 它通过一系列操作(rollover、shrink等)和步骤(等待活动分片等)来实现这一点。 如果 ILM 在某个步骤中停留太久,数据可能会堆积在错误的层中并导致问题。

为了帮助你尽早注意到 ILM 陷入困境,我们增强了运行状况报告 API (Health Report API)中的 ILM 运行状况指示器。 新规则将随时根据当前操作和步骤检查 ILM 策略管理的所有索引。 例如,如果索引处于 rollover > wait-for-active-shards 组合超过 24 小时,或者步骤 wait-for-active-shards 已重试超过 100 次,则指示器将变为黄色。

可以使用运行状况指示器设置(health indicator settings)更改时间和重试阈值。

该指示器还将显示在 Elastic Cloud Deployments 控制台中。 你可以更快地识别可能导致集群性能或稳定性问题的问题。 与运行状况报告的其余部分一样,我们将指出可能的影响并包含相关故障排除指南的链接。

地理线简化

地理数据的一个流行用例是资产(asset)生成位置的时间序列,每个位置都有自己的时间戳,并且系统允许根据该时间序列跟踪资产。 Elasticsearch 现在支持简化算法,允许基于位置点的较小子集(由 “size” 参数定义)生成一条线,同时最大限度地减少由此产生的不准确性。 此功能基于时间序列索引模式基础架构 (TSDS)。 这种简化减少了内存消耗,并支持基于大量位置创建复杂的地理线。 地理线简化在技术预览版中发布。

可视化和规则管理的增强

Elastic 8.9 对现有 Kibana 功能进行了许多增强 - 我们在下面重点介绍其中两个。 此外,“规则即代码(Rules as code)” 通过利用 Terraform 复制规则并应用版本控制,显着简化了集群中多个节点的规则管理,这有助于维护可观察性和安全问题的监控规则。

Kibana 堆积条形图图例

堆叠条形图图例的顺序现在基于受欢迎程度,最重要的元素显示在顶部。 你不再需要滚动到图例底部即可查找图表中最受欢迎的数据。

之前:

 从 8.9 开始新增:

Kibana Lens 阶梯曲线视觉

Lens 现在支持折线图的三个新选项。 三个选项是直线、平滑和阶梯。 阶梯曲线折线图可以帮助用户清楚地看到数据何时以不规则的间隔变化,这有助于避免误解。 创建可视化时,在可视化类型下拉列表中选择线。 然后使用视觉选项菜单在直线插值下拉列表中选择直线(straight)、平滑(smooth)或步进(step)。 

8-9-platform-blog-visual-options-menu

规则即代码

Terraform Elastic Stack 提供程序发布了一项新功能,允许用户在 Kibana 中管理其警报规则和连接器。 这使用户能够自动化手动流程,从一个位置管理多个集群,并解锁更多用例,例如版本控制。

 

等待 ... 还有更多!

从 8.9 发布公告博客中查看搜索、可观察性或安全性方面的哪些其他增强功能可能与你相关! 有关前面提到的功能的更多信息,请参阅 8.9 Elasticsearch 的新增功能和 8.9 Kibana 的新增功能,了解更多详细信息。 最后,发布说明将为你提供 Elastic 8.9 提供的所有增强功能的完整列表。

试试看

现有 Elastic Cloud 客户可以直接从 Elastic Cloud 控制台访问其中许多功能。 没有利用云上的 Elastic? 开始免费试用。

原文:Elastic Stack 8.9: Faster aggregations and cross-cluster searches | Elastic Blog

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/851445.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++ ModBUS TCP客户端工具 qModMaster 介绍及使用

qModMaster工具介绍 QModMaster是一个基于Qt的Modbus主站(Master)模拟器,用于模拟和测试Modbus TCP和RTU通信。它提供了一个直观的图形界面,使用户能够轻松设置和发送Modbus请求,并查看和分析响应数据。 以下是QModM…

互联网时代下如何搞好网络口碑?

移动互联网时代到来,网络口碑对于任何一家企业都不可忽视,没有口碑的企业广告满天飞但是成交的客户寥寥无几,口碑好的企业没有广告但是仍然能保持业绩增长,这是一个不争的事实。 有人会说,业绩好的是人家产品好所以口碑…

选读SQL经典实例笔记20_Oracle语法示例

1. 计算一年有多少天 1.1. sql select Days in 2005: ||to_char(add_months(trunc(sysdate,y),12)-1,DDD)as reportfrom dualunion allselect Days in 2004: ||to_char(add_months(trunc(to_date(01-SEP-2004),y),12)-1,DDD)from dual REPORT ----------------- Days in 200…

Java中的SimpleDateFormat方法分析

Java中的SimpleDateFormat方法分析 先进行专栏介绍SimpleDateFormat方法分析 常用方法构造方法格式化(从Date到String)举例分析 解析(从String到Date)举例分析 设置方法:注意 代码示例代码结果 综合案例效果 先进行专栏介绍 本专栏是自己学J…

服装行业多模态算法个性化产品定制方案 | 京东云技术团队

一、项目背景 AI赋能服装设计师,设计好看、好穿、好卖的服装 传统服装行业痛点 • 设计师无法准确捕捉市场趋势,抓住中国潮流 • 上新周期长,高库存滞销风险大 • 基本款居多,难以满足消费者个性化需求 解决方案 • GPT数据…

封装统一Api接口

第一步 第二步 第三步 因为是新的页面,所以需要在路由上面写 第四步 操作商品的所有接口 第五步 浏览器结果

14.3.6 【Linux】LVM 相关指令汇整与 LVM 的关闭

至于文件系统阶段 (filesystem 的格式化处理) 部分,还需要以 xfsgrowfs 来修订文件系统实际的大小才行。至于虽然 LVM 可以弹性的管理你的磁盘容量,但是要注意,如果你想要使用 LVM 管理您的硬盘时,那么在安…

性能分析5部曲:瓶颈分析与问题定位,如何快速解决瓶颈?

一、引言 很多做性能测试的同学都问过我这样一个问题:鱼哥(Carl_奕然),你说性能测试的重点是什么? 我的回答很简单:瓶颈分析与问题定位。 在性能项目的整个周期,不管是脚本设计,脚本编写还是脚本执行,都…

深入探索 Spring MVC:构建优雅的Web应用

文章目录 前言一、什么是 Spring MVC1.1 什么是 MVC1.2 什么是 Spring MVC 二、Spring MVC 项目的创建2.1 项目的创建2.2 第一个 Spring MVC 程序 —— Hello World 三、RequestMapping 注解3.1 常用属性3.2 方法级别和类级别注解3.3 GetMapping、PostMapping、PutMapping、Del…

贝叶斯深度学习的温和介绍

一、说明 欢迎来到令人兴奋的概率编程世界!本文是对这个领域的温和介绍,你只需要对深度学习和贝叶斯统计有一个基本的了解。如果像我一样,你听说过贝叶斯深度学习,并且你猜它涉及贝叶斯统计,但你不知道它是如何使用的&…

SaaS化大型微服务架构智慧工地云平台源码

智慧工地云平台建设是采用先进的移动互联、物联网、云计算、大数据等新一代信息技术,主要由信息采集层、网络接入层、网络传输层、信息储存与处理层组成,主要包括云管理平台、综合管理系统、质量管理系统、安全管理系统等模块。施工管理人员可通过PC端&a…

【2.1】Java微服务: Nacos的使用

目录 Nacos介绍 Nacos安装 下载和安装 修改端口 启动 服务注册与发现 导入Nacos管理依赖 导入服务依赖 配置Nacos的服务地址 启动服务,查看已注册的服务 服务分级存储模型 分级存储模型介绍 具体结构 配置实例集群 同集群优先的负载均衡策略 服务权重配置…

spring-boot webservice的例子

webservice发布服务 源码下载地址 spring-boot-webservice例子资源-CSDN文库 webservice cilent调用 源码下载地址 spring-boot-clintwebservice调用服务的例子资源-CSDN文库

CSS的引入方式有哪些?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 内联样式(Inline Styles)⭐ 内部样式表(Internal Stylesheet)⭐ 外部样式表(External Stylesheet)⭐ 导入样式表(Import Stylesheet)⭐ 写在最…

Netty:ChannelHandler的两个生命周期监听事件方法:handlerAdded 和 handlerRemoved

说明 io.netty.channel.ChannelHandler有两个生命周期监听事件方法: handlerAdded(ChannelHandlerContext ctx):当ChannelHandler被添加到实际的上下文、并且已经准备就绪等待处理事件的时候被调用。 handlerRemoved(ChannelHandlerContext ctx)&#…

光猫棒是什么?

名称: 光猫棒 问题描述: 光猫棒是什么? 回答: 1.PON STICK光模块也被称之为猫棒,可以充分满足电信级FTTB、FTTH、FTTO设备要求,可以热插拔到MikroTik软路由或者交换机的SFP插槽工作,整机就可作为ONT甚…

35岁是人生的分水岭,前后精力大不一样!

目录 【前言】 一、35岁,除了步入国内职场世俗意义上的尴尬期,也是体能下滑的断崖期 二、肥胖、疼痛、体能下滑,35岁的身体焦虑 三、35岁不是体能衰老的分界线 四、35岁不是年龄焦虑的节点,运动让人更能掌控身体 【写在最后…

笔记本电脑如何把sd卡数据恢复

在使用笔记本电脑过程中,如果不小心将SD卡里面的重要数据弄丢怎么办呢?别着急,本文将向您介绍SD卡数据丢失常见原因和恢复方法。 ▌一、SD卡数据丢失常见原因 - 意外删除:误操作或不小心将文件或文件夹删除。 - 误格式化&#…

【leetcode】394. 字符串解码

题目链接:力扣 给定一个经过编码的字符串,返回它解码后的字符串。 编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。 你可以认为输入字符串总是有效的;输入字符串中没…

SLL VPN

1. SSL工作过程是什么? 第一阶段:客户端首先发送client hello消息到服务端,服务端收到client hello信息后,再发送 server hello消息到客户端。 第二阶段: 第三阶段: 第四阶…