> ## Content Index
> Fetch the complete content index at: https://www.popit.kr/llms.txt
> Use this file to discover other available public pages before exploring further.

# 엘라스틱서치에서 원본 데이터 추출하기
- URL: https://www.popit.kr/extracting-source-data-from-elasticsearch/
- Published: 2017-09-20T11:24:25.000Z
- Updated: 2017-09-21T04:50:51.000Z
- Author: 강 명훈
- Tags: #데이터분석, elasticsearch

엘라스틱서치에서 원본 데이터를 추출해보자. 그런데 원본 추출 관련 메뉴가 안 보이네? 이리저리 찾아보다 포기(..) 엘라스틱서치는 집계된 데이터의 추출만을 지원하는 듯 하다.

![그림1](https://www.popit.kr/content/images/wp/2017/09/%EA%B7%B8%EB%A6%BC1-1-600x363.png)

결국 구글신께 문의. 요즘 구글신은 한국말도 잘해서 너무 좋다. 다음은 원본 추출을 위한 Logstash 설정.

```
input {
 elasticsearch {
  hosts => "localhost:9200"
  index => "logstash-weblog"
  #데이터 추출 쿼리문
  query => '{
   "query": {
    "bool": {
     "must": [
      {
       "query_string": {
        "query": "*",
        "analyze_wildcard": true
       }
      },
      {
       "range": {
        "@timestamp": {
         "gte": 1294758000000,
         "lte": 1294844399000,
         "format": "epoch_millis"
        }
       }
      }
     ],
     "must_not": []
    }
   }
  }'
 }
}

output {
 file {
  #추출 필드
  codec => line { format => "%{ext}, %{status}, %{timestamp}" }
  path => "d:/ex.csv"
 }
}
```

데이터 추출 쿼리문은 'Discover' 메뉴의 Request 소스에서 'query' 영역만 복사.

![그림4](https://www.popit.kr/content/images/wp/2017/09/%EA%B7%B8%EB%A6%BC4-2-600x405.png)

다음은 추출된 원본 데이터.

[](https://3.bp.blogspot.com/-dsClzR4zpOU/Wb%5FixgXaQnI/AAAAAAAAGY4/RPo-vSwS5xkOz61Gt-q34Gh%5FaXeuJqojQCLcBGAs/s1600/%25EA%25B7%25B8%25EB%25A6%25BC5.png?ref=popit.kr)

해당 데이터를 추출한 이유는 파일 확장자와 응답코드 관계망의 시간대별 변화를 Gephi로 그려보기 위해서인데, 결과는 다음과 같다. [](https://3.bp.blogspot.com/-qe3EqeHkdi8/Wb%5FzLzRu3aI/AAAAAAAAGZI/4Axq6SLDdnwMmmHhRV69E8uQHZZCeTavwCLcBGAs/s1600/gephi.gif?ref=popit.kr) 시간 단위 변화를 표시하기 위해 원본을 24개의 csv 파일로 나누고, [Gephi](http://gephi.org/?ref=popit.kr)에서 다시 24개의 gexf 파일로 저장한 후, 하나로 합치는 [과정](https://github.com/seinecle/gephi-tutorials/blob/master/src/main/asciidoc/en/dynamic/creating-a-simple-dynamic-network.adoc?ref=popit.kr)을 거쳤다. 한마디로 노가다 of 노가다. 합친 후 디자인 과정은 [여기](http://kangmyounghun.blogspot.com/2016/12/blog-post.html?ref=popit.kr)를 참고. timeline을 'date-time' 형식으로 지정하는 기능이 있으면 엑셀 데이터에서 동적 그래프로 바로 변환이 가능할텐데 찾지를 못하겠다. 구글신도 안 알랴줌. 참고로 최신 [X-Pack](https://www.elastic.co/guide/en/x-pack/current/license-expiration.html?ref=popit.kr)을 설치하면 엘라스틱서치에서도 관계망 그래프 기능을 이용할 수 있다고 한다. (30일 무료)