使用logtash填充弹性服务器

时间:2017-01-05 07:37:33

标签: elasticsearch logstash

我正在使用弹性搜索2.0,我使用logtash将数据放入es集群。数据大小为98gb,使用此配置脚本需要将近一天

# logstash -f logstash-all.conf file: simple-out.conf
input {
    jdbc {
        # sqlserver jdbc connection string to our database, DB
        jdbc_connection_string => "jdbc:sqlserver://dbaddress:1433;databaseName=DB"
        # The user we wish to execute our statement as
        jdbc_user => "abc"
        jdbc_password => "a@"
        # The path to our downloaded jdbc driver
        jdbc_driver_library => "C:/es/elasticsearch-2.2.0/elasticsearch-2.2.0/plugins/jdbc/sqljdbc4-4.0.jar"
        # The name of the driver class for sql server
        jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver"
        # our query
        statement => "SELECT * from abc"
    }
}
output {
    elasticsearch {
        index => "reporting"
        document_type => "perm"
        document_id => "%{elasticid}"
        hosts => "localhost"
    }
}

有没有更快的方法从sql server转储弹性服务器中的数据? Elastic search bin目录中数据文件夹的重要性是什么?当上述脚本运行时,它似乎已填充

由于

1 个答案:

答案 0 :(得分:0)

您可以使用简单的bash将数据放入ES,如下所示:

curl -XPUT localhost:9200/megacorp/employee/3 -d '{
    "first_name" : "Douglas",
    "last_name" : "Fir",
    "age" : 35
}'

但是你需要将你的记录从db导出到JSON。

您也可以使用批量插入,如下所示:

curl -XPOST 'localhost:9200/megacorp/employee/_bulk?pretty' \
--data-binary "@/tmp/data.json"

并且您的@/tmp/data.json应如下:

{"index":{"_id":"11"}}
{"name":"Amber","age":32}
{"index":{"_id":"12"}}
{"name":"Hattie","age":36}

这里你只需要将数据从sql server转储到这样的JSON文件中。