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

作者: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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Android Studio实现刮刮卡效果

代码和刮刮乐图片参考网络 实现效果 MainActivity import android.app.Activity; import android.os.Bundle;public class MainActivity extends Activity {Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentVi…

【Java可执行程序命令】学习路线攻略,史诗级别全汇总 ~

Java可执行程序命令学习路线攻略 📗文章指路Java可执行命令1、编译工具 javac2、程序启动工具 java3、API文档生成 javadoc4、反编译工具 javap5、打包部署工具 jar6、调试工具 jdb7、C头文件创建 javah8、JWS应用程序启动 javaws9、安装包创建 javapackager10、JAR…

Vue3状态管理库Pinia——自定义持久化插件

个人简介 👀个人主页: 前端杂货铺 🙋‍♂️学习方向: 主攻前端方向,正逐渐往全干发展 📃个人状态: 研发工程师,现效力于中国工业软件事业 🚀人生格言: 积跬步…

PostgreSQL和MySQL多维度对比

文章目录 0.前言1. 基础对比2.PostgreSQL和MySQL语法对比3. 特性4. 参考文档 0.前言 在当今的软件开发和数据管理领域,数据库是至关重要的基础设施之一。选择正确的数据库管理系统(DBMS)对于应用程序的性能、可扩展性和数据完整性至关重要。…

SpringBoot集成Logback日志

SpringBoot集成Logback日志 文章目录 SpringBoot集成Logback日志一、什么是日志二、Logback简单介绍三、SpringBoot项目中使用Logback四、概念介绍一、日志记录器Logger1.1、日志记录器对象生成1.2、记录器的层级结构1.3、过滤器1.4、logger设置日志级别1.5、java代码演示1.6、…

【论文阅读】Deep Instance Segmentation With Automotive Radar Detection Points

基于汽车雷达检测点的深度实例分割 一个区别: automotive radar 汽车雷达 : 分辨率低,点云稀疏,语义上模糊,不适合直接使用用于密集LiDAR点开发的方法 ; 返回的物体图像不如LIDAR精确,可以…

API 测试 | 了解 API 接口概念|电商平台 API 接口测试指南

什么是 API? API 是一个缩写,它代表了一个 pplication P AGC 软件覆盖整个房间。API 是用于构建软件应用程序的一组例程,协议和工具。API 指定一个软件程序应如何与其他软件程序进行交互。 例行程序:执行特定任务的程序。例程也称…

Matlab滤波、频谱分析

Matlab滤波、频谱分析 滤波: 某目标信号是由5、15、30Hz正弦波混合而成的混合信号,现需要设计一个滤波器滤掉5、30Hz两种频率。 分析:显然我们应该设计一个带通滤波器,通带频率落在15Hz附近。 % 滤波 % 某目标信号是由5、15、3…

LVS工作环境配置

一、LVS-DR工作模式配置 模拟环境如下: 1台客户机 1台LVS负载调度器 2台web服务器 1、环境部署 (1)LVS负载调度器 yum install -y ipvsadm # 在LVS负载调度器上进行环境安装 ifconfig ens33:200 192.168.134.200/24 # 配置LVS的VIP…

Mir 2.14 正式发布,Ubuntu 使用的 Linux 显示服务器

导读Canonical 公司最近发布了 Mir 2.14,这是该项目的最新版本。 Mir 2.14 在 Wayland 方面通过 ext-session-lock-v1 协议增加了对屏幕锁定器 (screen lockers) 的支持,并最终支持 Wayland 拖放。此外还整合了渲染平台的实现,放弃了之前在 R…

嵌入式领域:人才供需失衡,发展潜力巨大

嵌入式技术正快速发展,ARM处理器、嵌入式操作系统、LINUX等技术助力嵌入式领域崛起。然而,行业新颖且门槛高,缺乏专业指导。因此,嵌入式人才稀缺,身价水涨船高。 未来几年,嵌入式系统将在信息化、智能化、…

【位操作符的几种题型】

位操作符的几种题型 目录 题型一:寻找“单身狗”。 题型二:计算一个数在二进制中1的个数 题型三:不允许创建临时变量,交换两个整数的内容 题型一:寻找“单身狗”。 1.1题目解析 在一个整型数组中,只有…

【数据结构】‘双向链表’冲冲冲

💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃个人主页 :阿然成长日记 …

Vue脚手架安装

安装包下载 安装包可以去官网下载(官网地址),建议下载稳定版。 2. 选择安装目录 选择安装到一个,没有中文,没有空格的目录下(新建一个文件夹NodeJS) 3. 验证NodeJS环境变量 NodeJS 安装完…

AIGC大模型ChatGLM2-6B:国产版chatgpt本地部署及体验

1 ChatGLM2-6B介绍 ChatGLM是清华技术成果转化的公司智谱AI研发的支持中英双语的对话机器人。ChatGLM基于GLM130B千亿基础模型训练,它具备多领域知识、代码能力、常识推理及运用能力;支持与用户通过自然语言对话进行交互,处理多种自然语言任务…

CNN的特性

1、位移不变性 它指的是无论物体在图像中的什么位置,卷积神经网络的识别结果都应该是一样的。 因为CNN就是利用一个kernel在整张图像上不断步进来完成卷积操作的,而且在这个过程中kernel的参数是共享的。换句话说,它其实就是拿了同一张“通…

徐雷,太委屈

文 | 螳螂观察 作者 | 仲夏 自3月8日上线以来,京东百亿补贴已整整5个月。相比首月投入10个亿,京东百亿补贴如今的存在显得尴尬与鸡肋。 眼看百亿补贴难以肩负发力下沉市场、扛起低价策略的重任,京东近期又将“京喜拼拼”更名“京东拼拼”卷…

RabbitMQ 备份交换机和死信交换机

为处理生产者生产者将消息推送到交换机中,交换机按照消息中的路由键即自身策略无法将消息投递到指定队列中造成消息丢失的问题,可以使用备份交换机。 为处理在消息队列中到达TTL的过期消息,可采用死信交换机进行消息转存。 通过上述描述可知&…

[vue-element-admin]下载与安装

一、环境搭建 1 nodejs 源码地址 sudo apt install build-essential # 内含gcc g make等全家桶git clone git://github.com/nodejs/node.git # 下载源码 cd node sudo ./config sudo make && make install # 编译 node -v # 查看是否编译成功二、遇见的问题 问题…

【606. 根据二叉树创建字符串】

目录 1.题目描述2.算法思想3.代码实现 1.题目描述 这道题的重点其实就是要省去不影响映射的括号。如: 2.算法思想 3.代码实现 class Solution { public:string _tree2str(TreeNode* root,string& ret){if(rootnullptr){return "";}retto_string(ro…