2014-08-28 3 views
4

.csv 파일 (가능하면 상자에 들어있을 수 있음)에 elasticsearch 클러스터의 export whole index (모든 저장된 필드)을 쉽게 사용할 수 있습니까?ElasticSearch는 csv 파일의 전체 색인을 덤프합니다.

내가 생각할 수있는 대안은 전체 색인을 쿼리 한 다음 결과를 변환하는 것입니다.하지만 문서의 수백만 개가 포함되어 있기 때문에 괴상한 구문 분석 아이디어가 마음에 들지 않습니다.

내보내기를 수행하는 다른 방법이나 아이디어가 있습니까?

+1

https://github.com/jprante/elasticsearch-csv –

+0

@ KonstantinV.Salikhov가 좋아 보인다! 제 3 자 플러그인을 포함시키지 않기를 바랬지 만 이것이 나의 필요를 충족시키는 것 같습니다! – dimzak

+0

사실 나는 이것을 시도한 적이 없으며 성능 문제가있을 수 있습니다. –

답변

0

Scan and Scroll API을 사용할 수 있습니다. 그렇다면 괴물 같은 JSON 파일을 구문 분석하지 않아도됩니다. 훨씬 작은 배치로 처리 할 수 ​​있습니다.

+0

"Scan and Scrall API"에 대한 링크가 작동하지 않습니다. API도 사용되지 않습니다. https://www.elastic.co/guide/en/elasticsearch/reference/2.3/breaking_21_search_changes.html#_literal_search_type_scan_literal_deprecated – mrtipale

1

면책 조항 : 저는 estab의 저자입니다.


estab elasticsearch 필드를 탭으로 구분 된 값으로 내 보냅니다. 너무 많은 필드가 없으면 모두 명시 적으로 내보내는 것이 쉽습니다. 내부적으로는 스캔 및 스크롤 API를 사용합니다.

예 :

색인 같은 문서를 포함한다고 가정 해 봅시다 : 중첩 된 필드는 쉽게로 매핑되지 않습니다

$ estab -f 'name genus populations.location populations.size' 
Kiwi Apteryx North Island|Little Barrier Island 2500|2000 

주 : 그럼 당신은을 통해 전체 인덱스를 내보낼 수 있습니다

{ 
    "name": "Kiwi", 
    "genus": "Apteryx", 
    "populations": [ 
     {"location": "North Island", "size": 2500}, 
     {"location": "Little Barrier Island", "size": 2000} 
    ] 
} 

을 표 형식. estab은 기본적으로 여러 값을 |으로 구분하며 일반적인 점 표기법을 통해 중첩 된 필드를 참조 할 수 있습니다.

관련 문제