配置项作用 #
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 |
注意事项 #
配置同步: 应与 Rollup 任务调度保持一致。
动态更新: 可以动态更新。
查询分割: 系统自动分割查询。
性能优化: 避免查询不存在 Rollup 的数据。
数据一致性: 确保时间边界正确。
监控建议: 监控查询性能。
测试验证: 调整后应验证查询结果。





