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的使用也許會輕鬆一點。