# 과제 개요
1. 전국 cctv 표준 데이터를 utf-8로 인코딩 변경(한글 포함하면 데이터깨지는 경우 존재)
2. 인덱스 세팅 및 매핑(인덱스명: index_cctv)
3. logstash로 데이터 적재
4. reindex로 location 폴더 생성
# 해결
1-1. 위도 경도 필드명을 lat lon으로 변경
1-2. 메모장으로 열어서 다른이름으로 저장 후, 모든 파일 선택 후, 인코딩 UTF-8로 지정
2. index put 명령어 실행
PUT index___cctv
{
"mappings": {
"properties": {
"관리기관명":{
"type": "text",
"fields": {
"keyword":{
"type":"keyword"
}
}
},
"소재지도로명주소":{
"type": "text",
"fields": {
"keyword":{
"type":"keyword"
}
}
},
"소재지지번주소":{
"type": "text",
"fields": {
"keyword":{
"type":"keyword"
}
}
},
"설치목적구분":{
"type": "keyword"
},
"카메라대수":{
"type": "long"
},
"카메라화소수":{
"type": "long"
},
"촬영방면정보":{
"type": "keyword"
},
"보관일수":{
"type": "long"
},
"설치년월":{
"type": "date",
"format": "iso8601||dd-MMM"
},
"관리기관전화번호":{
"type": "keyword"
},
"lat":{
"type": "double"
},
"lon":{
"type": "double"
},
"데이터기준일자":{
"type": "date",
"format": "iso8601||yyyy/MM/dd"
},
"제공기관코드":{
"type": "long"
},
"제공기관명":{
"type": "text"
}
}
}
}
3. logstash CONFIG파일 작성 후, 명령어로 업로드
input {
file{
path => ["C:\sample\전국CCTV표준데이터__utf8.csv"]
start_position => "beginning"
sincedb_path => "NUL"
}
}
filter {
csv{
separator=>","
columns=>["관리기관명","소재지도로명주소","소재지지번주소","설치목적구분","카메라대수","카메라화소수","촬영방면정보","보관일수","설치년월","관리기관전화번호","lat","lon","데이터기준일자","제공기관코드","제공기관명"]
skip_header=>true
}
mutate{
remove_field=>["message","path","host","@version"]
}
}
output{
stdout{
codec=>rubydebug
}
elasticsearch{
hosts=>["http://localhost:9200"]
index=>"index__cctv"
}
}
logstash/bin 경로 상에서 'logstash -f uploadcctv.conf' 입력
4-1. geo_point type의 location 속성 생성
...
,
"location":{
"type": "geo_point"
}
4-2. reindex 방식으로 geo_point 속성을 가진 데이터 생성하기
# ?slices 를 붙여주면, 30개의 병렬처리(reindex 무거운 작업시 사용)
POST _reindex?slices=30
{
"source": {
"index": "index___cctv"
},
"dest": {
"index": "index_cctv2"
},
"script": {
"source": "ctx._source.location=['lat':ctx._source.lat,'lon':ctx._source.lon]"
}
}
3, 4 대체 방법(100mb 이하인 파일일 경우)
- kibana 좌측 메뉴 Machine Learning 선택 후, csv 업로드 후, import
- Advanced 탭 선택 후, index명, index 자동 생성된 문법 확인 후, 확인하면 자동으로 import 됨
- lat, lon속성 있을 경우 자동으로 combine하여 location 속성까지 생성해줌
'Development Stack > ELK' 카테고리의 다른 글
[ELK] 과제로 정리하기 - 시각화 (0) | 2020.12.08 |
---|---|
[ELK] 과제로 정리하기 - 검색 기능 (0) | 2020.12.08 |
[ELK] 데이터 시각화 (0) | 2020.12.01 |
[ELK] ElasticSearch 검색 (0) | 2020.12.01 |
[ELK] 개요 (0) | 2020.12.01 |
최근댓글