ES中如何不采用数据流管理时序数据?

前言

前面很多文章都是介绍采用数据流结合索引生命周期管理ILM机制管理索引数据,确实非常方便。
但是采用数据流有个很大的弊端是不能直接向数据流发起更新和删除请求,需要采用update_by_query或delete_by_query的API方式进行更新和删除请求,或者直接向数据流中的后备索引发起更新和删除请求。

那么,我们能否不借助数据流,直接管理索引的生命周期呢?
答案是肯定的。我们可以使用索引别名来管理包含时间序列数据的索引,并定期转移到新的索引。


一、具体步骤

为了使用索引别名实现自动滚动和时序数据的生命周期管理,需要这么做:
在这里插入图片描述
官方文档:Manage time series data without data streamsedit

二、创建生命周期策略

说明:该步骤主要是声明索引各生命周期的生存时长和行为,和之前使用数据流时没有区别。

PUT _ilm/policy/timeseries_policy
{
  "policy": {
    "phases": {
      "hot": {                                
        "actions": {
          "rollover": {
            "max_primary_shard_size": "50GB", 
            "max_age": "30d"
          }
        }
      },
      "delete": {
        "min_age": "90d",                     
        "actions": {
          "delete": {}                        
        }
      }
    }
  }
}

三、创建索引模板

PUT _index_template/timeseries_template
{
  "index_patterns": ["timeseries-*"],                 
  "template": {
    "settings": {
      "number_of_shards": 1,
      "number_of_replicas": 1,
      "index.lifecycle.name": "timeseries_policy",      
      "index.lifecycle.rollover_alias": "timeseries"    
    }
  }
}

说明:
相比数据流时的索引模板定义,少了data_stream属性,多了滚动索引别名index.lifecycle.rollover_alias的属性。

四、使用写索引别名初始化时序索引

要启动工作,需要引导初始索引并将其指定为索引模板中指定的翻转别名的写索引。此索引的名称必须与模板的索引模式匹配,并以数字结尾。在滚动时,该值将递增,以生成新索引的名称。

PUT timeseries-000001
{
  "aliases": {
    "timeseries": {
      "is_write_index": true
    }
  }
}

说明:
创建索引timeseries-000001,由于索引名称与索引模板timeseries_template中的索引模式index_patterns相匹配,
所以索引模板timeseries_template中的属性运用到索引timeseries-000001上。
声明索引别名为timeseries,需要和索引模板中index.lifecycle.rollover_alias的值保持一致。
通过is_write_index=true声明该索引别名可以执行写操作。

五、检查索引的生命周期

GET timeseries-*/_ilm/explain

总结

本文主要介绍如何采用索引别名来管理时序数据的生命周期。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

斗者_2013

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值