elasticSearch的rollover api(索引声明周期管理&&冷热分离)

rollover可以根据索引大小,文档数或使用期限自动过渡到新索引。当rollover触发后,将创建新索引,写别名(write alias)将更新为指向新索引,所有后续更新将都写入新索引。

版本:elasticSearch6.3提供了rollover功能。

rollover的使用场景:

Elasticsearch中的rollover接口功能来滚动存储日志,从而达到优化日志查询效率的目的,也方便了对老旧日志数据的管理。

rollover适合存放日志数据、索引非常大、索引实时导入等场景。

elasticSearch索引生命周期的4个阶段:

阶段 描述
hot 主要处理时序数据的实时写入
warm 可以用来查询,但是不再写入
cold 索引不再有更新操作,并且查询很会很少
delete 数据将被删除

上述四个阶段不是必须同时存在。

2. 创建方式

删除策略的命令:

DELETE _ilm/policy/test_demo_policy 

注意,删除策略前,需要删除使用该策略的所有索引。

2.1 配置策略

# 配置策略
PUT _ilm/policy/test_demo_policy 
{
  "policy": {                       
    "phases": {
      "hot": {                      
        "actions": {
              "rollover":{
                  "max_docs":1
              }
        }
      },
      "delete": {
        "min_age": "30s",           
        "actions": {
          "delete": {}              
        }
      }
    }
  }
}

上述的意思是:文档中最大的条数为1条(便于测试),自动回滚的文件将在30s后删除(便于测试)。

也可以如下图配置存活时间和最大的内存数。

PUT _ilm/policy/policy_index
{
  "policy": {
    "phases": {
      "hot": {                      
        "actions": {
          "rollover": {
            "max_size": "50GB",     
            "max_age": "5m"
          }
        }
      }
    }
  }
}

2.2 创建模板

PUT _template/test_demo_template
{
  "index_patterns": ["test-demo-*"],                 
  "settings": {
    "number_of_shards": 1,
    "number_of_replicas": 1,
    "index.lifecycle.name": "test_demo_policy",      
    "index.lifecycle.rollover_alias": "test-demo"    
  },
  "aliases":{
    "index-test-read":{
      "is_write_index":"false"
    }
  }
}

上文中,创建了名为test-demo的rollover_alias。但是并未和索引进行绑定,需要进行显示的绑定,否则将出现:

elasticSearch的rollover api(索引声明周期管理&&冷热分离)_第1张图片
image.png

2.3 创建文档并绑定别名

POST /_aliases
{
  "actions": [
    {
      "add": {
        "index": "test-demo-000001",
        "alias": "test-demo",
        "is_write_index": true 
      }
    }
  ]
}

2.4 kibana控制台

elasticSearch的rollover api(索引声明周期管理&&冷热分离)_第2张图片
image.png
elasticSearch的rollover api(索引声明周期管理&&冷热分离)_第3张图片
image.png

也可以在改页面上配置policy。

你可能感兴趣的:(elasticSearch的rollover api(索引声明周期管理&&冷热分离))