elasticsearch 데이터 마이그레이션
2462 단어 elaticsearch
reindex
공식 문서:https://www.elastic.co/guide/en/elasticsearch/reference/6.4/docs-reindex.html _reindex API는 어떤 인덱스를 데이터 원본으로 삼아 새로운 인덱스를 구축할 수 있습니다.만약 elasticsearch의 버전이 5.0보다 작다면,_reindex API는 클러스터 내부의 색인 재구성 마이그레이션만 지원합니다.만약elasticsearch의 버전이 5.0 이상이면 집단 내부의 인덱스 재구성 이동을 지원할 뿐만 아니라 한 집단에서 다른 집단으로 데이터를 이동할 수 있고 크로스 버전으로 이동할 수 있으며 낮은 버전의elasticsearch에서 높은 버전으로 업그레이드해야 한다면 이런 방식을 사용할 수 있다.참조:https://blog.csdn.net/qq_36666651/article/details/83792167이 동시에elasticsearch는ingestNODE를 제공하여 데이터 세척 등에 사용할 수 있습니다.
snapshot
대량의 데이터를 위한 마이그레이션 공식 문서:https://www.elastic.co/guide/en/elasticsearch/reference/2.4/modules-snapshots.html#modules-snapshots는 여러 버전으로 이동할 수 없습니다. 목표 집단은 원본 집단의 인덱스를 읽을 수 있어야 합니다. 그래서 1.x는 최대 2까지만 마이그레이션할 수 있습니다.x,2.x에서 최대 5로 마이그레이션x, 여러 버전을 뛰어넘으려면 한 걸음 한 걸음 옮겨야 한다.구현 단계 참조:https://www.jianshu.com/p/2a569e8039bd
elasticsearch-dump
그룹 버전이 비교적 낮으면 데이터 이동을 하려면 제3자의elasticsearch-dump 도구를 사용해야 합니다.github 주소:https://github.com/taskrabbit/elasticsearch-dump
설치
# elasticsearch-dump node.js
yum -y install epel-release
yum -y install nodejs
#
node --version
npm --version
# elasticdump
npm install elasticdump -g
옮기다
#
# github
node --max-old-space-size=2048 /usr/bin/elasticdump \
--input=http://172.16.13.14:9200/index_name \
--type=settings \
--output=http://192.168.3.41:9200 \
--limit=20000
node --max-old-space-size=2048 /usr/bin/elasticdump \
--input=http://172.16.13.14:9200/index_name \
--type=mapping \
--output=http://192.168.3.41:9200 \
--limit=20000
node --max-old-space-size=2048 /usr/bin/elasticdump \
--input=http://172.16.13.14:9200/index_name \
--type=data \
--output=http://192.168.3.41:9200 \
--limit=20000
PS: Elasticsearch-Exporter와 유사한 도구 추가
logstash
참고https://www.jianshu.com/p/97dbaf78359b프로필 예
input {
elasticsearch {
hosts => "172.16.13.14:9200" # elasticsearch index
index => "test_index"
query => '{ "query": {"match_all" : {} } }' #
size => 10000 #
scroll => "5m" #
docinfo => true
}
}
output {
elasticsearch {
hosts => ["192.168.3.20:9200"]
index => "test_index"
}
}