elasticsearch + kibana에 csv 데이터 넣기
in Programming on DevOps
ELK(elasticsearch + kibana) 에 csv 데이터 넣기. 찾아보니 kibana 내에 있는 File Data Visualizer 라는 기능으로 매우 쉽게 구현이 가능하다. influxDB + grafana의 경우에는 telegraf를 이용하거나 python으로 프로그램을 구현하여 csv파일을 읽어와 influxDB에 데이터를 집어넣는 방식으로 했는데 이보다 더 직관적이고 간편한듯. 근데 아주 치명적인 단점이있다. 파일 크기제한이 있다. 100MB가 넘는 파일은 import 하지 못함.
csv import using Data Visualizer
kibana > Machine Learning > Data Visualizer
kibana를 실행하고 왼쪽 메뉴 중 Machine Learning 에 들어가서
Data Visualizer 탭에 들어가면 import data 라는 항목이 있다.
upload file 버튼을 눌러 시각화하고자하는 csv 파일을 업로드한다.
첫번째줄에 filed명이 명세된 csv 파일이면 자동으로 컬럼명으로 불러온다.
컬럼명이 없으면 임의의 컬럼명을 elastic search에서 자동으로 지정한다. (coloumn1, coloumn2..)
추가적으로 자기가 컬럼명을 커스텀하거나.. 등등 세부적인 설정도 할 수 있음.
설정을 마쳤다면 제일 하단에있는 import
버튼을 누르면 저장하고자하는 index명을 입력하면 해당 index로 csv파일이 import된다.
csv import on python
from elasticsearch import helpers, Elasticsearch
import csv
es = Elasticsearch(
['localhost'],
port=9200
)
with open('/tmp/x.csv') as f:
reader = csv.DictReader(f)
helpers.bulk(es, reader, index='my-index', doc_type='my-type')
참고 https://www.elastic.co/kr/blog/importing-csv-and-log-data-into-elasticsearch-with-file-data-visualizer
https://stackoverflow.com/questions/41573616/index-csv-to-elasticsearch-in-python