elasticsearch批量入库bulk性能实例测试
在elasticsearch中,bulk是批量操作的意思,也就是说,我们可以通过bulk的方式批量的导入数据。那么bulk的性能如何呢?下面我们就来看看bulk的性能测试实例。
我们将要导入的数据放在一个文件中,文件大小为1G。数据格式如下:
id,name,age,address 1,张三,20,北京市海淀区 2,李四,21,上海市黄浦区 3,王五,22,广州市天河区
我们使用logstash导入数据,配置文件如下:
input { file { path => "D:/data/test.csv" start_position => "beginning" sincedb_path => "/dev/null" delimiter => "," } } filter { csv { columns => ["id","name","age","address"] } mutate { convert => { "age" => "integer" } } } output { elasticsearch { hosts => "localhost" index => "test" } stdout { codec => rubydebug } }
我们运行logstash,可以看到数据已经成功导入到elasticsearch中了。
接下来我们就来看看bulk的性能如何。我们使用jmeter进行测试。
首先我们创建一个线程组,在线程组中添加一个http请求,请求的url为:
http://localhost:9200/test/_search?q=*
我们将线程数设置为10,即10个线程同时访问。
接下来我们将测试结果保存为csv文件,方便我们分析。
我们导入csv文件到excel中,分析一下结果。
可以看到,bulk的性能非常好,平均响应时间为0.1秒。
总结一下,bulk的性能非常好,可以很好的满足我们的需求。
相关文章