本技術(shù)涉及數(shù)據(jù)庫,尤其涉及數(shù)據(jù)索引方法、系統(tǒng)、電子設(shè)備及可讀存儲介質(zhì)。
背景技術(shù):
1、在信息技術(shù)領(lǐng)域,特別是數(shù)據(jù)庫管理和搜索引擎集成領(lǐng)域,隨著大數(shù)據(jù)時代的到來,高效的數(shù)據(jù)檢索和分析功能變得至關(guān)重要。為了實現(xiàn)高效的數(shù)據(jù)檢索和分析,通常將es(elasticsearch,搜索引擎)作為一個獨立的數(shù)據(jù)層,實時或定期地將數(shù)據(jù)庫mysql(mystructured?query?language,結(jié)構(gòu)化查詢語言)中的變更(如新增、修改等操作)同步到es中,以定期更新es,保證es中的數(shù)據(jù)與數(shù)據(jù)庫mysql中的數(shù)據(jù)保持一致。
2、而es的更新可能導(dǎo)致es中的用于搜索同一數(shù)據(jù)的索引多樣化,例如,過期或同步過程中失敗的索引。而當業(yè)務(wù)系統(tǒng)在調(diào)用es中的索引進行數(shù)據(jù)索引操作時,業(yè)務(wù)系統(tǒng)往往無法區(qū)分es中最新或準確的索引。這意味著業(yè)務(wù)系統(tǒng)可能會錯誤地選擇到過期或同步失敗的索引,進而在執(zhí)行數(shù)據(jù)索引操作時獲得錯誤的數(shù)據(jù)或遭遇索引失敗的情況。這種不確定性降低了數(shù)據(jù)索引的可靠性。
3、上述內(nèi)容僅用于輔助理解本技術(shù)的技術(shù)方案,并不代表承認上述內(nèi)容為現(xiàn)有技術(shù)。
技術(shù)實現(xiàn)思路
1、本技術(shù)的主要目的在于提供一種數(shù)據(jù)索引方法、系統(tǒng)、電子設(shè)備及可讀存儲介質(zhì),旨在解決數(shù)據(jù)索引可靠性低的技術(shù)問題。
2、為實現(xiàn)上述目的,本技術(shù)提供一種數(shù)據(jù)索引方法,應(yīng)用于與業(yè)務(wù)系統(tǒng)連接的數(shù)據(jù)管理系統(tǒng),數(shù)據(jù)管理系統(tǒng)包括數(shù)據(jù)庫和搜索引擎,所述的方法包括:
3、在所述數(shù)據(jù)庫與搜索引擎之間進行數(shù)據(jù)同步操作的情況下,在所述搜索引擎的第一索引類型中創(chuàng)建版本類型為最新版本的目標索引;
4、將所述最新版本存儲在所述數(shù)據(jù)庫中,并在所述數(shù)據(jù)庫中確定目標索引的數(shù)據(jù)同步狀態(tài);
5、在檢測到所述目標索引完成數(shù)據(jù)同步,且確定所述目標索引無異常的情況下,將所述目標索引的數(shù)據(jù)同步狀態(tài)調(diào)整為完成狀態(tài);
6、若接收到業(yè)務(wù)系統(tǒng)發(fā)送的讀取指令,并在所述讀取指令對應(yīng)的索引需求為第一索引類型時,將數(shù)據(jù)庫中存儲的所述第一索引類型的最新版本發(fā)送至業(yè)務(wù)系統(tǒng),其中,所述業(yè)務(wù)系統(tǒng)用于調(diào)用所述搜索引擎和所述最新版本執(zhí)行數(shù)據(jù)索引操作。
7、在一實施例中,所述在檢測到所述目標索引完成數(shù)據(jù)同步,且確定所述目標索引無異常的情況下,將所述目標索引的數(shù)據(jù)同步狀態(tài)調(diào)整為完成狀態(tài)的步驟包括:
8、在檢測到所述目標索引完成數(shù)據(jù)同步的情況下,獲取所述目標索引的同步數(shù)據(jù)量,以及獲取所述最新版本上一時間步的歷史版本的歷史索引,并確定所述歷史索引的歷史數(shù)據(jù)量;
9、在所述同步數(shù)據(jù)量與所述歷史數(shù)據(jù)量之間的絕對差值小于預(yù)設(shè)波動閾值的情況下,確定所述目標索引無異常,并將所述目標索引的數(shù)據(jù)同步狀態(tài)調(diào)整為完成狀態(tài)。
10、在一實施例中,在所述獲取所述最新版本上一時間步的歷史版本的歷史索引,并確定所述歷史索引的歷史數(shù)據(jù)量的步驟之后,還包括:
11、在所述同步數(shù)據(jù)量與所述歷史數(shù)據(jù)量之間的絕對差值大于或等于預(yù)設(shè)波動閾值的情況下,確定所述目標索引存在異常,并將所述目標索引的數(shù)據(jù)同步狀態(tài)調(diào)整為失敗狀態(tài),并輸出同步失敗提示。
12、在一實施例中,在將所述目標索引的數(shù)據(jù)同步狀態(tài)調(diào)整為失敗狀態(tài),并輸出同步失敗提示的步驟之后,還包括:
13、將失敗版本從所述數(shù)據(jù)庫中刪除,以及在所述搜索引擎中刪除失敗版本對應(yīng)的失敗索引,其中,所述失敗版本為同步狀態(tài)為失敗狀態(tài)的索引版本。
14、在一實施例中,獲取各索引類型各自的版本數(shù)量;
15、在各所述索引類型中確定任一目標索引類型,在所述目標索引類型的目標版本數(shù)量大于預(yù)設(shè)版本閾值的情況下,將目標版本數(shù)量與預(yù)設(shè)版本閾值之差作為目標刪除數(shù)量;
16、對屬于所述目標索引類型的各索引版本按照各自的同步時間的先后順序進行依次排序,將排序次序小于或等于目標刪除數(shù)量的各索引版本均確定為過期版本;
17、將各所述過期版本從所述數(shù)據(jù)庫中刪除,并在所述搜索引擎中分別刪除各所述過期版本各自對應(yīng)的過期索引。
18、在一實施例中,所述數(shù)據(jù)庫包括目標下線版本和/或目標切換版本,所述的方法還包括以下至少一項:
19、若接收到所述業(yè)務(wù)系統(tǒng)發(fā)送的索引版本下線指示,則從所述索引版本下線指示中確定目標下線版本,將所述目標下線版本對應(yīng)的數(shù)據(jù)同步狀態(tài)調(diào)整為失敗狀態(tài);
20、若接收到所述業(yè)務(wù)系統(tǒng)發(fā)送的索引版本切換指示,從所述索引版本切換指示中確定目標切換版本,將所述目標切換版本對應(yīng)的同步時間修改為當前時間。
21、為實現(xiàn)上述目的,本技術(shù)提供一種數(shù)據(jù)索引方法,應(yīng)用于與數(shù)據(jù)管理系統(tǒng)連接的業(yè)務(wù)系統(tǒng),所述數(shù)據(jù)管理系統(tǒng)包括數(shù)據(jù)庫和搜索引擎,所述方法包括:
22、向所述數(shù)據(jù)管理系統(tǒng)發(fā)送讀取指令,接收所述數(shù)據(jù)管理系統(tǒng)基于所述讀取指令發(fā)送的存儲在數(shù)據(jù)庫中的第一索引類型的最新版本;
23、在接收到外部在所述業(yè)務(wù)系統(tǒng)可視化展示的索引界面上觸發(fā)的數(shù)據(jù)索引指示,且所述數(shù)據(jù)索引指示包含最新版本的情況下,調(diào)用所述數(shù)據(jù)管理系統(tǒng)中的搜索引擎,確定所述最新版本的目標索引;
24、通過所述目標索引執(zhí)行數(shù)據(jù)索引操作;
25、其中,所述數(shù)據(jù)庫還用于在所述數(shù)據(jù)庫與搜索引擎之間進行數(shù)據(jù)同步操作的情況下,在所述搜索引擎的第一索引類型中創(chuàng)建版本類型為最新版本的目標索引,目標索引屬于第一索引類型;將所述最新版本存儲在所述數(shù)據(jù)庫中,并在所述數(shù)據(jù)庫中確定目標索引的數(shù)據(jù)同步狀態(tài);在檢測到所述目標索引完成數(shù)據(jù)同步,且確定所述目標索引無異常的情況下,將所述目標索引的數(shù)據(jù)同步狀態(tài)調(diào)整為完成狀態(tài)。
26、此外,為實現(xiàn)上述目的,本技術(shù)還提供一種電子設(shè)備,所述電子設(shè)備包括:存儲器、處理器以及存儲在所述存儲器上并可在所述處理器上運行的所述數(shù)據(jù)索引方法的程序,所述數(shù)據(jù)索引方法的程序被處理器執(zhí)行時可實現(xiàn)如上述的數(shù)據(jù)索引方法的步驟。
27、此外,為實現(xiàn)上述目的,本技術(shù)還提供一種計算機可讀存儲介質(zhì),所述計算機可讀存儲介質(zhì)上存儲有實現(xiàn)數(shù)據(jù)索引方法的程序,所述數(shù)據(jù)索引方法的程序被處理器執(zhí)行時實現(xiàn)如上述的數(shù)據(jù)索引方法的步驟。
28、此外,為實現(xiàn)上述目的,本技術(shù)還提供一種計算機程序產(chǎn)品,包括計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)如上述的數(shù)據(jù)索引方法的步驟。
29、本技術(shù)提出的一個或多個技術(shù)方案,至少具有以下技術(shù)效果:本技術(shù)在所述數(shù)據(jù)庫與搜索引擎之間進行數(shù)據(jù)同步操作的情況下,在所述搜索引擎中創(chuàng)建版本類型為最新版本的目標索引,所述目標索引屬于第一索引類型;將所述最新版本存儲在所述數(shù)據(jù)庫中,并在所述數(shù)據(jù)庫中確定目標索引的數(shù)據(jù)同步狀態(tài);在檢測到所述目標索引完成數(shù)據(jù)同步,且確定所述目標索引無異常的情況下,將所述目標索引的數(shù)據(jù)同步狀態(tài)調(diào)整為完成狀態(tài),實現(xiàn)了在數(shù)據(jù)同步的同時,將第一索引類型的最新版本和數(shù)據(jù)同步狀態(tài)保存在數(shù)據(jù)庫,便于后續(xù)業(yè)務(wù)系統(tǒng)從數(shù)據(jù)庫中獲取最新版本。具體的在接收到業(yè)務(wù)系統(tǒng)發(fā)送的讀取指令,且讀取指令對應(yīng)的索引需求為第一索引類型時,會將數(shù)據(jù)庫中存儲的第一索引類型的最新版本發(fā)送至業(yè)務(wù)系統(tǒng),從而使得業(yè)務(wù)系統(tǒng)可以調(diào)用搜索引擎和最新版本執(zhí)行數(shù)據(jù)索引操作。
30、由于最新版本對應(yīng)的數(shù)據(jù)同步狀態(tài)為完成狀態(tài),所以,業(yè)務(wù)系統(tǒng)獲取到的也是數(shù)據(jù)同步狀態(tài)為完成狀態(tài)的最新版本,因此,業(yè)務(wù)系統(tǒng)在調(diào)用搜索引擎和最新版本執(zhí)行數(shù)據(jù)索引操作時,可以搜索到最新且準確的數(shù)據(jù),進而提高了數(shù)據(jù)搜索的可靠性。