三人行必有我师

python拉取es数据能力

Elasticsearch | 作者 elasticStack | 发布于2019年04月12日 | 阅读数:4089

es版本:6.X
python版本: 2.7

使用python获取特定的数据(过滤条件为dsl), 目前做了测试
①requests直接对接es集群:1070W/1159s
②scroll_id方式:1070W/1177s
③scan(内部封装了scroll_id): 1070W/912s

这几乎就是1W/s的速度, 很难接受, 请问有什么办法可以缩短这个时间
已邀请:

rochy - rochy_he

赞同来自: elasticStack

你可以看一下你拉取的时候的网络带宽
如果带宽允许的情况下,可以尝试修改每次拉取的 size
找到一个合适的大小对提高数据获取性能也比较重要
 
当然你也可以使用 sliced-scroll 多线程并发拉取 scroll 的数据:https://www.elastic.co/guide/e ... croll
 

elasticStack - 90后it大数据男

赞同来自:

使用slice多进程获取es数据 , primary shards 为6, 对应起了6个进程,每个进程的情况如下:
208W/178s,
208W/179s,
209W/181s,
208W/179s,
208W/180s,
208W/178s
总共读取1250W花费180s左右

total.png


多进程.png

 

要回复问题请先登录注册