Elasticsearch Rollup 数据

2025年3月17日 | 阅读 3 分钟

Elasticsearch 提供一个 rollup 功能,该功能有助于汇总索引中的数据,并将其滚动到一个新的索引中。这种存储的数据可以在未来需要时用于分析,但存储成本只是原始数据的一小部分。这对于保留历史数据以供分析非常有用。然而,由于存档如此海量数据的财务成本,有时会被避免。

Elasticsearch Rollup data

例如,考虑一个系统每天生成 4700 万个文档,这需要大量内存来存储它们。每秒,这些数据都对实时分析有用。如果是历史分析,如果我们查看 5 年的数据,我们需要以较大的时间间隔工作,例如每小时或每天的趋势。我们可以通过将这 4700 万个文档压缩成每小时的摘要来节省大量空间。

Elasticsearch 6.3 附带了 rolling up 功能。elasticsearch 的 rollup 功能对于在汇总后存储历史数据非常有用。因此,汇总后占用更少的内存来存储。请注意,rollup 作业是一个周期性任务。

rollup 入门

要开始使用 rollup 功能,我们必须创建一个或多个 "Rollup 作业" 来汇总数据。这些作业会汇总您指定的索引,并将汇总的文档放入二级索引中。您可以选择您选择的二级索引来放置这些汇总的文档。这些 rollup 作业在后台持续运行。

创建索引

首先,我们将创建一个包含不同时间戳的索引。创建索引后,我们将使用 cron 作业定期创建 rollup 作业。您的文档可能如下所示 -

复制代码

响应

通过执行上述索引创建查询以及时间戳,您将得到与下面给出的响应相同的响应 -

rollupexample 索引添加更多文档。

复制代码

创建 rollup 作业

现在我们将使用 _rollup API 创建一个 rollup 作业。这些文档将汇总为每小时的摘要。rollup 数据的代码可能如下所示 -

复制代码

cron 参数有助于控制作业的激活。它控制作业何时以及多久激活一次。当 rollup 作业的 cron 计划触发时,它会开始从上次激活后停止的点汇总数据的过程。

Rollup 搜索

一旦作业开始运行并处理了一些数据,我们就可以使用 DSL 查询来搜索一些数据。查看以下查询以搜索汇总数据 -

复制代码


下一主题AWS Elasticsearch