docker를 이용한 elasticdump 실전 가이드
NodeJS 설치 없이 docker를 이용 elasticdump를 사용하는 실전 가이드 입니다
기본적으로 docker는 설치 되어 있다고 가정하고 설명하겠습니다
준비
-
docker 이미지 pull
docker pull elasticdump/elasticsearch-dump
케이스별 elasticdump 실행 명령어
- ES TO ES index 데이터 10,000건씩 덤프
docker run --rm -ti elasticdump/elasticsearch-dump \ --input=http://production.es.com:9200/my_index \ --output=http://staging.es.com:9200/my_index \ --type=data \ --limit=10000
- ES에서 로컬에 설치한 ES으로 index 데이터 10,000건씩 덤프
docker run --net=host --rm -ti elasticdump/elasticsearch-dump \ --input=http://staging.es.com:9200/my_index \ --output=http://localhost:9200/my_index \ --type=data \ --limit=10000
- ES에서 로컬 저장소에 JSON으로 index 데이터 10,000건씩 덤프 (로컬 JSON 저장 경로 : ~/Documents/elasticdump)
docker run --rm -ti -v ~/Documents/elasticdump:/tmp:/tmp elasticdump/elasticsearch-dump \ --input=http://production.es.com:9200/my_index \ --output=/tmp/my_index_data.json \ --type=data \ --limit=10000
- ES에서 로컬 저장소에 JSON으로 index 데이터 10,000건씩 100만건만 덤프 (로컬 JSON 저장 경로 : ~/Documents/elasticdump)
docker run --rm -ti -v ~/Documents/elasticdump:/tmp:/tmp elasticdump/elasticsearch-dump \ --input=http://production.es.com:9200/my_index \ --output=/tmp/my_index_data.json \ --type=data \ --size=1000000 \ --limit=10000
- ES에서 로컬 저장소에 1GB 크기 JSON으로 분할하여 index 데이터 10,000건씩 100만건만 덤프 (로컬 JSON 저장 경로 : ~/Documents/elasticdump)
docker run --rm -ti -v ~/Documents/elasticdump:/tmp:/tmp elasticdump/elasticsearch-dump \ --input=http://production.es.com:9200/my_index \ --output=/tmp/my_index_data.json \ --type=data \ --fileSize=1024MB \ --size=1000000 \ --limit=10000
-
ES QUERY를 이용하여 ES에서 로컬 저장소에 JSON으로 index 데이터 10,000건씩 덤프 (로컬 JSON 저장 경로 : ~/Documents/elasticdump)
~/Documents/elasticdump/search_query.json
{ "query": { "match_all": {} }, "_source": ["account_number", "balance"] }
docker run --rm -ti -v ~/Documents/elasticdump:/tmp:/tmp elasticdump/elasticsearch-dump \ --input=http://production.es.com:9200/my_index \ --output=/tmp/my_index_data.json \ --type=data \ --searchBody=@/tmp/search_query.json \ --limit=10000
- elasticdump으로 생성한 JSON 파일을 ES에 10,000건씩 복원 (로컬 JSON 파일 경로 : ~/Documents/elasticdump)
docker run --rm -ti -v ~/Documents/elasticdump:/tmp:/tmp elasticdump/elasticsearch-dump \ --input=/tmp/my_index_data.json \ --output=http://production.es.com:9200/my_index \ --type=data \ --limit=10000
- elasticdump로 생성하지 않은 JSON 파일을 ES에 10,000건씩 복원 (로컬 JSON 파일 경로 : ~/Documents/elasticdump)
docker run --rm -ti -v ~/Documents/elasticdump:/tmp:/tmp elasticdump/elasticsearch-dump \ --input=/tmp/my_index.json \ --output=http://production.es.com:9200/my_index \ --type=data \ --transform=doc._source="Object.assign({},doc)" \ --limit=10000