elastic学习
2018-12-25 本文已影响0人
waterchinap
elasticsearch学习资源很少,靠自己摸索。
安装启用都很容易,在如何把大量数据导入ES中遇到了好多问题,想了好多办法。很难搞定。搞了一两天,才搞清楚如何把CSV导入到ELASTICSEARCH中去。
把相关的记一下。
logstash设置
官方文档里说好多都是可选的,实际上,在配置文件中都要设置,不然出错。
input {
file {
path => ["/home/eric/dashtest/toes.csv"]
start_position => beginning #必然设置,而且这个beginning不能加引号,晕。
sincedb_path => "/dev/null" #必须设置
}
}
filter {
csv {
separator => ","
# 本来想用官方文档中的一些设置,让logstash自动生成列名,但是试了多次不行,只能用这个最原始的方法,就是直接指定列名。注意列名用的列表,方括号。
columns => [
'ts_code',
'ann_date',
'end_date',
'eps',
......
]
#设置列的数据格式也是大坑,设置string格式通不过,反正默认是string所以只有把string格式的列名不设置就行了。
convert => {
"ann_date" => "date"
"end_date" => "date"
"eps" => "float"
"dt_eps" => "float"
......
}
}
}
output {
elasticsearch {
hosts => ["127.0.0.1:9200"]
index => "fina_indi"
}
stdout { codec => rubydebug }
}
经过这一阵子折腾,数据终于导进去了。
其它方法
由于logstash试了好几次都没有成功,查到了还可以用以下方法把csv导入es.
- 利用python的elasticsearch库
- 利用elastic 自己家的轻量化工具filebeat
- 利用第三方工具,比如我查到的abc import, excelasitc.
总的来说,所谓elk还是比较小众,解决问题不好找。后面kibana的使用也许会轻松一点。