• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      一種基于HBase的語(yǔ)義數(shù)據(jù)存儲(chǔ)模型

      2018-04-18 11:40:35翟社平李兆兆
      關(guān)鍵詞:三元組謂語(yǔ)賓語(yǔ)

      翟社平 高 山 郭 琳 李兆兆

      (西安郵電大學(xué)計(jì)算機(jī)學(xué)院 陜西 西安 710121)

      0 引 言

      語(yǔ)義Web核心思想[1]是通過(guò)語(yǔ)義信息的分享,實(shí)現(xiàn)網(wǎng)絡(luò)信息服務(wù)的智能化、自動(dòng)化,從而促使互聯(lián)網(wǎng)成為信息交換的通用媒介。

      隨著人工智能的發(fā)展和計(jì)算機(jī)應(yīng)用需求的不斷增強(qiáng),語(yǔ)義Web技術(shù)已經(jīng)深入到社會(huì)生活的各個(gè)領(lǐng)域,如輿情監(jiān)控、知識(shí)圖譜、穿戴計(jì)算、智能家居、智慧校園等。語(yǔ)義Web是萬(wàn)維網(wǎng)的一個(gè)擴(kuò)展,其影響范圍和應(yīng)用范圍在不斷地?cái)U(kuò)大,越來(lái)越多的研究者開(kāi)始高度關(guān)注和重視到語(yǔ)義Web技術(shù)的應(yīng)用。

      為了對(duì)Web資源及其屬性進(jìn)行規(guī)范化描述,W3C組織提出了一個(gè)Web資源之間語(yǔ)義關(guān)系的開(kāi)放元數(shù)據(jù)框架RDF[2]。RDF是語(yǔ)義Web建立的重要基礎(chǔ),通常以三元組(RDF Triple)數(shù)據(jù)模型(主語(yǔ)、謂語(yǔ)、賓語(yǔ))描述Web資源之間存在的特定關(guān)系。簡(jiǎn)單而言,一個(gè)RDF語(yǔ)句是由資源、屬性類(lèi)型、屬性值構(gòu)成的三元組?;谡Z(yǔ)義Web的RDF三元組標(biāo)簽可以構(gòu)造信息間邏輯推理關(guān)系的本體模型,進(jìn)而使人與機(jī)器間、機(jī)器與機(jī)器間的交流變得像人與人之間交流一樣輕松。

      隨著語(yǔ)義Web的迅猛發(fā)展,越來(lái)越多的互聯(lián)網(wǎng)數(shù)據(jù)以RDF的形式發(fā)布出來(lái)。自2007年第一代關(guān)聯(lián)數(shù)據(jù)發(fā)布至今,RDF數(shù)據(jù)增長(zhǎng)速度不斷加快。據(jù)關(guān)聯(lián)開(kāi)放數(shù)據(jù)LOD(Link Open Data)統(tǒng)計(jì),2012年關(guān)聯(lián)數(shù)據(jù)云中已經(jīng)包括295個(gè)數(shù)據(jù)集、316億個(gè)RDF三元組以及5.04億個(gè)RDF鏈接。截止2017年1月,關(guān)聯(lián)數(shù)據(jù)云中的數(shù)據(jù)集已經(jīng)達(dá)到1 146個(gè)[3],約是2012年的4倍。如此大規(guī)模的RDF數(shù)據(jù)就為語(yǔ)義Web技術(shù)的發(fā)展提出了新的挑戰(zhàn)。

      現(xiàn)在的互聯(lián)網(wǎng)正處在語(yǔ)義化蛻變過(guò)程中,智能化語(yǔ)義Web在理解人類(lèi)語(yǔ)言的基礎(chǔ)上逐漸實(shí)現(xiàn)了人機(jī)交互的網(wǎng)絡(luò)訪問(wèn)。如何高效地管理大規(guī)模RDF數(shù)據(jù)已經(jīng)成為推動(dòng)語(yǔ)義Web技術(shù)發(fā)展亟待解決的重要問(wèn)題。目前,RDF數(shù)據(jù)存儲(chǔ)需要解決以下兩個(gè)關(guān)鍵問(wèn)題:

      1) 如何建表才能在RDF數(shù)據(jù)存儲(chǔ)空間開(kāi)銷(xiāo)和查詢(xún)性能之間找到平衡點(diǎn);

      2) 如何建立簡(jiǎn)單、有效索引才能將RDF數(shù)據(jù)的查詢(xún)化繁為簡(jiǎn)。

      針對(duì)傳統(tǒng)的RDF數(shù)據(jù)存儲(chǔ)在大數(shù)據(jù)集下表現(xiàn)不盡人意的現(xiàn)狀,本文從用戶(hù)行為習(xí)慣的角度出發(fā),統(tǒng)計(jì)發(fā)現(xiàn)90%以上的查詢(xún)都包含被約束的謂語(yǔ)值。通過(guò)分析現(xiàn)有的存儲(chǔ)模式,充分結(jié)合語(yǔ)義數(shù)據(jù)查詢(xún)特征,本文提出了一種基于分布式數(shù)據(jù)庫(kù)HBase的RDF數(shù)據(jù)存儲(chǔ)模型。將RDF數(shù)據(jù)存儲(chǔ)到HBase表中以實(shí)現(xiàn)海量語(yǔ)義數(shù)據(jù)的分布式存儲(chǔ),并通過(guò)自定義的Bulk Loading數(shù)據(jù)加載方式完成數(shù)據(jù)上傳,進(jìn)而解決數(shù)據(jù)初始導(dǎo)入效率低的問(wèn)題,同時(shí)實(shí)現(xiàn)RDF數(shù)據(jù)的高效查詢(xún)。

      1 相關(guān)研究工作

      傳統(tǒng)集中式的RDF數(shù)據(jù)管理大都采用關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)RDBMS(Relational Database Management System)來(lái)存儲(chǔ)RDF數(shù)據(jù)。RDBMS是一個(gè)二維映射的集中式存儲(chǔ)數(shù)據(jù)庫(kù)系統(tǒng),表中每一列需預(yù)定義數(shù)據(jù)類(lèi)型和長(zhǎng)度,且表中的列數(shù)存在限制。目前基于關(guān)系型數(shù)據(jù)庫(kù)的語(yǔ)義數(shù)據(jù)存儲(chǔ)方案有三元組表存儲(chǔ)、垂直存儲(chǔ)、水平存儲(chǔ)和模式生成存儲(chǔ)等。

      三元組表存儲(chǔ)是最為簡(jiǎn)潔的一種RDF數(shù)據(jù)存儲(chǔ)方式,其核心思想是每條三元組對(duì)應(yīng)一條數(shù)據(jù)記錄。垂直存儲(chǔ)的核心思想是將同一謂語(yǔ)的三元組存到同一張表中,由于數(shù)據(jù)表本身已經(jīng)將RDF的謂語(yǔ)屬性值隱藏,因此數(shù)據(jù)表只保存主語(yǔ)和賓語(yǔ)兩列數(shù)據(jù)值。水平存儲(chǔ)的核心思想是將所有謂語(yǔ)作為列名存儲(chǔ)在一張表中,通過(guò)一張表即可存儲(chǔ)所有RDF數(shù)據(jù)。模式生成存儲(chǔ)的核心思想是根據(jù)空值分布對(duì)表做垂直和水平切分,混合切分后的數(shù)據(jù)表會(huì)在很大程度上減少表中存儲(chǔ)的空值數(shù)量。

      表1從優(yōu)勢(shì)、劣勢(shì)兩個(gè)方面對(duì)以上四種存儲(chǔ)方案進(jìn)行簡(jiǎn)單總結(jié)。

      表1 基于關(guān)系型數(shù)據(jù)庫(kù)的存儲(chǔ)方案總結(jié)

      面對(duì)RDF數(shù)據(jù)的急劇增長(zhǎng),傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)已無(wú)法高效地對(duì)其進(jìn)行管理,越來(lái)越多的研究者使用分布式系統(tǒng)和并行計(jì)算技術(shù)來(lái)管理大規(guī)模RDF數(shù)據(jù)。這類(lèi)系統(tǒng)采用傳統(tǒng)的分布式計(jì)算架構(gòu),并對(duì)RDF數(shù)據(jù)存儲(chǔ)和查詢(xún)進(jìn)行優(yōu)化。

      其中,研究者曾提出一個(gè)分布式RDF數(shù)據(jù)查詢(xún)框架SPARQL ENGINE[8],該系統(tǒng)架構(gòu)實(shí)現(xiàn)了大數(shù)據(jù)環(huán)境下RDF數(shù)據(jù)的分布式查詢(xún)機(jī)制。但是,該框架并沒(méi)有對(duì)RDF數(shù)據(jù)在分布式數(shù)據(jù)庫(kù)中的存儲(chǔ)策略進(jìn)行研究。Bigdata是另一種分布式存儲(chǔ)系統(tǒng),在存儲(chǔ)上,其采用分區(qū)存儲(chǔ),利用key-range劃分的B+樹(shù)索引來(lái)分布式訪問(wèn)集群資源,而且這種劃分是動(dòng)態(tài)進(jìn)行的[9]。但是該系統(tǒng)也存在著通信開(kāi)銷(xiāo)大、數(shù)據(jù)存取結(jié)構(gòu)和安全性難以控制的缺點(diǎn)。

      除此之外,在RDF數(shù)據(jù)存儲(chǔ)領(lǐng)域已經(jīng)有研究人員將RDF與Hadoop相結(jié)合,目前這方面的研究工作主要集中在Hadoop的存儲(chǔ)設(shè)計(jì)以及基于存儲(chǔ)模式的數(shù)據(jù)查詢(xún)處理上。Hadoop是Apache公司效仿Google云設(shè)計(jì)的開(kāi)源平臺(tái),其具有可擴(kuò)展、經(jīng)濟(jì)、高效、可靠等諸多優(yōu)點(diǎn),適合于對(duì)海量數(shù)據(jù)進(jìn)行存儲(chǔ)、搜索、挖掘和分析。研究學(xué)者提出了一種基于Hadoop的RDF數(shù)據(jù)編碼模型,詳細(xì)介紹了詞典構(gòu)建的方法,通過(guò)構(gòu)建好的數(shù)據(jù)詞典實(shí)現(xiàn)RDF三元組的編解碼操作,該方法在減少存儲(chǔ)容量占用的同時(shí)保證了數(shù)據(jù)的安全性[10]。但是,該存儲(chǔ)模型仍然采用S_PO、P_OS、O_SP、PS_O、SO_P和PO_S六張索引表進(jìn)行存儲(chǔ),在數(shù)據(jù)存儲(chǔ)設(shè)計(jì)方面并沒(méi)有給出存儲(chǔ)模式的優(yōu)化方案。

      2 基于HBase的RDF數(shù)據(jù)存儲(chǔ)

      2.1 存儲(chǔ)分析

      HBase是一個(gè)高可靠性、高性能、列存儲(chǔ)、可伸縮、支持實(shí)時(shí)讀寫(xiě)的數(shù)據(jù)庫(kù)系統(tǒng),底層的Hadoop分布式文件系統(tǒng)HDFS(Hadoop Distributed File System)具有高容錯(cuò)性且可以被部署在低價(jià)的硬件設(shè)備之上[11]。HBase是一個(gè)多維映射的數(shù)據(jù)存儲(chǔ)表,其數(shù)據(jù)存儲(chǔ)模型為Key-Value類(lèi)型:

      (Row-Key,Column Family,Timestamp)->Value

      Row-Key為表中唯一的行標(biāo)識(shí),動(dòng)態(tài)擴(kuò)展的多個(gè)列合并為一個(gè)列族(Column Family),時(shí)間戳用來(lái)區(qū)分所存數(shù)據(jù)的不同版本,進(jìn)而唯一確定數(shù)據(jù)單元值Value。

      表2描述了百度網(wǎng)站分頻道(百科、文庫(kù)、貼吧等)關(guān)系數(shù)據(jù)在HBase表中的S_PO存儲(chǔ)結(jié)構(gòu)。該表以主語(yǔ)www.baidu.com為Row-key,謂語(yǔ)Anchor:channel對(duì)應(yīng)三個(gè)賓語(yǔ)值,Timestamp表示時(shí)間戳。

      表2 表S_PO在HBase中的存儲(chǔ)結(jié)構(gòu)

      基于HBase的數(shù)據(jù)存儲(chǔ)方案不對(duì)空值做存放操作,邏輯上為空的單元值并不占用實(shí)際的存儲(chǔ)空間,所以HBase的稀疏特性非常適合存儲(chǔ)RDF數(shù)據(jù)。

      將RDF三元組<主語(yǔ)(Subject)、謂語(yǔ)(Predicate)、賓語(yǔ)(Object)>中不同的元素和元素組合作為Row-Key索引,需要設(shè)計(jì)S_PO、P_OS、O_SP、PS_O、SO_P和PO_S六張HBase索引表來(lái)對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ)。實(shí)際上,S_PO、P_OS、O_SP三種數(shù)據(jù)屬性排列方式足以能夠?yàn)樗械娜M查詢(xún)模式提供索引服務(wù)。S_PO、P_OS、O_SP分別表示以S、P、O為Row-Key,其查詢(xún)組合對(duì)應(yīng)的索引如表3所示。

      表3 查詢(xún)組合索引表

      注:“?”表示在三元組的位置存在一個(gè)未知值,“--”表示該值被約束(即,固定)

      2.2 存儲(chǔ)改進(jìn)策略

      RDF數(shù)據(jù)存儲(chǔ)模型的目標(biāo)是高效地執(zhí)行各種查詢(xún)操作,現(xiàn)有的RDF存儲(chǔ)系統(tǒng)為了實(shí)現(xiàn)這一目標(biāo)大都從數(shù)據(jù)源本身出發(fā),對(duì)如何合理地拆分三元組數(shù)據(jù)集進(jìn)行研究。但是,從數(shù)據(jù)查詢(xún)的角度來(lái)講,已有的存儲(chǔ)方式忽略了用戶(hù)查詢(xún)習(xí)慣本身所帶來(lái)的應(yīng)用價(jià)值。

      本文通過(guò)對(duì)里海大學(xué)基準(zhǔn)LUBM(Lehigh University Benchmark)測(cè)試基準(zhǔn)中的查詢(xún)記錄進(jìn)行統(tǒng)計(jì)分析,發(fā)現(xiàn)SP?、?PO、?P?三種約束謂語(yǔ)的查詢(xún)模式最符合日常查詢(xún)習(xí)慣,其查詢(xún)請(qǐng)求數(shù)量約占查詢(xún)總數(shù)的90%。由此可見(jiàn),謂語(yǔ)在大多數(shù)情況下是作為約束對(duì)象出現(xiàn)在查詢(xún)語(yǔ)句中。但是在實(shí)際的RDF數(shù)據(jù)集中,謂語(yǔ)的數(shù)量通常在數(shù)十至數(shù)百范圍內(nèi),遠(yuǎn)遠(yuǎn)少于主語(yǔ)和賓語(yǔ)數(shù)量,因此當(dāng)謂語(yǔ)作為行鍵索引(Row-Key)時(shí)會(huì)使系統(tǒng)負(fù)載增大,查詢(xún)效率降低。

      為了適應(yīng)謂語(yǔ)在查詢(xún)中出現(xiàn)的高頻特性,本文在S_PO、O_SP索引表不做處理的基礎(chǔ)上,對(duì)P_OS索引表給出改進(jìn)策略。將基于謂語(yǔ)索引的存儲(chǔ)表細(xì)分為P_OS、P_SO兩大類(lèi),實(shí)現(xiàn)謂語(yǔ)約束下主語(yǔ)或賓語(yǔ)查詢(xún)的兩種不同組合。具體實(shí)現(xiàn)形式表示如下:

      P_OS:

      Row Key:Predicate URI{

      Column Family:Object{

      Column:(Subject)

      }

      }

      P_SO:

      Row Key:Predicate URI{

      Column Family: Subject {

      Column:(Object)

      }

      }

      2.3 模型設(shè)計(jì)

      本文設(shè)計(jì)如圖1所示的RDF三元組數(shù)據(jù)存儲(chǔ)模型,該模型在S_PO和O_SP索引表不做修改的基礎(chǔ)上對(duì)P_OS索引表進(jìn)行改進(jìn)。每條謂語(yǔ)分別對(duì)應(yīng)P_OS、P_SO兩類(lèi)索引表,將每一謂語(yǔ)值作為熱數(shù)據(jù)進(jìn)行索引存儲(chǔ)。完成以謂語(yǔ)為索引的RDF數(shù)據(jù)存儲(chǔ)模型后,謂語(yǔ)確定的RDF數(shù)據(jù)查詢(xún)會(huì)變得十分高效。由于謂語(yǔ)在整個(gè)RDF數(shù)據(jù)集中數(shù)量級(jí)極小,所以以謂語(yǔ)為索引的RDF數(shù)據(jù)存儲(chǔ)表可以快速鎖定數(shù)據(jù),再加上原有S_PO和O_SP的RDF數(shù)據(jù)存儲(chǔ)模型,整個(gè)存儲(chǔ)系統(tǒng)就會(huì)變得很完善。從用戶(hù)查詢(xún)的角度講,也能滿(mǎn)足絕大多數(shù)數(shù)據(jù)的高效查詢(xún)。

      圖1 RDF三元組存儲(chǔ)模型

      以謂語(yǔ)為索引的RDF數(shù)據(jù)存儲(chǔ)模型旨在優(yōu)化以謂語(yǔ)為約束條件的RDF數(shù)據(jù)查詢(xún)。對(duì)照表3所示的查詢(xún)組合索引,該存儲(chǔ)模型針對(duì)不同查詢(xún)索引做出改進(jìn),具體方案如下:

      1) 為每種查詢(xún)組合指定唯一確定的索引表;

      2) 針對(duì)SP?高頻查詢(xún)組合,將優(yōu)化前的S_PO索引表替換為P_SO索引表。

      該存儲(chǔ)模型充分考慮RDF三元組合的謂語(yǔ)特征,在實(shí)現(xiàn)系統(tǒng)負(fù)載均衡的同時(shí)能夠提升數(shù)據(jù)的查詢(xún)效率。表4介紹了改進(jìn)后的RDF數(shù)據(jù)查詢(xún)索引情況。

      表4 查詢(xún)索引表(改進(jìn)后)

      2.4 查找索引算法

      查找索引算法的目標(biāo)是找出與查詢(xún)請(qǐng)求相對(duì)應(yīng)的索引類(lèi)型。結(jié)合表4的查詢(xún)組合索引,給出該存儲(chǔ)模型的查詢(xún)索引算法,如算法1所示。

      算法1查詢(xún)索引

      輸入:查詢(xún)語(yǔ)句

      輸出:索引類(lèi)型

      開(kāi)始

      //若謂語(yǔ)被約束

      if(predicate is constrained)

      {

      //且主語(yǔ)被約束

      if (subject is constrained)

      return P_SO

      else

      return P_OS

      }

      else

      {

      //賓語(yǔ)被約束

      if (object is constrained)

      return O_SP

      else

      return S_PO

      }

      結(jié)束

      該算法給出了查詢(xún)索引的詳細(xì)過(guò)程。根據(jù)查詢(xún)語(yǔ)句做出判斷,若謂語(yǔ)被約束,可以通過(guò)判斷主語(yǔ)是否被約束來(lái)確定相對(duì)應(yīng)的索引類(lèi)型;反之,可以通過(guò)判斷賓語(yǔ)是否被約束來(lái)確定相對(duì)應(yīng)的索引類(lèi)型。該算法的核心思想是根據(jù)用戶(hù)查詢(xún)請(qǐng)求模型,優(yōu)先匹配被約束的元素,進(jìn)而快速?zèng)Q定使用何種對(duì)應(yīng)索引。

      2.5 Bulk Loading數(shù)據(jù)加載

      完成數(shù)據(jù)存儲(chǔ)模型的設(shè)計(jì)后,接下來(lái)就要實(shí)現(xiàn)將RDF數(shù)據(jù)按照S_PO,P_SO,P_OS,O_SP模型加載到HBase中。HBase數(shù)據(jù)加載有兩種通用方法:一是通過(guò)MapReduce調(diào)用TableOutpu-tFormat;二是在client上調(diào)用API寫(xiě)入數(shù)據(jù)。但是這兩種方式都需要頻繁地通過(guò)遠(yuǎn)程過(guò)程調(diào)用協(xié)議RPC(Remote Procedure Call Protocol)方式與HRegion服務(wù)器進(jìn)行通信,當(dāng)一次性寫(xiě)入大量數(shù)據(jù)時(shí)會(huì)造成額外的資源開(kāi)銷(xiāo)。針對(duì)海量語(yǔ)義數(shù)據(jù)的存儲(chǔ),這兩種方式顯然不是最有效的。

      HBase可通過(guò)自帶的用戶(hù)自定義程序向HBase中加載數(shù)據(jù)。針對(duì)改進(jìn)后的數(shù)據(jù)存儲(chǔ)模型,本文在HBase自帶數(shù)據(jù)加載方法的基礎(chǔ)上,自定義了Bulk Loading數(shù)據(jù)加載程序。數(shù)據(jù)加載具體步驟如下:

      1) HDFS不適合存放大量小文件,所以要先把RDF數(shù)據(jù)處理成為與S_PO,P_SO,P_OS,O_SP模型對(duì)應(yīng)的結(jié)構(gòu)。

      2) 在Hadoop的分布式文件系統(tǒng)HDFS上為RDF數(shù)據(jù)創(chuàng)建一個(gè)專(zhuān)門(mén)的存儲(chǔ)目錄,然后調(diào)用Hadoop的Put接口進(jìn)一步將數(shù)據(jù)導(dǎo)入到HDFS分布式文件系統(tǒng)的RDF數(shù)據(jù)存儲(chǔ)目錄下。

      3) 在HBase中建立空的S_PO,P_SO,P_OS,O_SP表結(jié)構(gòu),并指定它們的列族。

      4) 執(zhí)行一個(gè)MapReduce任務(wù),并行加載RDF數(shù)據(jù)到HBase,任務(wù)的輸入是存放RDF數(shù)據(jù)的文件,輸出是HBase文件。

      5) 查看HBase中對(duì)應(yīng)的表結(jié)構(gòu)下是否存入了RDF數(shù)據(jù)。

      對(duì)Bulk Loading數(shù)據(jù)加載核心部分的代碼進(jìn)行描述(向新增的P_SO表加載數(shù)據(jù)):

      Method Map(Text value, Context context)

      String[]textStrSplit=text.toString().split(″ ″);

      //將謂語(yǔ)作為Row key

      String hkey=textStrSplit[1];

      String column=textStrSplit[0];

      String hvalue=textStrSplit[2];

      rowKey=Bytes.toBytes(hkey);

      //謂語(yǔ)值存在

      while(hkey==ture)

      //創(chuàng)建Put對(duì)象用于存放Put實(shí)例

      Put HPut=new Put(rowKey);

      byte[ ] cell=Bytes.toBytes(hvalue);

      //向Put對(duì)象中添加單元數(shù)據(jù)

      HPut.add(Bytes.toBytes(column), cell);

      context.write(HKey, HPut);

      該數(shù)據(jù)加載算法主要包括數(shù)據(jù)分割、加載三元組和寫(xiě)入數(shù)據(jù)三部分?;谥^語(yǔ)的數(shù)據(jù)索引,需要將數(shù)據(jù)按照P_SO和P_OS模式分別完成加載。同時(shí),對(duì)每一謂語(yǔ)值是否為空預(yù)先做出判斷,若謂語(yǔ)值不存在,則不將該記錄存入以謂語(yǔ)為索引的存儲(chǔ)表中;反之,直接將數(shù)據(jù)寫(xiě)入對(duì)應(yīng)的數(shù)據(jù)索引表中。S_PO和O_SP存儲(chǔ)表本文不做詳細(xì)說(shuō)明。

      3 系統(tǒng)測(cè)試與分析

      3.1 實(shí)驗(yàn)環(huán)境

      實(shí)驗(yàn)搭建了具有5個(gè)節(jié)點(diǎn)的Hadoop集群,每個(gè)節(jié)點(diǎn)硬件配置如表5所示。存儲(chǔ)結(jié)構(gòu)設(shè)計(jì)是將RDF數(shù)據(jù)存儲(chǔ)在HBase集群中,HBase構(gòu)建在HDFS之上,HRegionServer(域服務(wù)器)作為HBase的集群節(jié)點(diǎn)維護(hù)存儲(chǔ)RDF數(shù)據(jù)的域(region),RDF數(shù)據(jù)均衡分布在集群各節(jié)點(diǎn)中。實(shí)驗(yàn)采用LUBM測(cè)試集進(jìn)行測(cè)試,LUBM[12]是當(dāng)前使用最廣泛的測(cè)試樣例,該測(cè)試集可以根據(jù)指定的參數(shù)生成相應(yīng)規(guī)模的數(shù)據(jù)集。例如LUMB(10),參數(shù)10表示生成具有10個(gè)大學(xué)的語(yǔ)義數(shù)據(jù)集,其中指定參數(shù)越大數(shù)據(jù)集規(guī)模越大。

      表5 硬件配置

      3.2 實(shí)驗(yàn)結(jié)果分析

      實(shí)驗(yàn)采用UBA[13](數(shù)據(jù)發(fā)生器)生成三組不同大小的RDF數(shù)據(jù)集進(jìn)行測(cè)試,數(shù)據(jù)集大小如表6所示。

      表6 測(cè)試數(shù)據(jù)集

      數(shù)據(jù)加載性能是評(píng)價(jià)該存儲(chǔ)模型的一個(gè)重要指標(biāo),本文基于MapReduce編程模型實(shí)現(xiàn)了大規(guī)模RDF數(shù)據(jù)的并行加載功能。表7給出了串行加載算法和MapReduce并行加載算法加載三組不同規(guī)模RDF數(shù)據(jù)所需的時(shí)間。

      表7 數(shù)據(jù)加載消耗時(shí)間

      實(shí)驗(yàn)加速比可由式(1)得出:

      (1)

      式中:T(1)表示串行加載運(yùn)行時(shí)間,T(N)表示并行加載運(yùn)行時(shí)間。

      由表7可以看出,對(duì)比串行方法,Bulk loading并行數(shù)據(jù)加載算法在數(shù)據(jù)規(guī)模較小時(shí)優(yōu)勢(shì)并不明顯,原因是當(dāng)數(shù)據(jù)規(guī)模小時(shí)Map任務(wù)個(gè)數(shù)也較少,不能有效利用MapReduce的并行機(jī)制。隨著數(shù)據(jù)規(guī)模的增大,實(shí)驗(yàn)表明該加載算法能夠高效地完成海量RDF三元組數(shù)據(jù)的加載操作。

      本文數(shù)據(jù)查詢(xún)測(cè)試主要目的是驗(yàn)證謂語(yǔ)索引表P_SO的高效性,設(shè)計(jì)謂語(yǔ)綁定,主語(yǔ)已知,賓語(yǔ)未知的查詢(xún)用例:

      SELECT ?Y

      WHERE

      {

      ub:subOrganizationOf ?Y

      }

      將該查詢(xún)用例分別在S_PO和P_SO存儲(chǔ)模式上進(jìn)行測(cè)試,三組不同規(guī)模RDF數(shù)據(jù)所需的查詢(xún)的響應(yīng)時(shí)間如表8和圖2所示。

      表8 SP?查詢(xún)響應(yīng)時(shí)間

      圖2 SP?查詢(xún)響應(yīng)時(shí)間

      由統(tǒng)計(jì)分析得出,基于謂語(yǔ)約束的查詢(xún)請(qǐng)求數(shù)量約占整個(gè)系統(tǒng)查詢(xún)總數(shù)的90%。改進(jìn)后整個(gè)系統(tǒng)的查詢(xún)加速比(表8)可由Amdahl定律得出:

      (2)

      本實(shí)驗(yàn)Fe=0.9,F(xiàn)e是執(zhí)行某個(gè)任務(wù)的總時(shí)間中可被改進(jìn)部分的時(shí)間所占的百分比,Se是改進(jìn)部分采用改進(jìn)措施后比沒(méi)有采用改進(jìn)措施前性能提高倍數(shù)。

      對(duì)比優(yōu)化前的S_PO查詢(xún)索引,P_SO在查詢(xún)時(shí)能夠快速確定Row-Key范圍,原因是數(shù)據(jù)源本身具有謂語(yǔ)數(shù)量級(jí)小的特點(diǎn),根據(jù)Row-Key檢索所有包含謂語(yǔ)P的三元組,然后根據(jù)主語(yǔ)S進(jìn)行過(guò)濾操作,最終得出查詢(xún)結(jié)果。隨著數(shù)據(jù)規(guī)模的增長(zhǎng),謂語(yǔ)P確定的Row-Key范圍也逐漸變大,因此查詢(xún)時(shí)間遞增。同時(shí),MapReduce并行機(jī)制進(jìn)一步提升查詢(xún)效率,查詢(xún)加速比逐漸增大。

      4 結(jié) 語(yǔ)

      針對(duì)海量語(yǔ)義數(shù)據(jù)的管理問(wèn)題,本文提出了一種基于分布式數(shù)據(jù)庫(kù)HBase的RDF數(shù)據(jù)存儲(chǔ)模型。相較于傳統(tǒng)的三元組存儲(chǔ)方法,該模型可以直接根據(jù)謂語(yǔ)的索引更加快速地查詢(xún)到相應(yīng)的關(guān)聯(lián)數(shù)據(jù)值。在保證查詢(xún)性能的同時(shí)有效地減少了存儲(chǔ)開(kāi)銷(xiāo),為實(shí)現(xiàn)大規(guī)模語(yǔ)義數(shù)據(jù)的高效查詢(xún)和推理奠定了理論和應(yīng)用基礎(chǔ)。

      本文在RDF數(shù)據(jù)的查詢(xún)處理問(wèn)題上沒(méi)有做針對(duì)性的研究,接下來(lái)的工作是要對(duì)該模型上的查詢(xún)算法進(jìn)行優(yōu)化,進(jìn)一步提升數(shù)據(jù)的查詢(xún)效率。

      [1] 常亮,劉進(jìn),古天龍,等.基于動(dòng)態(tài)描述邏輯的語(yǔ)義Web服務(wù)組合[J].計(jì)算機(jī)學(xué)報(bào),2013,36(12):2468-2478.

      [2] 杜方,陳躍國(guó),杜小勇.RDF數(shù)據(jù)查詢(xún)處理技術(shù)綜述[J].軟件學(xué)報(bào),2013(06):1222-1242.

      [3] Bizer C,Jentzsch A,Cyganiak R.State of the LOD Cloud[EB/OL].http://lod-cloud.net/.

      [4] Kaoudi Z,Manolescu I.RDF in the clouds:a survey[J].Vldb Journal,2015,24(1):67-91.

      [5] Harris S,Lamb N,Shadbolt N,et al.4store:The design and implementation of a clustered rdf store[J].Scalable Semantic Web Knowledge Base Systems,2009,4:94-109.

      [6] 杜小勇,王琰,呂彬.語(yǔ)義Web數(shù)據(jù)管理研究進(jìn)展[J].軟件學(xué)報(bào),2009,20(11):2950-2964.

      [7] Zhou Q,Hall W,Roure D D.Building a Distributed Infrastructure for Scalable Triple Stores[J].Journal of Computer Science & Technology,2009,24(3):447-462.

      [8] Rajapoornima M,Tamilselvan L,Priyadarshini R.Personalized semantic retrieval of information from large scale blog data[C]//IEEE International Conference on Recent Trends in Electronics,Information & Communication Technology.IEEE,2017:1055-1059.

      [9] Owens A,Seaborne A,Gibbins N,et al.Clustered TDB:A Clustered Triple store for Jena[C]//Proceedings of 18th Internation Conference on World Wide Web,2009.

      [10] Abiri F,Kahani M,Zarinkalam F.An entity based RDF indexing schema using Hadoop and HBase[C]//International Econference on Computer and Knowledge Engineering.IEEE,2014:68-73.

      [11] 徐德智,劉揚(yáng),Sarfraz Ahmed.基于Hadoop的RDF數(shù)據(jù)存儲(chǔ)及查詢(xún)優(yōu)化[J].計(jì)算機(jī)應(yīng)用研究,2017,34(2):477-480,486.

      [12] Guo Y,Pan Z,Heflin J.LUBM:A benchmark for OWL knowledge base systems[J].Web Semantics Science Services & Agents on the World Wide Web,2005,3(2-3):158-182.

      [13] Helflin J,Stuckenschmidt H.Editorial:Web-scale semantic information preprocess[J].Web Semantic:Science,Services and Agents on the World Wide Web,2012(10):121-132.

      猜你喜歡
      三元組謂語(yǔ)賓語(yǔ)
      基于帶噪聲數(shù)據(jù)集的強(qiáng)魯棒性隱含三元組質(zhì)檢算法*
      非謂語(yǔ)動(dòng)詞
      連詞that引導(dǎo)的賓語(yǔ)從句
      特征標(biāo)三元組的本原誘導(dǎo)子
      非謂語(yǔ)動(dòng)詞
      賓語(yǔ)從句及練習(xí)
      關(guān)于余撓三元組的periodic-模
      中考試題中的賓語(yǔ)從句
      非謂語(yǔ)動(dòng)詞題不難答 石娟
      非謂語(yǔ)動(dòng)詞
      玛曲县| 镶黄旗| 昌江| 屯门区| 娄底市| 马尔康县| 涟水县| 延川县| 全椒县| 林西县| 瑞金市| 额济纳旗| 丽水市| 梁平县| 玛纳斯县| 武平县| 五家渠市| 辽源市| 察雅县| 襄樊市| 永修县| 名山县| 广宗县| 宣恩县| 海伦市| 同心县| 平乐县| 陵川县| 博兴县| 织金县| 且末县| 永善县| 星子县| 图木舒克市| 新田县| 搜索| 应用必备| 高要市| 灵武市| 华亭县| 嘉荫县|