kok202
[2019.03.06] Elastic search (Kibana)

2019. 3. 6. 17:53[정리] 데이터베이스/[NoSQL] ElasticSearch

Kibana를 잘 쓰면 데이터 확인을 위해 GET을 해줄 필요가 없다.

Kibana를 통해 Elastic search 인덱스(DB) 안에 있는 데이터를 Aggregation하여 차트 형태로 열람이 가능하다.

Kibana를 위한 예제 데이터 생성 

curl -XPUT localhost:9200/basketball

curl -XPUT localhost:9200/basketball/record/_mapping -d @ch05/basketball_mapping.json -H 'Content-Type:application/json'

curl -XPOST localhost:9200/basketball/_bulk --data-binary @ch05/bulk_basketball.json -H 'Content-Type:application/json'




Management Tab

어떤 인덱스(DB)를 Kibana를 통해 관리할 것인지 등록한다.




Discover Tab

Time serialize 데이터를 차트로 볼 수 있다

- filter를 통해 search가 가능하다

- toggle을 통해 원하는 데이터만 요약해서 보게 할 수 있다.

- sort 기능을 제공한다.

예제 자료가 2016년이므로 데이터 열람을 하고 싶으면 Absolute에서 2016-2017로 열람해봐야함




Visualize Tab

차트를 그리는 탭

Bucket : 그룹핑하는 기준

Metric : 통계 방식

차트 종류

- vertical bar

- pie chart

- coordinate map

- ...




Dashboard Tab

visualize Tab에서 생성했던 차트를 저장하면 이쪽에 대쉬보드 형태로 추가하여 전체 열람이 가능하다.






Mapping은 차트를 그리는데 굉장히 중요하다. 

Mapping이 없으면 엘라스틱 서치는 데이터를 그저 문자열 데이터로만 인식한다. 

그 결과 Mapping이 안된 데이터는 차트를 그릴 수 없다.


lecture_date 라는 필드가 date 타입의 데이터라고 지정해줘야 Kibana에서 이를 기준으로 Time serial 하게 차트를 그릴 수 있다.

lecture_date 라는 필드가 string 타입의 데이터라면 Kibana는 이를 차트의 기준(Bucket) 으로 삼지 못하고 차트를 그릴 수 없을 것이다.

school_location 라는 필드가 geo_point 타입의 데이터라고 지정해줘야 Kibana에서 이를 기준으로 위치에 관련된 차트를 그릴 수 있다.

school_location 라는 필드가 string 타입의 데이터라면 Kibana는 이를 차트의 기준(Bucket) 으로 삼지 못하고 차트를 그릴 수 없을 것이다.