Elasticsearch获取ES查询的所有结果,并批量导出Excel2

工作环境是内网所以不能截图。搭建了ELK环境。3500W个dic中查询数据,并要求导出excel。从es中查询 status=500,返回为空,查询时间超过2000ms的数据head插件查询出索引的数据sql更方便查询支持标准sqlselect param from logstash-sql---3p where numfounds=0一、kibana画图1.首先是用kibana画条状图,create index 之后 在discover中可以设置查询条件。右上角是时间设置,默认是15min。 2.discover中点击param,点击下面的add,然后返回的结果中就只剩param3.visualize画图,filter作为x,count作为y轴二、获取所有es的查询数据,并导出excel1、es的size默认是100002、sql插件默认的size是200所以用到了分页查询 之后又用了scroll和mapreduce,有个es对应的api很方便没有条数的限制首先呢,需要在java中引入elasticsearch-jar,比如使用maven:<dependency> <groupId>org.elasticsearch</groupId> <artifactId>elasticsearch</artifactId> <version>1.4.4</version></dependency>然后初始化一个client对象:private static TransportClient client; private static String INDEX = "index_name"; private static String TYPE = "type_name"; public static TransportClient init(){ Settings settings = ImmutableSettings.settingsBuilder() .put("client.transport.sniff", true) .put("cluster.name", "cluster_name") .build(); client = new TransportClient(settings).addTransportAddress(new InetSocketTransportAddress("localhost",9300)); return client; } public static void main(String[] args) { TransportClient client = init(); //这样就可以使用client执行查询了 }然后就是创建两个查询过程了 ,下面是from-size分页的执行代码:System.out.println("from size 模式启动!");Date begin = new Date();long count = client.prepareCount(INDEX).setTypes(TYPE).execute().actionGet().getCount();SearchRequestBuilder requestBuilder = client.prep

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值