elasticsearch 생명주기 냉열 데이터 분리
4395 단어 elasticsearch
https://www.elastic.co/guide/en/elasticsearch/reference/7.4/index-lifecycle-management.html
필요: 1.5일 후 이전 색인을 난방기 단계로 이동하여 읽기 전용으로 표시한 다음 하나의 조각으로 축소합니다.2.30일 후에 색인을 냉각 상태로 옮긴 다음 비교적 저렴한 하드웨어로 옮깁니다.3. 필요한 90일 보존 기간이 되면 색인을 삭제합니다.
실시
1. 모든 데이터 노드에 tag
node.attr.box_type: hot
node.attr.box_type: warm
node.attr.box_type: cold
2. 스크롤 데이터 노드 재시작
1) 데이터 밸런싱 해제:
curl -XPUT /_cluster/settings
{
"transient" : {
"cluster.routing.allocation.enable " : "none"
}
}
2) 캐시 새로 고침:
curl -XPOST /_flush/synced
3) 노드 재부팅
4) 데이터 균형 설정
curl -XPUT /_cluster/settings
{
"transient" : {
"cluster.routing.allocation.enable " : "all"
}
}
5) 클러스터가 녹색으로 변하기를 기다립니다
3. index 라이프 사이클 설정
1) 라이프 사이클 정책 정의
PUT _ilm/policy/my_policy
{
"policy": {
"phases": {
"hot": {
"min_age": "0ms",
"actions": {
"set_priority": {
"priority": 97
}
}
},
"warm": {
"min_age": "5d",
"actions": {
"allocate": {
"include": {},
"exclude": {},
"require": {
"box_type": "warm"
}
},
"forcemerge": {
"max_num_segments": 1
},
"set_priority": {
"priority": 50
}
}
},
"cold": {
"min_age": "30d",
"actions": {
"allocate": {
"include": {},
"exclude": {},
"require": {
"box_type": "cold"
}
},
"set_priority": {
"priority": 1
}
}
},
"delete": {
"min_age": "90d",
"actions": {
"delete": {}
}
}
}
}
}
주: 1)complete가 완료되면 이 정책은 실행이 끝난 셈이다. 즉, 이 단계가 존재하지 않는다. 만약에 다음에 상반된 조작을 촉발하면 이 정책을 촉발하지 않는다. 예를 들어cold를 수동으로 hot로 옮기면 자동으로 이동하지 않는다. 2)segment를 합병한 후 데이터 감소량은 약 1G/200G 정도이고,segmentmerge 후 검색 속도가 높아진다
3) priority 우선순위: 노드가 붕괴되면 우선순위가 높으면 가장 먼저 복구된다
4) hot: 롤오버와 우선순위 정책만 설정할 수 있으며, 다른 액션을 설정하면 오류가 발생합니다.
2. 존재하는 모든 index에 생명주기 정책 적용
PUT _all/_settings
{
"index.routing.allocation.require.box_type": "hot",
"index.lifecycle.name": "my_policy"
}
: index hot
3. template 수정
PUT _template/datastream_template
{
"index_patterns": ["datastream-*"],
"settings": {
"number_of_shards": 5,
"number_of_replicas": 2,
"index.lifecycle.name": "my_policy",
"index.routing.allocation.require.box_type": "hot"
}
}
4. 현재 index 상태 보기
GET datastream-20191005/_ilm/explain
5. 기타 명령
:
POST /datastream-20191005/_forcemerge?only_expunge_deletes=false&max_num_segments=100&flush=true
index segment :GET /_cat/segments?datastream-20191005
tag :GET /_cat/nodeattrs
exclude_ip:
PUT /_cluster/settings
{
"transient": {
"cluster.routing.allocation.exclude._ip": "xx.xx.x.xx,xx.xx.x.xx"
}
}
exclude_ip :
PUT /_cluster/settings
{
"transient": {
"cluster.routing.allocation.exclude._ip": null
}
}
:
PUT datastream-20191005/_settings
{
"index": {
"routing": {
"allocation": {
"require": {
"box_type": "cold"
}
}
}
}
}
:
GET datastream-20191005/_settings
policy :
GET _ilm/policy/my_policy
6. 기타 node tag 방식
tag
node.zone: hot
node.zone: warm
node.zone: cold
box_type zone
PUT /datastream-20191005/_settings
{
"index.routing.allocation.include.zone": "cold"
}
:index.routing.allocation include/require/exclude, ,
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
kafka connect e elasticsearch를 관찰할 수 있습니다.No menu lateral do dashboard tem a opção de connectors onde ele mostra todos os clusters do kafka connect conectados atu...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.