Easysearch Rollup 相比 OpenSearch Rollup 的优势分析
Easysearch
rollup
performance
OpenSearch
2025-04-13

背景 #

在处理时序数据时,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 x
Gateway x
Console x