我有一項每小時的工作,將數據庫中的數據編入ElasticSearch,但似乎索引需要一個多小時。如果在索引已經運行時運行ElasticSearch索引會發生什麼?
如果有另一個索引,而另一個仍在運行,會發生什麼?有沒有可能發生的問題?
我有一項每小時的工作,將數據庫中的數據編入ElasticSearch,但似乎索引需要一個多小時。如果在索引已經運行時運行ElasticSearch索引會發生什麼?
如果有另一個索引,而另一個仍在運行,會發生什麼?有沒有可能發生的問題?
我認爲這個問題是有點朦朧......
如果索引數據在你的工作,你沒有指定_id
- 你將產生重複 - 這是可怕的局面。
但是,如果您指定_id
,您只需重新編制相同文檔的索引幾次 - 它不是很糟糕,但它對您的服務器來說是額外的和不必要的工作。
但是,如果你的工作消耗大量的資源(CPU,內存等),你可能會超載你的服務器...
什麼都不應該發生。 Elasticsearch可以輕鬆應對。我的建議是從另一面看這個問題。也許最好是嘗試改進同步。例如將插入註冊到隊列中,然後將其縮放到多個工作人員。順便說一句你用散裝插入?
不,我沒有使用批量插入。插入時會提高性能嗎? –
你應該使用批量。沒有它,每一個操作都是單獨的http請求。通過批量,您可以在單個請求中插入或更新1000個條目。檢查這個https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bulk.html – saimaz
是的,我們確實指定id,它似乎並沒有產生重複。我將需要改進索引,以便它不會做任何不必要的工作。 –