我需要通过es api获取特定时间段的数据,并使用python对这些数据进行一些自定义分析,并将结果显示在仪表板上。
每15分钟大约有20万条记录,按日期索引。
现在我使用滚动扫描来获取数据,但是要花费近一分钟才能获得200000条记录,这似乎太慢了。
有什么方法可以更快地处理这些数据吗?我可以使用redis之类的方法保存结果并避免重复的工作吗?
最佳答案
是否可以使用聚合在Elasticsearch方面进行分析?
假设您尚未执行此操作,则应使用_source
仅下载所需的绝对最小数据。您也可以尝试将size
参数从默认值1000增加到scan()
。但是,我希望仅对此进行适度的速度改进。
如果历史数据不变,那么像Redis这样的缓存(甚至只是本地文件)可能是一个很好的解决方案。如果历史数据可以更改,则必须管理缓存无效。
关于python - 如何在python中加快Elasticsearch滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60656675/