📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

配置项作用 #

rollup.hours_before 配置项用于控制Rollup 查询的时间边界

此配置决定了系统回溯多少小时的数据应该从原始索引查询,而不是从 Rollup 索引查询。这确保了最近的数据(还未被 Rollup 的数据)从原始索引查询,而较旧的数据从 Rollup 索引查询。

配置项属性 #

  • 配置路径: rollup.hours_before
  • 数据类型: Integer(整数值,小时)
  • 默认值: 无明确默认(需根据 Rollup 任务配置)
  • 是否可选: 是
  • 作用域: ClusterScope(集群级别)
  • 动态更新: 是(可以动态更新)

配置项详解 #

工作机制 #

时间边界计算

当前时间: 2026-02-04 10:00:00
hours_before: 24


计算边界:
rollupEnd = now - 24 hours
         = 2026-02-03 10:00:00


查询范围划分:
├── 最近 24 小时
│   └── 查询: 原始索引 ✅
└── 24 小时以前
    └── 查询: Rollup 索引 ✅


查询优化:
├── 避免查询不存在 Rollup 的数据
├── 减少查询错误
└── 提高性能

与 Rollup 任务配合 #


Rollup 任务调度配置:

每小时 Rollup:
hours_before: 2
    │
    ├── 最近 2 小时: 原始索引
    └── 2 小时以前: Rollup 索引


每天 Rollup:
hours_before: 48
    │
    ├── 最近 2 天: 原始索引
    └── 2 天以前: Rollup 索引


每周 Rollup:
hours_before: 168 (7天 × 24小时)
    │
    ├── 最近 1 周: 原始索引
    └── 1 周以前: Rollup 索引

配置建议 #

每日 Rollup #

rollup:
  hours_before: 48  # 2天

建议: 每日 Rollup 任务使用 48 小时。

每周 Rollup #

rollup:
  hours_before: 168  # 7天

建议: 每周 Rollup 任务使用 168 小时。

每小时 Rollup #

rollup:
  hours_before: 2  # 2小时

建议: 每小时 Rollup 任务使用 2 小时。

动态更新 #

PUT /_cluster/settings
{
  "transient": {
    "rollup.hours_before": 72
  }
}

相关配置 #

配置项作用默认值
hours_before时间边界-
max_docs最大文档数20000000

注意事项 #

  1. 配置同步: 应与 Rollup 任务调度保持一致。

  2. 动态更新: 可以动态更新。

  3. 查询分割: 系统自动分割查询。

  4. 性能优化: 避免查询不存在 Rollup 的数据。

  5. 数据一致性: 确保时间边界正确。

  6. 监控建议: 监控查询性能。

  7. 测试验证: 调整后应验证查询结果。