簡體   English   中英

elasticsearch 中頻繁更新的影響

[英]Impact of frequent updates in elasticsearch

我們計划使用 elasticsearch 來存儲商家資料詳細信息和他的交易金額摘要。 我們必須更新每筆交易的文件以保持總金額同步。

  1. 是否可以頻繁更新文檔以增加字段?
  2. 我們計划使用更新 API 來更新一個文件,它會重新索引整個文檔嗎? 是否有任何選項可以僅更新特定字段而不重新索引其他字段?
  3. 如果我們有兩個索引或一個具有兩種類型的索引會很好,一種用於概要文件,另一種用於摘要?

提前致謝。

請在線查找答案:

  1. 是否可以頻繁更新文檔以增加字段?

這是非常主觀的,並且基於各種參數,例如索引中有多少文檔、多少分片、多少數據節點以及您的寫入 QPS 等,Elasticsearch 非常可擴展,如果您調整集群和索引,您可以獲得非常高的吞吐量沒有任何問題。 如果您提供更多詳細信息,我們可以建議如何針對像您這樣的寫入繁重的系統進行調整。 請參閱ES 博客以調整索引速度

  1. 我們計划使用更新 API 來更新一個字段,它會重新索引整個文檔嗎? 是否有任何選項可以僅更新特定字段而不重新索引其他字段?

是的,即使您更新了一個字段,在內部 elasticsearch 標記舊文檔已刪除(軟刪除)並創建一個新文檔,然后在分段合並舊刪除文檔期間實際刪除。 Elastician在此 SO 答案中詳細介紹了有關 ES 部分更新的更多信息

  1. 如果我們有兩個索引或具有兩種類型的索引會很好,一種用於概要文件,另一種用於摘要?

這取決於,如果在查詢時需要同時查看兩個索引( 類型在最新版本中已棄用),那么創建兩個索引是沒有意義的,因為非規范化數據將提供更好的搜索性能。

此外,使用連接創建兩個索引實施起來會有點復雜,而且無論如何您需要經常為作者更新交易數據,這將擁有最多的賣方數據,而大索引的更新成本更高,所以即使您在配置文件索引上保存更新但仍然非常小,恕我直言,它不會提供更好的性能,但您可以通過一些壓力測試進行測試。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM