当前位置: 首页 > article >正文

Easysearch Rollup 相比 OpenSearch Rollup 的优势分析

背景

在处理时序数据时,Rollup 功能通过数据聚合显著降低存储成本,并提升查询性能。Easysearch 与 OpenSearch 均提供了 Rollup 能力,但在多个关键维度上,Easysearch Rollup 展现出更优的表现。本文将从查询体验、索引管理、聚合能力、性能优化和任务管理五个方面,分析 Easysearch Rollup 相较于 OpenSearch Rollup 的优势。


Easysearch vs OpenSearch

1. 查询体验:标准接口与无缝集成

Easysearch Rollup 支持通过标准的 _search API 查询原始索引,系统自动融合 Rollup 数据,用户无需变更现有代码或使用专用查询端点。相比之下,OpenSearch Rollup 虽然使用标准查询语法,但需要用户显式指定 Rollup 索引,无法自动结合原始数据,在需要同时访问原始与聚合数据的场景下显得更为繁琐。

  • 差异:Easysearch 支持自动融合原始与 Rollup 数据,OpenSearch 需手动指定索引。
  • 影响:Easysearch 显著降低了查询逻辑的复杂性和开发维护成本。

2. 索引管理:自动化与扩展能力

Easysearch Rollup 提供自动索引滚动功能,可通过 rollup.index_max_docs. 配置项为不同的目标 Rollup 索引设置文档数上限,触发新索引的动态创建,显著简化管理流程。此外,配置中支持使用变量(如 {{ctx.source_index}})动态生成目标索引名,便于多个任务复用同一模板,批量扩展 Rollup 任务时更加高效和灵活。

相比之下,OpenSearch Rollup 依赖 Index State Management(ISM)策略或手动操作进行索引切换,配置复杂、监控成本高,且在大规模任务部署时缺乏灵活的模板化机制。

  • 差异:Easysearch 提供内建的自动滚动机制,OpenSearch 依赖外部策略或手动配置。
  • 影响:Easysearch 更易于统一管理和大规模扩展,运维成本更低。

3. 聚合能力:更广泛的聚合类型支持

Easysearch Rollup 支持丰富的聚合类型,包括数值字段的 avgsummaxminpercentiles,关键词字段的 terms,日期字段的 date_histogramdate_range,还支持 filter 聚合与 special_metrics(可自定义聚合字段和方式)等高级功能。OpenSearch Rollup 支持的聚合类型相对有限,不支持 date_rangefilter 等复杂聚合表达式。

  • 差异:Easysearch 提供更全面的聚合能力,OpenSearch 仅支持基础聚合。
  • 影响:Easysearch 更适合构建复杂的时序分析任务,满足更广泛的业务需求。

4. 性能优化:精细化配置与资源控制

Easysearch Rollup 提供多种性能优化选项,例如 ROLLUP_SEARCH_MAX_COUNT 控制并发查询数,rollup.hours_before 限制回溯时间范围,write_optimizationfield_abbr 用于优化写入效率与运行时的内存占用。而 OpenSearch Rollup 缺乏类似的专用配置项,主要依赖通用的集群参数,灵活性与精细度较低。

  • 差异:Easysearch 提供针对 Rollup 场景的专属优化选项,OpenSearch 优化能力较通用。
  • 影响:Easysearch 在资源使用效率、查询性能和成本控制方面更具优势。

5. 任务管理:批量控制与更高灵活性

Easysearch Rollup 支持使用通配符进行任务批量管理,且新建任务默认处于非激活状态,用户可按需启用。而 OpenSearch Rollup 中,任务默认立即启用,管理粒度较粗,仅支持单个任务的启停与修改,缺乏批量操作能力。

  • 差异:Easysearch 支持批量任务管理与按需启用,OpenSearch 功能较为基础。
  • 影响:Easysearch 在多任务环境下提供更高的管理效率和控制能力。

实战示例:节点统计 Rollup 配置

以下是一个 Easysearch Rollup 任务的配置示例:

