亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用這種架構復制 Elastic Search 中的索引?

如何使用這種架構復制 Elastic Search 中的索引?

Go
米琪卡哇伊 2023-07-10 15:07:20
有一個場景,我必須從多個源導入數據(數百萬條記錄)并將其保存在數據庫中。當用戶嘗試搜索與該數據相關的任何信息時,他們應該在 2-3 秒內獲得結果。為此,我設計了一個架構,使用 golang 從多個源導入數據并將數據推送到 AWS SQS 中。我創建了一個 lambda 函數,當 AWS SQS 有一些數據時會觸發該函數。然后,此 lambda 函數將數據推送到 AWS Elastic Search 中。我創建了一個 Rest API,用它向用戶提供結果。我每天早上都使用 CRON 來做這個導入工作。現在我的問題是,如果有一批新數據到來,我想刪除現有數據并用新數據替換所有數據。我陷入了如何實現刪除和添加新數據部分的困境。我想到了創建一個臨時索引,然后用原來的索引替換它。但問題是我不知道導入何時結束并可以進行此索引切換。
查看完整描述

1 回答

?
一只甜甜圈

TA貢獻1836條經驗 獲得超5個贊

您所追求的概念是索引別名?;竟ぷ髁鞒淌牵?/p>

  1. 將今天的數據導入到索引中my-index-2019-09-16(例如)。

  2. 確保導入完成并且工作正常。

  3. 將別名指向新索引(這是索引之間的原子切換):

    POST?/_aliases
    {?
    ???"actions"?:?[
    ????????{?"remove"?:?{?"index"?:?"my-index-2019-09-15",?"alias"?:?"my-index"?}?},
    ????????{?"add"?:?{?"index"?:?"my-index-2019-09-16",?"alias"?:?"my-index"?}?}
    ????]
    }
  4. 刪除舊索引。

您將在導入過程中將磁盤空間增加一倍,但否則這應該不會出現任何問題,并且只有在數據有正確的替換后才刪除數據。


查看完整回答
反對 回復 2023-07-10
  • 1 回答
  • 0 關注
  • 113 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號