본문 바로가기

Tech/ELK

[Elastic Search] esdump 활용

따로 커스텀해서 사용중인 esdump 관련 코드 일부를 업로드

[참고]

https://github.com/elasticsearch-dump/elasticsearch-dump

 

GitHub - elasticsearch-dump/elasticsearch-dump: Import and export tools for elasticsearch

Import and export tools for elasticsearch. Contribute to elasticsearch-dump/elasticsearch-dump development by creating an account on GitHub.

github.com

 

상수 값들 예시

{
  "ELASTIC_URL": "http://<elastic 계정>:<elastic 패스워드>@<elastic 접속 IP>:<elastic 접속 PORT>",
  "INDEX": "<백업하고자 하는 인덱스 명>",
  "OUTPUT_FILE": "<백업될 output 파일 명>",
  "LIMIT": "10000", # 백업할 Offset 양(단위)을 지정하는거다 MAX = 1만개
  "CONCURRENCY": 2
}


FILTER_QUERY = {"query":{"term":{"<필터할 컬럼명>":""}}

 

esdump command

해당 인덱스 백업
command = f"""elasticdump\
--input={ELASTIC_URL}/{INDEX}\
--output={ES_BACKUP_FILE_PATH}/{OUTPUT_FILE}\
--limit={LIMIT}\
--concurreny={CONCURRENCY}

 

Elastic search에서 DSL을 활용해서 특정 필터 백업 하고 싶을 시,
command = f"""elasticdump\
--input={ELASTIC_URL}/{INDEX}\
--output={ES_BACKUP_FILE_PATH}/{OUTPUT_FILE}\
--limit={LIMIT}\
--concurreny={CONCURRENCY}\
--searchBody={repr(json.dumps(FILTER_QUERY))}
"""
반응형