结合指标数据场景优化查询效率实战

本文详细介绍了如何通过ES的Scroll接口优化大数据量查询,避免一次性加载所有数据,降低ES负担。同时,针对不同业务需求,利用策略设计模式重构代码,提高代码的复用性和可维护性,确保查询效率的同时注重代码质量。
摘要由CSDN通过智能技术生成

结合 32 课,继续讨论关于优化查询效率的问题,上个课时中我们使用 es.search(dsl,index) 接口查询出了北京城市的所有天气数据,即使我们使用了 _source 字段控制了不必要的网络输出,但是我们是一次性把北京城市的数据全部都取回来了,并且使用 value_cout 字段统计了有多少条数据,然后设置 size,这里因为 size 比较小,没超过 10000 条,但是如果是上百万条呢?通过 value_cout 获取数据个数,然后再设置 size 一次性取回来吗?

当然是不允许了,无法再划分的取数据需求,我们可以分批取回所有数据,那就是 Scroll 接口。

ES 优化 Scroll

指定 index,指定 DSL,配置 Scroll 有效时间是 2 分钟,每次取 1000 个。关于 Scroll 原理之前的课时也介绍的很清楚了,就是会在 ES 里面生成一个数据快照,Scroll 会直接从这个快照里面取,快照不能够避免脏数据,因为不能够跟 ES 索引保持实时一致,如果数据快照已经生成,ES 索引数据发生改变,那么这更新后的 ES 数据是不会同步到数据快照中的。

data=es.search(index=index,body=dsl,scroll='2m'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值