{"rollup": {"source_index": ".infini_metrics","target_index": "rollup_node_stats_{{ctx.source_index}}","timestamp": "timestamp","continuous": true,"page_size": 200,"cron": "*/5 1-23 * * *","interval": "1m","identity": ["metadata.labels.cluster_id", "metadata.labels.node_id"],"stats": [{ "max": {} }, { "min": {} }, { "value_count": {} }],"special_metrics": [{"source_field": "payload.elasticsearch.node_stats.jvm.mem.heap_used_in_bytes","metrics": [{ "avg": {} }, { "max": {} }, { "min": {} }]}],"write_optimization": true}
}
  • 亮点:支持自动索引滚动、标准 API 查询、special_metrics 高级聚合与写入优化等特性。

总结

综合来看,Easysearch Rollup 在以下方面优于 OpenSearch Rollup:

  • 查询接口的兼容性与无感知集成
  • 自动化的索引管理与扩展能力
  • 更丰富的聚合类型与表达能力
  • 针对性更强的性能优化参数
  • 灵活高效的任务批量管理机制

这些优势使 Easysearch Rollup 更加适用于复杂、多样化的时序数据处理场景,特别是在对性能、扩展性与运维效率有较高要求的系统中表现出色。如果你正在寻找一款功能全面、易于管理的 Rollup 解决方案,Easysearch 是一个值得重点考虑的选择。

相关文章:

Easysearch Rollup 相比 OpenSearch Rollup 的优势分析

背景 在处理时序数据时,Rollup 功能通过数据聚合显著降低存储成本,并提升查询性能。Easysearch 与 OpenSearch 均提供了 Rollup 能力,但在多个关键维度上,Easysearch Rollup 展现出更优的表现。本文将从查询体验、索引管理、聚合…...

如何远程访问家中服务器-FRP内网穿透详细

💡 本文会带给你 如何远程访问家中服务器FRP自动运行的方法一、准备工作 准备一台具备公网 IP 的服务器(如阿里云、腾讯云等云服务器,要求不高,几十块一年服务的轻型服务就行),用于部署 FRP 服务端(frps)。 家中电脑(内网设备),用于运行 FRP 客户端(frpc)。 下…...

EMIF详解

一、EMIF的基本定义 EMIF(External Memory Interface,外部存储器接口) 是嵌入式处理器(如DSP、FPGA、SoC)用于连接外部存储器的专用硬件接口模块,负责管理处理器与存储器之间的地址/数据总线、控制信号及时…...

人工智能在慢病管理中的具体应用全集:从技术落地到场景创新

一、AI 赋能慢病管理:技术驱动医疗革新 1.1 核心技术原理解析 在当今数字化时代,人工智能(AI)正以前所未有的态势渗透进医疗领域,尤其是在慢性病管理方面,展现出巨大的潜力和独特优势。其背后依托的机器学习、深度学习、自然语言处理(NLP)以及物联网(IoT)与可穿戴设…...

B+树节点与插入操作

B树节点与插入操作 设计B树节点 在设计B树的数据结构时,我们首先需要定义节点的格式,这将帮助我们理解如何进行插入、删除以及分裂和合并操作。以下是对B树节点设计的详细说明。 节点格式概述 所有的B树节点大小相同,这是为了后续使用自由…...

4.20刷题记录(单调栈)

