elastic學習

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章