es索引生命周期维护

keyword text

hot-warm-cold架构将索引数据切分成hot/warm/cold的索引。hot索引负责最新数据的读写,可使用内存存储;warm索引负责较旧数据的读取,可使用内存或SSD存储;cold索引很少被读取,可使用大容量磁盘存储。随着时间的推移,数据不断从hot索引->warm索引->cold索引迁移。针对不同阶段的索引我们还可以调整索引的主分片数,副本数,单分片的segment数等等,更好的利用机器资源。

索引生命周期管理(Index Lifecycle Management ,简称ILM)
作者:Monica2333
链接:https://juejin.im/post/6844904131262431246
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
PUT _ilm/policy/my_policy
{
"policy": {
"phases": {
"hot": {
"actions": {
"rollover": {
//rollover前距离索引的创建时间最大为7天
"max_age": "7d",
//rollover前索引的最大大小不超过50G
"max_size": "50G",
//rollover前索引的最大文档数不超过1个(测试用)
"max_docs": 1,
}
}
},
"warm": {
//rollover之后进入warm阶段的时间不小于30天
"min_age": "30d",
"actions": {
"forcemerge": {
//强制分片merge到segment为1
"max_num_segments": 1
},
"shrink": {
//收缩分片数为1
"number_of_shards": 1
},
"allocate": {
//副本数为2
"number_of_replicas": 2
}
}
},
"cold": {
//rollover之后进入cold阶段的时间不小于60天
"min_age": "60d",
"actions": {
"allocate": {
"require": {
//分配到cold 节点,ES可根据机器资源配置不同类型的节点
"type": "cold"
}
}
}
},
"delete": {
//rollover之后进入cold阶段的时间不小于60天
"min_age": "90d",
"actions": {
"delete": {}
}
}
}
}
}

作者:Monica2333
链接:https://juejin.im/post/6844904131262431246
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。