第一部分:简单介绍 单调栈我的理解是在栈中存储数字出现的位置,然后通过遍历比较当前栈顶元素与当前元素的大小关系,从而确定逻辑相关顺序。 第二部分:真题讲解 (1)739. 每日温度 - 力扣(Lee…...

线性回归之多项式升维

文章目录 多项式升维简介简单案例实战案例多项式升维优缺点 多项式升维简介 多项式升维(Polynomial Expansion)是线性回归中一种常用的特征工程方法,它通过将原始特征进行多项式组合来扩展特征空间,从而让线性模型能够拟合非线性关…...

【上位机——MFC】运行时类信息机制

运行时类信息机制的使用 类必须派生自CObject类内必须添加声明宏DECLARE_DYNAMIC(theClass)3.类外必须添加实现宏 IMPLEMENT_DYNAMIC(theClass,baseClass) 具备上述三个条件后&#xff0c;CObject::IsKindOf函数就可以正确判断对象是否属于某个类。 代码示例 #include <…...

POSIX多线程,解锁高性能编程

在计算机编程的广阔领域中&#xff0c;POSIX 标准就像是一把通用的钥匙&#xff0c;开启了跨平台编程的大门。POSIX&#xff0c;即 Portable Operating System Interface&#xff08;可移植操作系统接口&#xff09; &#xff0c;是 IEEE 为了规范各种 UNIX 操作系统提供的 API…...

利用TCP+多进程技术实现私聊信息

服务器&#xff1a; import socket from multiprocessing import Process from threading import Threaduser_dic {}def send_recv(client_conn, client_addr):while 1:# 接收客户端发送的消息res client_conn.recv(1024).decode("utf-8")print("客户端发送…...

颠覆传统!毫秒级响应的跨平台文件同步革命,远程访问如本地操作般丝滑

文章目录 前言1. 安装Docker2. Go File使用演示3. 安装cpolar内网穿透4. 配置Go File公网地址5. 配置Go File固定公网地址 前言 在这个信息爆炸的时代&#xff0c;谁不曾遭遇过类似的窘境呢&#xff1f;试想&#xff0c;当你正于办公室中埋首案牍时&#xff0c;手机突然弹出一…...

CrewAI Community Version(一)——初步了解以及QuickStart样例

目录 1. CrewAI简介1.1 CrewAI Crews1.2 CrewAI Flows1.3 Crews和Flows的使用情景 2. CrewAI安装2.1 安装uv2.2 安装CrewAI CLI 3. 官网QuickStart样例3.1 创建CrewAI Crews项目3.2 项目结构3.3 .env3.4 智能体角色及其任务3.4.1 agents.yaml3.4.2 tasks.yaml 3.5 crew.py3.6 m…...

蓝桥杯 18.分考场

分考场 原题目链接 题目描述 有 n 个人参加某项特殊考试。 为了公平&#xff0c;要求任何两个认识的人不能分在同一个考场。 你的任务是求出最少需要分几个考场才能满足这个条件。 输入描述 第一行&#xff1a;一个整数 n&#xff0c;表示参加考试的人数&#xff08;1 ≤…...

1. ubuntu20.04 终端实现 ros的输出 (C++,Python)

本节对应赵虚左ROS书籍的1.3.1-->1.3.3 1&#xff09;创建一个工作空间 2&#xff09;创建一个功能包和导入依赖 3&#xff09;编辑源文件 4&#xff09;编辑配置文件 5&#xff09;编译和执行 1&#xff09;创建一个工作空间 mkdir -p catkin_ws/src cd catkin_ws ca…...

Nginx下搭建rtmp流媒体服务 并使用HLS或者OBS测试

所需下载地址&#xff1a; 通过网盘分享的文件&#xff1a;rtmp 链接: https://pan.baidu.com/s/1t21J7cOzQR1ASLrsmrYshA?pwd0000 提取码: 0000 window&#xff1a; 解压 win目录下的 nginx-rtmp-module-1.2.2.zip和nginx 1.7.11.3 Gryphon.zip安装包&#xff0c;解压时选…...

vue vite打完包后依然想保留某个文件夹下的console.log方便以后的观察的详细做法

首先需要安装包 npm i terser rollup/plugin-strip 具体的包如下&#xff1a; "rollup/plugin-strip": "^3.0.4","terser": "^5.39.0", // 这个不用也行 如果不用则需要将build中的minify和terserOptions一并删除了然后在vite.co…...

Lateral 查询详解:概念、适用场景与普通 JOIN 的区别

1. 什么是Lateral查询&#xff1f; Lateral查询&#xff08;也称为横向关联查询&#xff09;是一种特殊的子查询&#xff0c;允许子查询中引用外层查询的列&#xff08;即关联引用&#xff09;&#xff0c;并在执行时逐行对外层查询的每一行数据执行子查询。 语法上通常使用关…...

[langchain教程]langchain03——用langchain构建RAG应用

RAG RAG过程 离线过程&#xff1a; 加载文档将文档按一定条件切割成片段将切割的文本片段转为向量&#xff0c;存入检索引擎&#xff08;向量库&#xff09; 在线过程&#xff1a; 用户输入Query&#xff0c;将Query转为向量从向量库检索&#xff0c;获得相似度TopN信息将…...

Web 前端包管理工具深度解析:npm、yarn、pnpm 全面对比与实战建议

引言: 在现代web前端开发中,包管理工具的重要性不言而喻,无论是构建项目脚手架,安装ui库,管理依赖版本,还是实现monorepo项目结构,一个高效稳定的包管理工具都会大幅提升开发体验和协作效率 作为一名前端工程师,深入了解这些工具背后的机制与差异,对于提升项目可维护性和团队…...

【springsecurity oauth2授权中心】简单案例跑通流程 P1

项目被拆分开&#xff0c;需要一个授权中心使得每个项目都去授权中心登录获取用户权限。而单一项目里权限使用的是spring-security来控制的&#xff0c;每个controller方法上都有 PreAuthorize("hasAuthority(hello)") 注解来控制权限&#xff0c;想以最小的改动来实…...

spark—SQL3

连接方式 内嵌Hive&#xff1a; 使用时无需额外操作&#xff0c;但实际生产中很少使用。 外部Hive&#xff1a; 在虚拟机下载相关配置文件&#xff0c;在spark-shell中连接需将hive-site.xml拷贝到conf/目录并修改url、将MySQL驱动copy到jars/目录、把core-site.xml和hdfs-sit…...

Linux-scp命令

scp&#xff08;Secure Copy Protocol&#xff09;是基于 SSH 的安全文件传输命令&#xff0c;用于在本地和远程主机之间加密传输文件或目录。以下是详细用法和示例&#xff1a; 基本语法 scp [选项] 源文件 目标路径常用选项 选项描述-P 端口号指定 SSH 端口&#xff08;默认…...

【PyQt5】@QtCore.pyqtSlot()的作用

在 PyQt5 中&#xff0c;QtCore.pyqtSlot() 是一个装饰器&#xff0c;用于将普通的 Python 方法标记为 可被信号连接的槽函数。它的主要作用是&#xff1a; 1. 标识槽函数 核心作用&#xff1a;告诉 PyQt 这个方法是一个槽&#xff08;Slot&#xff09;&#xff0c;可以被信号…...

Go语言中的Context

目录 Go语言中的Context 1. Context的基本概念 1.1 Context的核心作用 2. Context的基本用法 2.1 创建Context 背景Context 可取消的Context 带有超时的Context 2.2 在Goroutine间传递Context 2.3 获取Context的值 为Context添加自定义数据 访问Context中的值 3. C…...

小刚说C语言刷题——1039 求三个数的最大数

1.题目描述 已知有三个不等的数&#xff0c;将其中的最大数找出来。 输入 输入只有一行&#xff0c;包括3个整数。之间用一个空格分开。 输出 输出只有一行&#xff08;这意味着末尾有一个回车符号&#xff09;&#xff0c;包括1个整数。 样例 输入 1 5 8 输出 8 2.…...

一文了解相位阵列天线中的真时延

本文要点 真时延是宽带带相位阵列天线的关键元素之一。 真时延透过在整个信号频谱上应用可变相移来消除波束斜视现象。 在相位阵列中使用时延单元或电路板&#xff0c;以提供波束控制和相移。 市场越来越需要更快、更可靠的通讯网络&#xff0c;而宽带通信系统正在努力满…...

在 UE5 编辑器中,由于游戏设置 -> EV100 设置,点击播放前后的光照不同。如何保持点击播放前后的光照一致?

​In Unreal Engine 5 (UE5), discrepancies in lighting between the editor and play modes are often due to auto exposure settings, particularly when using the EV100 system. To maintain consistent lighting across both modes, follow these steps:​YouTube1Epic …...

Git 配置 GPG 提交签名

使用 GPG 对 Git 提交进行签名&#xff0c;可以证明该提交确实是你本人提交的。这在团队协作和代码审核中非常有用&#xff0c;GitHub/GitLab 等平台也会显示 “Verified” 标签。 &#x1f9e9; 一、检查是否已安装 GPG gpg --version 如果未安装&#xff0c;可使用以下命令…...

linux学习 5 正则表达式及通配符

重心应该放在通配符的使用上 正则表达式 正则表达式是用于 文本匹配和替换 的强大工具 介绍两个交互式的网站来学习正则表达式 regexlearn 支持中文 regexone 还有一个在线测试的网址 regex101 基本规则 符号作用示例.匹配任何字符除了换行a.b -> axb/a,b[abc]匹配字符…...

eplan许可证与版本兼容性问题

在使用EPLAN电气设计软件时&#xff0c;确保许可证与软件版本之间的兼容性至关重要。不兼容的许可证可能导致软件无法正常运行&#xff0c;影响工作效率。本文将为您深入解析EPLAN许可证与版本兼容性问题&#xff0c;并提供解决方案&#xff0c;确保您的软件始终处于最佳状态。…...