我正在寻找同步一个Elasticsearch索引到另一个数据源。要获取数据库数据,我可以执行以下操作:
select _id, md5 FROM history在ES中执行此操作的最快方法是什么?我试过使用scroll API,但它看起来非常慢,有10k的限制:
es.search(index='history', _source=['_id', 'md5'], size=10000))有没有更好的方法来做这件事?
发布于 2019-05-12 04:02:45
通过使用slices,可以并行使用Scroll API。从理论上讲,它可以在N个切片的情况下将速度提高N倍。
滚动速度慢是因为Elasticsearch需要执行full scan。
为了同步Elasticsearch和其他数据库,我建议在Elasticsearch之前设置一些文档队列,以便将文档发送到Elasticsearch和其他组件。这样的文档队列的一个例子是Apache Kafka。据我所知,没有任何机制允许将新文档更新从Elasticsearch发送到第三方组件。
希望这能有所帮助!
https://stackoverflow.com/questions/56084077
复制相似问题