汇总概述

编辑

自 8.11.0 版起已弃用。

汇总功能将在未来版本中移除。请迁移降采样

基于时间的数据(主要由其时间戳标识的文档)通常具有关联的保留策略来管理数据增长。例如,您的系统可能每秒生成 500 个文档。这将每天生成 4300 万个文档,每年近 160 亿个文档。

虽然您的分析师和数据科学家可能希望您无限期地存储这些数据以供分析,但时间是无限的,因此您的存储需求将持续无限增长。因此,保留策略通常由随着时间推移的存储成本的简单计算以及组织愿意为保留历史数据支付的费用决定。通常,这些策略在几个月或几年后开始删除数据。

存储成本是固定数量。存储 Y 数据需要花费 X 金钱。但数据片段的效用通常会随着时间而变化。以毫秒粒度收集的传感器数据现在非常有用,如果来自几周前则相当有用,如果超过几个月则仅略微有用。

因此,虽然存储十年前毫秒传感器数据的成本是固定的,但单个传感器读数的价值通常会随着时间推移而降低。它并非毫无用处——它可以轻松地为有用的分析做出贡献——但其降低的价值通常会导致删除,而不是支付固定的存储成本。

汇总以降低的粒度存储历史数据

编辑

这就是汇总发挥作用的地方。汇总功能将旧的高粒度数据汇总成降低粒度的格式以供长期存储。通过将数据“汇总”到单个摘要文档中,与原始数据相比,历史数据可以大大压缩。

例如,考虑每天生成 4300 万个文档的系统。秒级数据对实时分析很有用,但查看十年数据的历史分析可能会以更大的间隔(例如每小时或每日趋势)进行。

如果我们将 4300 万个文档压缩成每小时的摘要,我们可以节省大量空间。汇总功能自动化了此汇总历史数据的过程。

有关设置和配置汇总的详细信息,请参阅创建作业 API

汇总使用标准查询 DSL

编辑

汇总功能公开了一个新的搜索端点(/_rollup_search 与标准 /_search),它知道如何在汇总数据上进行搜索。重要的是,此端点接受 100% 正常的 Elasticsearch 查询 DSL。您的应用程序不需要学习新的 DSL 来检查历史数据,它可以简单地重用现有查询和仪表板。

可用功能有一些限制;并非所有查询和聚合都受支持,某些搜索功能(突出显示等)已禁用,可用字段取决于汇总的配置方式。这些限制在汇总搜索限制中进行了更详细的介绍。

但是,如果您的查询、聚合和仪表板仅使用可用功能,则将其重定向到历史数据非常简单。

汇总合并“实时”和“汇总”数据

编辑

汇总的一个有用功能是能够在单个查询中查询“实时”实时数据以及历史“汇总”数据。

例如,您的系统可能会保留一个月的原始数据。一个月后,它将使用汇总汇总成历史摘要,并删除原始数据。

如果您要查询原始数据,您只会看到最近一个月的数据。如果您要查询汇总数据,您只会看到一个月以上的数据。但是,RollupSearch 端点支持同时查询两者。它将获取来自这两个数据源的结果并将其合并在一起。如果“实时”和“汇总”数据之间存在重叠,则优先使用实时数据以提高准确性。

汇总是多间隔感知的

编辑

最后,汇总能够智能地利用最佳可用间隔。如果您使用过其他产品的汇总功能,您会发现它们可能很有限。如果您将汇总配置为每天间隔……您的查询和图表只能使用每天间隔。如果您需要每月间隔,则必须创建另一个明确存储每月平均值等的汇总。

汇总功能以这样的方式存储数据,即查询可以识别最小的可用间隔并将其用于处理。如果您以每天的间隔存储汇总,则可以在每天或更长的间隔(每周、每月等)上执行查询,而无需显式配置新的汇总作业。这有助于缓解汇总系统的主要缺点之一;相对于原始数据的灵活性降低。