【技術實現步驟摘要】
一種基于BFS+DFS的圖數據快速多層擴線方法
[0001]本專利技術涉及一種基于BFS+DFS的圖數據快速多層擴線方法,屬于圖數據庫
技術介紹
[0002]隨著物聯網Iot技術的快速發展,各個行業涌現出海量需要進行關聯分析的數據,而傳統的關系型數據庫無法滿足復雜關聯網絡數據的存儲查詢和分析,圖數據庫表現出前所未有的性能優勢。
[0003]對于圖數據特有的多層擴線問題,由于數據隨著查詢層級的深入呈指數級增加,資源占用會大幅增加,并且性能會大幅下降。例如查詢10個節點的5層關系,每個節點的平均關系數為100,則第一層查詢出的關系數為10*100=1000,第二層為10*1002=100000,第三層為10*1003=10000000,第四層為10*1004=1000000000,
…
,不考慮重復的關系數據,四層查詢此時的關系數據已經達到10億級別,如果出現超級節點,數據量更是成倍增加。
[0004]多層擴線屬于搜索類操作,一般有DFS、BFS兩種方式,DFS是深度優先搜索,而BFS是廣度優先搜索。
[0005]DFS就是暴力的把所有路徑都搜索出來,運用了回溯法,保存這次的位置,深入搜索,都搜索完了便進行回溯,搜索下一個位置,直到把所有的最深位置都搜一遍,找到的許多路徑可能都是無用的,但是由于每次只會順著一個方向深入搜索,所以不會引發資源緊張問題,但是可能耗時較久。
[0006]BFS就是每一層都找到所有可能的路徑,在選擇其中一個方向,繼續找到所有可能的路徑,接 ...
【技術保護點】
【技術特征摘要】
1.一種基于BFS+DFS的圖數據快速多層擴線方法,其特征在于:基于預設目標類型對象集,根據預設關聯屬性下的關系搜索請求,實現以預設目標類型對象集中目標對象出發、關于預設關聯屬性下的關系對象網搜索;包括如下步驟:步驟A.基于預設目標類型對象集的等量均分,獲得各個預設目標類型對象子集,然后初始化i=1、以及結果路徑集合為空集,并進入步驟B;步驟B.根據預設大于1的最大關系層數K,以第i個預設目標類型對象子集中各目標對象對應第0關系層,初始化第i個預設目標類型對象子集所對應的第1關系層至第K
?
1關系層,并初始化n=1,然后進入步驟C;步驟C.針對第i個預設目標類型對象子集中的第n個目標對象,執行對應預設最大關系層數K的關系搜索,若成功完成該第n個目標對象對應預設最大關系層數K的關系搜索,則獲得該第n個目標對象對應預設最大關系層數K的關系網,并進入步驟D;若未成功完成該第n個目標對象對應預設最大關系層數K的關系搜索,則進入步驟F;步驟D.針對最新所獲該第n個目標對象對應預設最大關系層數K的關系網,由第K
?
1關系層向第0關系層方向,搜索對應該第n個目標對象的各關系對象路徑,加入結果路徑集合中,并判斷結果路徑集合中關系對象路徑的數量是否滿足關系搜索請求中的路徑數要求,是則完成以目標對象出發、關于預設關聯屬性下的關系對象網搜索;否則進入步驟E;步驟E.針對該第n個目標對象對應預設最大關系層數K的關系網,按第K
?
1關系層向第0關系層方向,執行對應預設最大關系層數K的新關系搜索,若成功完成該第n個目標對象對應預設最大關系層數K的新關系搜索,獲得該第n個目標對象對應預設最大關系層數K的關系網,并返回步驟D;若未成功完成該第n個目標對象對應預設最大關系層數K的新關系搜索,則進入步驟F;步驟F.判斷n是否等于第i個預設目標類型對象子集中目標對象的數量,是則進入步驟G;否則針對n的值進行加1更新,并返回步驟C;步驟G.判斷i的值是否等于預設目標類型對象子集的數量,是則結束以預設目標類型對象集中目標對象出發、關于預設關聯屬性下的關系對象網搜索;否則針對i的值進行加1更新,并初始化n=1,然后返回步驟C。2.根據權利要求1所述一種基于BFS+DFS的圖數據快速多層擴線方法,其特征在于:所述步驟C按如下步驟C1至步驟C8執行;步驟C1.初始化k=1,并選擇第i個預設目標類型對象子集中的第n個目標對象,作為該第n個目標對象所對應第k
?
1關系層的待分析對象,并進入步驟C2;步驟C2.查找判斷該第n個目標對象所對應第k
?
1關系層各待分析對象關于預設關聯屬性、是否存在所關聯的關系對象,是則獲得該第n個目標對象所對應第k
?
1關系層各待分析對象關于預設關聯屬性所關聯的各關系對象,并進入步驟C3;否則進入步驟C6;步驟C3.判斷k是否等于K
?
1,是則進入步驟C5;否則進入步驟C4;步驟C4.判斷該第n個目標對象所對應第k
?
1關系層各待分析對象關于預設關聯屬性所關聯的關系對象的數量是否大于預設分析上限L,是則由該所關聯各關系對象中隨機選擇L個關系對象,作為該第n個目標對象所對應第k關系層的各待分析對象,并針對k的值進行加1更新,然后返回步驟C2;否則直接將該所關聯的各關系對象,作為該第n個目標對象所對應第k關系層的各待分析對象,并針對k的值進行加1更新,然后返回步驟C2;
步驟C5.將該第n個目標對象所對應第k
?
1關系層各待分析對象關于預設關聯屬性所關聯的各關系對象,作為該第n個目標對象所對應第k關系層的各待分析對象,即成功完成該第n個目標對象對應預設最大關系層數K的關系搜索,獲得該第n個目標對象對應預設最大關系層數K的關系網,并進入步驟D;步驟C6.判斷k
?
1是否等于0,是則即未成功完成該第n個目標對象對應預設最大關系層數K的關系搜索,然后進入步驟F;否則進入步驟C7;步驟C7.判斷該第n個目標對象所對應第k
?
2關系層各待分析對象關于預設關聯屬性所關聯的各關系對象中、是否存在未作為該第n個目標對象所對應第k
?
1關系層中待分析對象的...
【專利技術屬性】
技術研發人員:丁軍峰,黃曉丹,夏軍生,趙智峰,曹俊亮,
申請(專利權)人:西安烽火軟件科技有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。