Elasticsearch Rolling up historical data Overview

Elasticsearch Rolling up historical data

Overview

And while we continue to believe that most data tends to have value over a long period of time, the relative value of the data can decrease as it ages

虽然大多数的数据在很长一段时间内都具有价值,但数据的相对价值会随着时间的增长而降低。

通过汇总数据来减少存储成本成为了一种选择。

Elasticsearch目前支持配置一个定时任务自动把历史数据汇总到一个新的索引当中。

API Quick Reference

About Job

获取已有任务列表
GET /_xpack/rollup/job/_all
新增一个任务

新增一个id为video_test的任务

PUT /_xpack/rollup/job/video_test
{
    # 源索引
    "index_pattern": "sinavideo_dispatcher-*",
    # 汇总结果索引
    "rollup_index": "video_test_2",
    # 任务调用规则(crontable)
    "cron": "*/1 * * * * ?",
    "page_size" :1000,
    # 聚合规则
    "groups" : {
      "date_histogram": {
        "field": "@timestamp",
        # 聚合粒度
        "interval": "5m",
        # 数据延迟
        "delay": "15m"
      },
      "terms": {
        "fields": ["domain", "http_code"]
      }
    },
    # 聚合指标
    "metrics": [
        {
            "field": "body_bytes_send",
            "metrics": ["avg"]
        }
    ]
}

具体各参数参照rollup-job-config

任务启停

每一个任务默认是停止的,需要调用接口启动

POST /_xpack/rollup/job/video_test/_start

停止

POST /_xpack/rollup/job/video_test/_stop
获取任务配置

获取任务配置信息,其中被删除的任务无法查看

GET /_xpack/rollup/job/video_test/
获取索引对应的任务元数据信息
GET /_xpack/rollup/data/sinavideo_dispatcher-*

无论是实时数据还是聚合数据都支持_rollup_search_search两个接口。但是如果要获取聚合的结果,需要调用_rollup_search接口。

以下是获取每个域名每5分钟的平均流量大小:

GET video_test_2/_rollup_search
{
  "size": 0,
  "aggregations": {
    "timeline": {
      "date_histogram": {
        "field": "@timestamp",
        "interval": "5m"
      },
      "aggs": {
        "domains": {
          "terms": {
            "field": "domain",
            "size": 10
          },
          "aggs": {
            "avg_body": {
              "avg": {
                "field": "body_bytes_send"
              }
            }
          }
        }
      }
    }
  }
}

_rollup_search接口支持同时查询实时数据和汇总后的数据。当实时数据和汇总数据存在重叠时,将默认优先使用实时数据来提高数据准确性

GET sinavideo_dispatcher-*,video_test_2/_rollup_search
{
    ...
}

Limitations

  • Only one Rollup index per search(查询时仅能指定一个汇总索引,对实时索引没有限定)
  • Can only aggregate what’s been stored(没有汇总的结果当然无法搜索)
  • Interval Granularity(配置任务时定义了聚合时间粒度,后续无法获取小于这个粒度的汇总数据)
  • Limited aggregation components(有限的聚合方法)
  • Limited querying components(有限的查询方法)

存在的问题

  • Job目前无法修改
  • Kibana暂时不支持_rollup_search

Reference

X-Pack APIs

Rolling up historical data

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值