一種基于雙層索引結構的起源圖查詢方法
【技術領域】
[0001] 本發(fā)明涉及大數據管理領域的起源數據的管理,著重針對數據起源圖的查詢方案 的設計與實現。本發(fā)明根據數據起源圖特點給出一種基于雙層索引結構的起源圖查詢方 法。該方法分別從全局和局部兩個層次進行設計:一方面通過詞典表可以匹配數據與其起 源數據之間的關系提出基于詞典表全局索引算法;另一方面根據起源圖ID快速定位起源所 存儲在云計算服務器節(jié)點,提出基于位圖局部索引結構,包括6種不同的選擇索引和3種 join鏈接索引,并設計了相應的查詢算法。
【背景技術】
[0002] 數據起源是對數據處理的整個歷史的信息,包括數據的來源和處理這些數據的所 有后繼過程。隨著大數據的不斷發(fā)展,云計算環(huán)境下如何高效的查詢起源信息變得尤為重 要,如何高效的查詢起源信息成為了一個亟待解決的問題。
[0003] 本發(fā)明針對云計算環(huán)境下數據起源查詢問題,引入一種雙層索引結構,分別從全 局索引和局部索引兩方面進行分析,設計了一種起源圖查詢方法,并對方法可行的、有效的 進行驗證。
【發(fā)明內容】
[0004] 發(fā)明目的:針對現有技術中存在的問題,本發(fā)明提供一種基于雙層索引結構的起 源圖查詢方法。
[0005] 技術方案:一種基于雙層索引結構的起源圖查詢方法,首先,面向起源圖查詢,提 出一種雙層索引結構。其次,設計基于詞典表全局索引,表中記錄起源數據與數據之間匹配 關系以及起源圖ID,即能夠關聯(lián)起源與數據之間的關系,又能夠迅速定位到起源所存儲云 服務器節(jié)點以減少用戶查詢響應時間;然后,提出基于位圖局部索引,依據起源圖RDF查詢 方式,提出了滿足八種Triple Pattern查詢的索引和三種join查詢方式,并且基于索引設 計了相應的查詢算法。
[0006] 面向起源圖查詢的雙層索引結構
[0007]以往的分布式環(huán)境下存儲起源數據,查詢起源僅僅依賴master節(jié)點來分配任務進 行查找,通常需要遍歷整個集群,消耗大量的時間和資源。而現有分布式環(huán)境下起源存儲系 統(tǒng)基本都是基于主鍵來快速查詢,缺少高效的索引結構,不能提供多維查詢和join等查詢。 高效的索引結構能有效的提高查詢效率,縮短用戶查詢時的響應時間。
[0008]為提高查詢效率,結合起源圖特點,提出了一種雙層索引結構。索引結構包括基于 詞典表全局索引和基于位圖局部索引。全局索引查詢起源圖所存儲的服務器節(jié)點,局部索 引對全局索引查詢到的服務器節(jié)點細化查詢,進而查詢到所需的起源數據。全局索引分布 在云環(huán)境下每一個節(jié)點上,當用戶請求到達時,只需參照本地服務器的全局索引結構即能 得出所要查詢起源圖所在節(jié)點位置。局部索引是只建立在本地服務器所存儲的起源數據的 索引,每一個節(jié)點之間的局部索引并沒有依賴關系。
[0009] 基于詞典表的全局索引及全局查詢算法
[0010] 首先給出詞典表結構設計,在此基礎上,完成基于全局索引的查詢流程。
[0011] 1、詞典表結構設計
[0012] 根據數據起源特點,從兩方面設計詞典表HCPTab I e。首先,存儲起源圖名稱和對應 數據項。數據項就是起源所描述的數據,將一次工作流中的所有數據都對應一個起源圖,粗 粒度的描述起源與數據之間的關系。其次,存儲起源圖名稱與對應ID。每一次工作流的執(zhí)行 則會產生一個數據起源圖,起源ID則在存儲過程中依據Hash(key)映射產生。全局索引中起 源圖ID為一致性哈希索引算法的輸入項,根據起源ID可以快速計算出起源圖所存儲服務器 節(jié)點。
[0013] 2、基于全局索引的查詢流程
[0014]根據HCPTable中查詢起源圖ID從起源圖的根節(jié)點開始遍歷到葉子節(jié)點,根據葉子 節(jié)點得出起源圖存儲服務器。全局索引查詢流程如下:
[0015] (1)查找詞典表得到起源圖ID編號
[0016] (2)根據查詢需求來查找滿足要求的子節(jié)點
[0017] (3)計算輸出子節(jié)點編號
[0018] 基于位圖的局部索引及局部查詢算法
[0019] 為了提高查詢起源圖數據效率,考慮用戶查詢時的語句多樣性,彌補選擇索引Is、 Ip、Io在對單個Triple Pattern的查詢時的不足,對主語謂語已知的三元組設計索引Isp和 Ips,對謂語賓語已知的三元組設計索引Ipo和Ιορ,對主語賓語已知的三元組設計索引Iso 和Ios,形成完整的局部位圖索引結構,包括選擇索引Is、Ip、Io、Isp、Ipo、Iso和join索引 Is '、Io '、Iso '。
[0020] 局部索引支持對單個云存儲服務器節(jié)點上的起源圖數據的細化查詢。起源圖查詢 包含兩部分:單個Triple Pattern查詢和join查詢。
[0021 ] (1)單個Triple Pattern查詢
[0022] 選擇索引18、1?、1〇、1叩、1?〇、18〇對主語、謂語、賓語、主語謂語、謂語賓語、主語賓 語進行單個Triple Pattern的查詢。
[0023] (2)join 查詢
[0024] 選擇索引Is '、Io '、Iso '用于處理主語共享變量、賓語共享變量和主語賓語共享變 量進行join查詢。
【附圖說明】
[0025] 圖1為雙層索引結構;
[0026] 圖2為基于全局索引的起源查詢流程圖;
[0027]圖3為一致性二叉樹分布模型;
[0028] 圖4為RDF三元組join種類;
[0029]圖5為索引空間占用分析曲線圖;
[0030]圖6為查詢性能分析曲線圖。
【具體實施方式】
[0031] 下面結合具體實施例,進一步闡明本發(fā)明,應理解這些實施例僅用于說明本發(fā)明 而不用于限制本發(fā)明的范圍,在閱讀了本發(fā)明之后,本領域技術人員對本發(fā)明的各種等價 形式的修改均落于本申請所附權利要求所限定的范圍。
[0032] 基于雙層索引結構的起源圖查詢方法,首先,面向起源圖查詢,提出一種雙層索引 結構。其次,設計基于詞典表全局索引,表中記錄起源數據與數據之間匹配關系以及起源圖 ID,即能夠關聯(lián)起源與數據之間的關系,又能夠迅速定位到起源所存儲云服務器節(jié)點以減 少用戶查詢響應時間;然后,提出基于位圖局部索引,依據起源圖RDF查詢方式,提出了滿足 八種Triple Pattern查詢的索引和三種join查詢方式,并且基于索引設計了相應的查詢算 法。
[0033]面向起源圖查詢的雙層索引結構
[0034] 以往的分布式環(huán)境下存儲起源數據,查詢起源僅僅依賴master節(jié)點來分配任務進 行查找,通常需要遍歷整個集群,消耗大量的時間和資源。而現有分布式環(huán)境下起源存儲系 統(tǒng)基本都是基于主鍵來快速查詢,缺少高效的索引結構,不能提供多維查詢和join等查詢。 高效的索引結構能有效的提高查詢效率,縮短用戶查詢時的響應時間。
[0035] 索引結構包括基于詞典表全局索引和基于位圖局部索引。全局索引查詢起源圖所 存儲的服務器節(jié)點,局部索引對全局索引查詢到的服務器節(jié)點細化查詢,進而查詢到所需 的起源數據。全局索引分布在云環(huán)境下每一個節(jié)點上,當用戶請求到達時,只需參照本地服 務器的全局索引結構即能得出所要查詢起源圖所在節(jié)點位置。局部索引是只建立在本地服 務器所存儲的起源數據的索引,每一個節(jié)點之間的局部索引并沒有依賴關系。設計的雙層 索引結構具體如圖1所示。
[0036] 基于詞典表的全局索引及全局查詢算法
[0037] 首先給出詞典表結構設計,在此基礎上,完成基于全局索引的查詢流程。
[0038] 1、詞典表結構設計
[0039]根據數據起源特點,從兩方面設計詞典表HCPTab I e。首先,存儲起源圖名稱和對應 數據項。數據項就是起源所描述的數據,將一次工作流中的所有數據都對應一個起源圖,粗 粒度的描述起源與數據之間的關系。其次,存儲起源圖名稱與對應ID。每一次工作流的執(zhí)行 則會產生一個數據起源圖,起源ID則在存儲過程中依據Hash(key)映射產生。全局索引中起 源圖ID為一