有一個(gè)場(chǎng)景,我必須從多個(gè)源導(dǎo)入數(shù)據(jù)(數(shù)百萬(wàn)條記錄)并將其保存在數(shù)據(jù)庫(kù)中。當(dāng)用戶(hù)嘗試搜索與該數(shù)據(jù)相關(guān)的任何信息時(shí),他們應(yīng)該在 2-3 秒內(nèi)獲得結(jié)果。為此,我設(shè)計(jì)了一個(gè)架構(gòu),使用 golang 從多個(gè)源導(dǎo)入數(shù)據(jù)并將數(shù)據(jù)推送到 AWS SQS 中。我創(chuàng)建了一個(gè) lambda 函數(shù),當(dāng) AWS SQS 有一些數(shù)據(jù)時(shí)會(huì)觸發(fā)該函數(shù)。然后,此 lambda 函數(shù)將數(shù)據(jù)推送到 AWS Elastic Search 中。我創(chuàng)建了一個(gè) Rest API,用它向用戶(hù)提供結(jié)果。我每天早上都使用 CRON 來(lái)做這個(gè)導(dǎo)入工作?,F(xiàn)在我的問(wèn)題是,如果有一批新數(shù)據(jù)到來(lái),我想刪除現(xiàn)有數(shù)據(jù)并用新數(shù)據(jù)替換所有數(shù)據(jù)。我陷入了如何實(shí)現(xiàn)刪除和添加新數(shù)據(jù)部分的困境。我想到了創(chuàng)建一個(gè)臨時(shí)索引,然后用原來(lái)的索引替換它。但問(wèn)題是我不知道導(dǎo)入何時(shí)結(jié)束并可以進(jìn)行此索引切換。
1 回答
一只甜甜圈
TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超5個(gè)贊
您所追求的概念是索引別名?;竟ぷ髁鞒淌牵?/p>
將今天的數(shù)據(jù)導(dǎo)入到索引中
my-index-2019-09-16(例如)。確保導(dǎo)入完成并且工作正常。
將別名指向新索引(這是索引之間的原子切換):
POST?/_aliases {? ???"actions"?:?[ ????????{?"remove"?:?{?"index"?:?"my-index-2019-09-15",?"alias"?:?"my-index"?}?}, ????????{?"add"?:?{?"index"?:?"my-index-2019-09-16",?"alias"?:?"my-index"?}?} ????] }刪除舊索引。
您將在導(dǎo)入過(guò)程中將磁盤(pán)空間增加一倍,但否則這應(yīng)該不會(huì)出現(xiàn)任何問(wèn)題,并且只有在數(shù)據(jù)有正確的替換后才刪除數(shù)據(jù)。
- 1 回答
- 0 關(guān)注
- 152 瀏覽
添加回答
舉報(bào)
0/150
提交
取消
