本申請涉及圖數據庫數據導入,尤其是一種gql圖數據庫數據導入方法及裝置。
背景技術:
1、隨著大數據和分布式計算技術的發展,圖數據庫在處理復雜關系數據方面展現出顯著優勢。然而,在實際應用中,分布式圖數據庫的數據導入過程常常面臨數據量大、網絡不穩定、數據源多樣等問題,導致導入任務容易失敗,傳統的數據導入方法在任務中斷后需要重新開始導入,這對于大規模數據集而言不僅浪費了大量的計算資源,還可能導致數據重復導入或丟失,造成穩定性差、性能差、準確性差的問題。因此如何在數據導入過程中實現斷點續傳,避免重復導入,提升導入效率成為亟待解決的技術問題。
2、公開號為cn113704277a的中國專利公開了一種基于數據庫的斷點續傳方法及相關裝置,要借助數據庫的存儲能力用于記錄斷點位置,其中斷點位置為數據庫源表行號或數據庫源表數組序號。通過獲取待處理數據庫事務,讀取斷點記錄,從斷點位置標識出對應的處理位置來執行數據庫事務,并在每次提交操作時更新斷點位置標識,與數據庫訪問頻繁,影響數據庫性能。并且該專利是針對事務型數據庫,一個導入批次的數據導入是事務的,要么全部導入成功要么全部導入失敗,不適用于沒有事務能力的gql圖數據庫。
技術實現思路
1、本申請的目的在于克服現有技術中gql圖數據庫無法實現斷點續傳,數據導入gql圖數據庫的任務中斷后需要重新開始導入所導致的數據重復導入、浪費計算資源以及數據易丟失的問題,提供一種gql圖數據庫數據導入方法及裝置。
2、第一方面,提供了一種gql圖數據庫數據導入方法,包括:
3、將數據源按照預設的分區策略進行分區;
4、讀取指定路徑下的上次導入任務的任務狀態信息,以獲取分區的數據導入完成狀態;
5、將數據導入完成狀態為未完成的分區中的數據批量導入gql圖數據庫;
6、將導入完成的分區的任務狀態信息存儲至指定路徑,所述任務狀態信息包括:源數據索引、點邊類型、分區id、數據導入完成狀態和導入狀態數據。
7、在一些可能的實現方式中,還包括:在將分區中的數據批量導入gql圖數據庫的過程中,將導入失敗批次數據拆分成單條數據進行并發重試導入,并記錄導入失敗的單條數據。
8、在一些可能的實現方式中,對數據源進行識別和分類,根據數據源的特性和數據量進行內存分區。
9、在一些可能的實現方式中,所述導入狀態數據包括:源數據記錄數、已導入完成的點數據量、已導入完成的邊數據量、已導入失敗的點數據量、已導入失敗的邊數據量、已導入且對gql圖數據庫產生影響的點數據量和已導入且對gql圖數據庫產生影響的邊數據量。
10、在一些可能的實現方式中,將數據導入完成狀態為未完成的分區中的數據批量導入gql圖數據庫,包括:
11、讀取導入完成狀態為未完成的分區中的數據;
12、將讀取的數據轉換成批量導入的gql語句;
13、將所述gql語句發送至圖數據庫服務,由圖數據庫服務執行gql語句進行數據導入。
14、在一些可能的實現方式中,在數據導入gql圖數據庫的過程中,向用戶展示數據導入開始時上次導入任務已完成的數據量、當前導入任務的導入進度和每秒查詢次數。
15、第二方面,提供了一種gql圖數據庫數據導入裝置,包括:
16、分區模塊,用于將數據源按照預設的分區策略進行分區;
17、上次斷點狀態讀取模塊,用于讀取指定路徑下的上次導入任務的任務狀態信息,以獲取分區的數據導入完成狀態;
18、斷點續傳模塊,用于將數據導入完成狀態為未完成的分區中的數據批量導入gql圖數據庫;
19、任務狀態記錄模塊,用于將導入完成的分區的任務狀態信息存儲至指定路徑,所述任務狀態信息包括:源數據索引、點邊類型、分區id、數據導入完成狀態和導入狀態數據。
20、在一些可能的實現方式中,還包括:拆分重試模塊,用于在將分區中的數據批量導入gql圖數據庫的過程中,將導入失敗批次數據拆分成單條數據進行并發重試導入,并記錄導入失敗的單條數據。
21、第三方面,提供了一種計算機可讀存儲介質,所述計算機可讀介質存儲用于設備執行的程序代碼,該程序代碼包括用于執行如上述第一方面中的任意一種實現方式中方法的步驟。
22、第四方面,提供了一種電子設備,所述電子設備包括處理器、存儲器及存儲在所述存儲器上并可在所述處理器上運行的程序或指令,所述程序或指令被所述處理器執行時實現如上述第一方面中的任意一種實現方式中的方法。
23、本申請具有如下有益效果:
24、1、本申請通過在內存中對源數據進行分區,并記錄各個分區的完成情況和導入進度,實現了gql圖數據庫數據導入的斷點續傳功能,避免了導入任務中斷所導致的重復導入,顯著提高了數據導入的效率和穩定性,特別是在分布式環境下,能夠有效應對數據量大、網絡不穩定等問題,為gql圖數據庫的應用提供了強有力的技術支持。
25、2、本申請通過批次數據失敗后拆分成單條數據再進行并發重試的方式來處理批量錯誤,實現了失敗數據量的最小化,進一步提高了數據導入的效率。
1.一種gql圖數據庫數據導入方法,其特征在于,包括:
2.根據權利要求1所述的gql圖數據庫數據導入方法,其特征在于,還包括:在將分區中的數據批量導入gql圖數據庫的過程中,將導入失敗批次數據拆分成單條數據進行并發重試導入,并記錄導入失敗的單條數據。
3.根據權利要求1所述的gql圖數據庫數據導入方法,其特征在于,對數據源進行識別和分類,根據數據源的特性和數據量進行內存分區。
4.根據權利要求1所述的gql圖數據庫數據導入方法,其特征在于,所述導入狀態數據包括:源數據記錄數、已導入完成的點數據量、已導入完成的邊數據量、已導入失敗的點數據量、已導入失敗的邊數據量、已導入且對gql圖數據庫產生影響的點數據量和已導入且對gql圖數據庫產生影響的邊數據量。
5.根據權利要求4所述的gql圖數據庫數據導入方法,其特征在于,將數據導入完成狀態為未完成的分區中的數據批量導入gql圖數據庫,包括:
6.根據權利要求1-5中任一項所述的gql圖數據庫數據導入方法,其特征在于,在數據導入gql圖數據庫的過程中,向用戶展示數據導入開始時上次導入任務已完成的數據量、當前導入任務的導入進度和每秒查詢次數。
7.一種gql圖數據庫數據導入裝置,其特征在于,包括:
8.根據權利要求7所述的gql圖數據庫數據導入裝置,其特征在于,還包括:拆分重試模塊,用于在將分區中的數據批量導入gql圖數據庫的過程中,將導入失敗批次數據拆分成單條數據進行并發重試導入,并記錄導入失敗的單條數據。
9.一種計算機可讀存儲介質,其特征在于,所述計算機可讀存儲介質存儲用于設備執行的程序代碼,該程序代碼包括用于執行如權利要求1-6中任一項所述方法的步驟。
10.一種電子設備,其特征在于,所述電子設備包括處理器、存儲器及存儲在所述存儲器上并可在所述處理器上運行的程序或指令,所述程序或指令被所述處理器執行時實現如權利要求1-6中任一項所述方法。