0
我目前遇到了一個問題,我真的陷入了困境。 我正試圖解決一個問題,我必須輸出Elasticsearch文檔並將它們寫入csv。文件範圍從5萬到5百萬。 我遇到嚴重的性能問題,我感覺我在這裏失去了一些東西。Elasticsearch批量寫入速度很慢,使用掃描和滾動
現在我有一個數據集,我想掃描和滾動,最終將被格式化並寫入csv的400,000個文檔。但輸出的時間是20分鐘!這是瘋了。
這裏是我的腳本:
import elasticsearch
import elasticsearch.exceptions
import elasticsearch.helpers as helpers
import time
es = elasticsearch.Elasticsearch(['http://XX.XXX.XX.XXX:9200'],retry_on_timeout=True)
scanResp = helpers.scan(client=es,scroll="5m",index='MyDoc',doc_type='MyDoc',timeout="50m",size=1000)
resp={}
start_time = time.time()
for resp in scanResp:
data = resp
print data.values()[3]
print("--- %s seconds ---" % (time.time() - start_time))
我使用Elasticsearch託管AWS m3.medium服務器。
任何人都可以告訴我,我可能會在這裏做錯嗎?
難道您輕鬆導出數據嘗試將大小參數設置爲10或100? – Rob
@Rob是的,我做了,我從10開始,然後是50,100,150,200,500,100,然後繼續改變它。我得到的最好的情況是在200秒的時間裏,需要18秒才能輸出4000條記錄,而這個記錄又是非常慢的。我想我絕對缺少一些除尺寸參數外的其他東西。 –