728x90
반응형
Elasticsearh에 인덱스 생성 및 데이터 입력 추가적으로 Kibana Terms로 활용을 위한 Mapping 작업까지 진행해주도록 하겠습니다.
1. Elasticsearh 인덱스 생성
- 데이터 입력을 위한 인덱스를 먼저 생성해 줍니다.
- 인프런 강의 데이터 활용을 위해 아래와 같이 생성해주었습니다.
# curl -X PUT localhost:9200/basketball
2. Mapping 생성
- 신규 ElasticVersion 에서는 Content-Type을 반드시 명시해줘야됩니다!!
- Mapping을 위한 json 파일 생성
# vim basketball_mapping.json
.
.
.
{ "record" : { "properties" : { "team" : { "type" : "text", "fielddata" : true }, "name" : { "type" : "text", "fielddata" : true }, "points" : { "type" : "long" }, "rebounds" : { "type" : "long" }, "assists" : { "type" : "long" }, "blocks" : { "type" : "long" }, "submit_date" : { "type" : "date", "format" : "yyyy-MM-dd" } } } }
.
.
.
: wq
- 인프런 강의 파일을 참조하였습니다.
# curl -H 'Content-Type: application/json' -X PUT 'localhost:9200/basketball/record/_mapping?include_type_name=true&pretty' -d @basketball_mapping.json
# curl -X GET 'localhost:9200/basketball?pretty'
- 아래와 같이 Mapping이 생성된 것을 확인하실 수 있습니다.
3. 데이터 입력
- 데이터 입력을 위한 Json 파일 생성
# vim bulk_basketball.json
.
.
.
{ "index" : { "_index" : "basketball", "_type" : "record", "_id" : "1" } }
{"team" : "Golden States Warriors","name" : "Stephen Curry", "points" : 30,"rebounds" : 3,"assists" : 4, "blocks" : 5, "submit_date" : "2016-10-11"}
{ "index" : { "_index" : "basketball", "_type" : "record", "_id" : "2" } }
{"team" : "Golden States Warriors","name" : "Stephen Curry","points" : 32,"rebound" : 5,"assist" : 8, "blocks" : 5, "submit_date" : "2016-10-13"}
{ "index" : { "_index" : "basketball", "_type" : "record", "_id" : "3" } }
{"team" : "Golden States Warriors","name" : "Stephen Curry","points" : 28,"rebound" : 2,"assist" : 3, "blocks" : 1, "submit_date" : "2016-10-17"}
{ "index" : { "_index" : "basketball", "_type" : "record", "_id" : "4" } }
{"team" : "Golden States Warriors","name" : "Stephen Curry","points" : 36,"rebound" : 1,"assist" : 2, "blocks" : 1, "submit_date" : "2016-11-20"}
{ "index" : { "_index" : "basketball", "_type" : "record", "_id" : "5" } }
{"team" : "Golden States Warriors","name" : "Stephen Curry","points" : 36,"rebound" : 1,"assist" : 2, "blocks" : 1, "submit_date" : "2016-11-25"}
{ "index" : { "_index" : "basketball", "_type" : "record", "_id" : "6" } }
{"team" : "Golden States Warriors","name" : "Stephen Curry","points" : 32,"rebound" : 1,"assist" : 4, "blocks" : 1, "submit_date" : "2016-11-28"}
{ "index" : { "_index" : "basketball", "_type" : "record", "_id" : "7" } }
{"team" : "Utah Jazz","name" : "Rudy Gobert", "points" : 3,"rebounds" : 11,"assists" : 4, "blocks" : 7, "submit_date" : "2016-10-12"}
{ "index" : { "_index" : "basketball", "_type" : "record", "_id" : "8" } }
{"team" : "Utah Jazz","name" : "Rudy Gobert","points" : 4,"rebound" : 13,"assist" : 8, "blocks" : 5, "submit_date" : "2016-10-14"}
{ "index" : { "_index" : "basketball", "_type" : "record", "_id" : "9" } }
{"team" : "Utah Jazz","name" : "Rudy Gobert","points" : 8,"rebound" : 10,"assist" : 3, "blocks" : 6, "submit_date" : "2016-10-18"}
{ "index" : { "_index" : "basketball", "_type" : "record", "_id" : "10" } }
{"team" : "Utah Jazz","name" : "Rudy Gobert","points" : 12,"rebound" : 9,"assist" : 2, "blocks" : 6, "submit_date" : "2016-11-10"}
{ "index" : { "_index" : "basketball", "_type" : "record", "_id" : "11" } }
{"team" : "Utah Jazz","name" : "Rudy Gobert","points" : 12,"rebound" : 14,"assist" : 2, "blocks" : 7, "submit_date" : "2016-11-22"}
{ "index" : { "_index" : "basketball", "_type" : "record", "_id" : "12" } }
{"team" : "Utah Jazz","name" : "Rudy Gobert","points" : 8,"rebound" : 10,"assist" : 4, "blocks" : 5, "submit_date" : "2016-11-27"}
{ "index" : { "_index" : "basketball", "_type" : "record", "_id" : "13" } }
{"team" : "Washington Wizards","name" : "John Wall","points" : 8,"rebound" : 1,"assist" : 13, "blocks" : 2, "submit_date" : "2016-10-18"}
{ "index" : { "_index" : "basketball", "_type" : "record", "_id" : "14" } }
{"team" : "Washington Wizards","name" : "John Wall","points" : 13,"rebound" : 2,"assist" : 12, "blocks" : 3, "submit_date" : "2016-11-10"}
{ "index" : { "_index" : "basketball", "_type" : "record", "_id" : "15" } }
{"team" : "Washington Wizards","name" : "John Wall","points" : 15,"rebound" : 3,"assist" : 12, "blocks" : 3, "submit_date" : "2016-11-22"}
{ "index" : { "_index" : "basketball", "_type" : "record", "_id" : "16" } }
{"team" : "Washington Wizards","name" : "John Wall","points" : 22,"rebound" : 4,"assist" : 14, "blocks" : 3, "submit_date" : "2016-11-27"}
.
.
.
:wq
# curl -H 'Content-Type: application/json' -X POST 'localhost:9200/_bulk?pretty' --data-binary @bulk_basketball.json
- 데이터 확인
# curl -X GET 'localhost:9200/basketball/_search?pretty'
4. Kibana 접속 및 인덱스 패턴 생성
- 생성해 준 Index를 Kibana와 연결시켜줍니다.
- Management -> Stack Management -> Index Patterns 클릭
- Create Index Pattern 클릭
- Index Pattern name 입력
- Next Step
- Time Field 연결
- Create index pattern
5. 데이터 Discover 및 Visualize
- Index Pattern을 입력한 Basketball로 바꿔줍니다.
- 데이터의 > 버튼 클릭 후 필요한 Column만 토글할 해줍니다.
- 아래와 같이 조건 식으로 필요한 데이터만 볼 수 있습니다.
- Visualize 클릭
- Create visualization->Graph 종류 선택->Source 선택
- Y-axis, X-axis 입력
- Update
- Discover 상에는 문제가 없는데 Team 부분 Text가 공백에 따라서 나뉘는데 원인을 찾아봐야될거 같습니다...
- 원인 파악 후 수정 한 내용 아래 링크 참고 부탁드립니다.
URL: https://usheep91.tistory.com/62?category=887212
다음 포스팅에서는 csv 형태 파일을 logstash를 이용하여 Import하고 데이터 시각화를 진행해보겠습니다.
728x90
반응형
'ELK' 카테고리의 다른 글
Elasticsearch + Kibana - 3 (형태소 분석기 추가) (0) | 2020.12.11 |
---|---|
ELK - 01 (CSV 파일 입력 및 데이터 시각화) (0) | 2020.12.10 |
Elasticsearch + Kibana - 1 (Kibana 설치 및 기본 설정) (0) | 2020.12.07 |
Elasticsearch 시작하기 - 3 (Aggregation) (0) | 2020.12.07 |
Elasticsearch 시작하기 - 2 (데이터 입력 및 조회) (0) | 2020.12.06 |