Elasticsearch Rolling up historical data Overview

版權聲明:本文爲博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/huochen1994/article/details/81504877

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章