IT评测·应用市场-qidao123.com技术社区
标题:
Elasticsearch数据冷热分离
[打印本页]
作者:
盛世宏图
时间:
2024-11-28 15:58
标题:
Elasticsearch数据冷热分离
1. 节点属性设置
在 Elasticsearch 的每个节点的设置文件(elasticsearch.yml)中,为节点分配自界说属性:
# 热节点(性能较高的节点)
node.attr.data_tier: hot
# 温节点(性能适中的节点)
node.attr.data_tier: warm
# 冷节点(性能较低的节点,用于索引归档)
node.attr.data_tier: cold
复制代码
2. 设置 ILM
ILM 可以主动管理数据的生命周期,包罗将索引从热节点迁移到温节点、冷节点,或最终删除。
创建一个生命周期策略:
PUT _ilm/policy/log_data_policy
{
"policy": {
"description": "Hot-Warm-Cold ILM",
"phases": {
"hot": {
"min_age": "0ms",
"actions": {
"rollover": {
"max_age": "1d",
"max_size": "50gb"
}
}
},
"warm": {
"min_age": "1d",
"actions": {
"allocate": {
"require": {
"data_tier": "warm"
}
},
"forcemerge": {
"max_num_segments": 1
}
}
},
"cold": {
"min_age": "7d",
"actions": {
"allocate": {
"require": {
"data_tier": "cold"
}
},
"forcemerge": {
"max_num_segments": 1
},
"freeze": {}
}
},
"delete": {
"min_age": "30d",
"actions": {
"delete": {}
}
}
}
}
}
复制代码
这个策略分为四个阶段:
热(hot)阶段
:索引会在热节点上存储,支持高频访问。
温(warm)阶段
:1 天后,索引被迁移到温节点,减少资源斲丧。
冷(cold)阶段
:7 天后,迁移到冷节点,冻结索引,仅用于低频访问。
删除(delete)阶段
:30 天后,删除索引以释放存储空间。
3.创建索引模板并绑定 ILM 策略
PUT _template/log_template
{
"index_patterns": [
"*-log-data-*"
],
"order": 0,
"settings": {
"number_of_shards": 1,
"number_of_replicas": 1,
"index.routing.allocation.require.data_tier": "hot",
"index.lifecycle.name": "log_data_policy",
"index.lifecycle.rollover_alias": "log_alias"
},
"aliases": {
"app_log": {}
},
"mappings": {
"dynamic": false,
"properties": {
"@timestamp": {
"type": "date"
},
"application": {
"type": "keyword",
"ignore_above": 30
},
"class": {
"type": "keyword",
"index": false,
"ignore_above": 256
},
"client_ip": {
"type": "ip"
},
"original_ip": {
"type": "ip"
},
"level": {
"type": "keyword",
"ignore_above": 10
},
"message": {
"type": "text",
"analyzer": "standard"
},
"response_time": {
"type": "integer",
"index": false
},
"servlet_path": {
"type": "keyword",
"ignore_above": 50
},
"status": {
"type": "integer"
},
"thread": {
"type": "keyword",
"index": false,
"ignore_above": 30
},
"logtime": {
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss.SSS"
}
}
}
}
复制代码
设置解释:
热阶段(hot phase)
:
min_age: "0ms"
表示索引刚创建时就进入热阶段,存储当天的数据。
rollover
操纵:当索引达到
max_age: "1d"
或者
max_size: "50gb"
时,会触发索引的滚动,创建新的索引并继续写入数据。max_age: "1d" 确保热节点只存储当天的索引。
温阶段(warm phase)
:
min_age: "1d"
表示数据在热阶段存储 1 天后转到温阶段,存储1天外至7天内的数据。
allocate
操纵:将索引迁移到标记为
warm
的节点上,可以在温节点上做段合并(forcemerge),提高查询服从。
冷阶段(cold phase)
:
min_age: "7d"
表示数据在7天后进入冷阶段,存储7天外至30天内的数据。
allocate
操纵:将索引迁移到标记为
cold
的节点上。
freeze
操纵:将冷数据冻结,这会显著减少存储需求,但会降低查询性能,因为冻结后的索引不能被写入,只能读取。
删除阶段(delete phase)
:
min_age: "30d"
表示在数据存储超过30天后将其删除,防止逾期数据占用过多存储空间。
freeze 操纵
:
在冷阶段使用 freeze 操纵将索引冻结。冻结索引在读取时更节流空间,但不能举行写入或更新操纵。适用于存储不再活跃、且访问频率低的汗青数据。
forcemerge 操纵
:
在温节点和冷节点阶段举行段合并,减少索引中的段数量,从而提高查询服从和减少存储空间占用。确保该操纵只应用于只读索引。
delete 操纵
:
设置为30天后删除数据,防止数据积累过多。可以调整 min_age 来控制删除数据的时间窗口。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/)
Powered by Discuz! X3.4