蔡鑫,阮宜龍,石屹嶸
(1.中國電信股份有限公司上海研究院,上海200122;2.中國電信股份有限公司安徽分公司,安徽 合肥230001)
基于圖數(shù)據(jù)庫的IPTV內(nèi)容知識(shí)庫設(shè)計(jì)和實(shí)現(xiàn)
蔡鑫1,阮宜龍2,石屹嶸1
(1.中國電信股份有限公司上海研究院,上海200122;2.中國電信股份有限公司安徽分公司,安徽 合肥230001)
電信運(yùn)營商IPTV業(yè)務(wù)平臺(tái)擁有大量的節(jié)目內(nèi)容信息,可以建立IPTV內(nèi)容知識(shí)庫。傳統(tǒng)方式下使用關(guān)系數(shù)據(jù)庫對(duì)知識(shí)進(jìn)行格式轉(zhuǎn)換和存儲(chǔ),在模型結(jié)構(gòu)復(fù)雜性、查詢直觀性以及效率方面存在局限。利用圖數(shù)據(jù)庫技術(shù),可以基于全新的圖模型構(gòu)建IPTV內(nèi)容知識(shí)庫。通過研究比較,提出了基于圖數(shù)據(jù)庫的IPTV內(nèi)容知識(shí)庫存儲(chǔ)和查詢的思路和實(shí)現(xiàn)方法,并利用某電信公司實(shí)際數(shù)據(jù)進(jìn)行了場(chǎng)景驗(yàn)證。
圖數(shù)據(jù)庫;IPTV;知識(shí)庫
IPTV業(yè)務(wù)是運(yùn)營商轉(zhuǎn)型的重點(diǎn)業(yè)務(wù),在未來1~2年將迎來產(chǎn)品生命周期的快速大規(guī)模發(fā)展階段。而內(nèi)容是IPTV業(yè)務(wù)的靈魂,運(yùn)營商IPTV業(yè)務(wù)平臺(tái)中已經(jīng)沉淀并將繼續(xù)積累更多的內(nèi)容。IPTV平臺(tái)已經(jīng)含有一些節(jié)目內(nèi)容標(biāo)簽元數(shù)據(jù)。利用互聯(lián)網(wǎng)爬蟲技術(shù),可以在互聯(lián)網(wǎng)上爬取更多的內(nèi)容屬性,與平臺(tái)本身信息進(jìn)行融合,形成更豐富的IPTV內(nèi)容知識(shí)庫。該知識(shí)庫能夠?yàn)镮PTV產(chǎn)品包設(shè)計(jì)者以及IPTV最終用戶提供完備的節(jié)目內(nèi)容信息查詢服務(wù),提升其決策行為的有效性。IPTV內(nèi)容知識(shí)庫,需要具備支持靈活的元數(shù)據(jù)擴(kuò)展性,滿足海量結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)和復(fù)雜關(guān)聯(lián)查詢響應(yīng)時(shí)間的要求。本文嘗試采用與傳統(tǒng)關(guān)系型數(shù)據(jù)庫不同的全新的圖數(shù)據(jù)庫技術(shù),對(duì)IPTV內(nèi)容知識(shí)庫進(jìn)行創(chuàng)新設(shè)計(jì)和實(shí)現(xiàn),并驗(yàn)證其可行性。
圖數(shù)據(jù)庫是一種特殊的NoSQL數(shù)據(jù)庫,是將數(shù)據(jù)存儲(chǔ)在圖(graph)模型中。圖模型可看作是從key-value模型發(fā)展出來的一個(gè)分支,不同的是,它的數(shù)據(jù)之間有著廣泛的關(guān)聯(lián),形成一種圖結(jié)構(gòu),并且支持一些圖結(jié)構(gòu)的算法,適合社交網(wǎng)絡(luò)、推薦系統(tǒng)等[1]。
2.1 圖模型的存儲(chǔ)格式
語義網(wǎng)(semantic Web)是知識(shí)管理領(lǐng)域的重要分支,旨在建立一個(gè)數(shù)據(jù)標(biāo)準(zhǔn),使全球的Web數(shù)據(jù)以及數(shù)據(jù)與數(shù)據(jù)間的語義關(guān)聯(lián)關(guān)系能夠被計(jì)算機(jī)所理解,由W3C管理和維護(hù)。現(xiàn)已發(fā)布了數(shù)個(gè)語義萬維網(wǎng)格式標(biāo)準(zhǔn),其中重要的一項(xiàng)是基本資源描述框架 (resource description framework,RDF)。
RDF為描述圖像、文檔和二者之間的相互關(guān)系定義了一個(gè)簡單數(shù)據(jù)模型[2]。RDF的基本單元是由〈主語(subject),謂語(predicate),賓語(object)〉構(gòu)成的三元組(triple)。主謂賓的取值稱為資源(resource)。一組RDF數(shù)據(jù)可構(gòu)成一個(gè)RDF有向圖,其中每一個(gè)三元組對(duì)應(yīng)為圖結(jié)構(gòu)上的一個(gè)“頂點(diǎn)—邊—頂點(diǎn)”的子圖,陳述了由謂語表示的在主語和賓語所指的事物之間的關(guān)系。
基于RDF的基本思想,開源圖數(shù)據(jù)產(chǎn)品Neo4j采用一種進(jìn)化的屬性圖(property graph)模型實(shí)現(xiàn)圖模型的存儲(chǔ)。屬性圖建模使用3種構(gòu)造單元:節(jié)點(diǎn) (node)、關(guān)系(relationship)、屬性(property),節(jié)點(diǎn)即圖的頂點(diǎn),關(guān)系即圖的邊(具有方向和類型),屬性可以在節(jié)點(diǎn)和關(guān)系上面任意多地進(jìn)行定義。屬性圖模型如圖1所示。
圖1 屬性圖模型
對(duì)比屬性圖和RDF,可以看出:
·屬性圖的節(jié)點(diǎn)融合了RDF的主語和賓語;
·屬性圖的關(guān)系對(duì)應(yīng)RDF的謂語;
·屬性圖的節(jié)點(diǎn)和關(guān)系可擴(kuò)展任意多的屬性,具備NoSQL弱模型約束特征。
2.2 圖數(shù)據(jù)庫的檢索方法
圖數(shù)據(jù)庫提供強(qiáng)大的圖搜索能力。例如Neo4j通過專門為操作圖數(shù)據(jù)庫設(shè)計(jì)的Cypher語言高效地操作圖數(shù)據(jù)庫。圖數(shù)據(jù)庫的檢索方法包括遍歷檢索和索引檢索。
(1)圖的遍歷檢索
通過遍歷算法完成,根據(jù)算法從開始節(jié)點(diǎn)到與之相連的節(jié)點(diǎn)開始查詢。圖的遍歷算法包括以下兩種。
·深度優(yōu)先(depth first)搜索:就是找到第一個(gè)節(jié)點(diǎn),遞歸地一直往下找,直到找不到合適的節(jié)點(diǎn)后,才進(jìn)行回溯。
·廣度優(yōu)先(breadth first)搜索:是最簡便的圖搜索算法之一,這一算法也是很多重要的圖算法的原型,屬于一種盲目搜尋法,它不考慮結(jié)果的可能位置,徹底地搜索整張圖,直到找到結(jié)果為止。
(2)圖的索引檢索
通過建立索引,可以更快、更高效地查找某個(gè)節(jié)點(diǎn)或關(guān)系。索引可以分為兩類,基于節(jié)點(diǎn)的索引和基于關(guān)系的索引[3]。
3.1 傳統(tǒng)關(guān)系模型設(shè)計(jì)方式
IPTV平臺(tái)與互聯(lián)網(wǎng)爬蟲融合后的內(nèi)容(content)信息包括:title(內(nèi)容標(biāo)題),year(年份),label(電影/電視劇標(biāo)簽),star(主演),area(地區(qū)),director(導(dǎo)演),type(節(jié)目類型),writer(編?。?。
一個(gè)典型的內(nèi)容數(shù)據(jù)樣例見表1。
表1 IPTV內(nèi)容數(shù)據(jù)格式
每行代表一個(gè)節(jié)目內(nèi)容,其中互聯(lián)網(wǎng)爬取的屬性帶有非結(jié)構(gòu)化信息特征,例如:star、director、type、writer等。
在使用傳統(tǒng)關(guān)系建模時(shí),需要對(duì)這些非結(jié)構(gòu)化信息內(nèi)可以進(jìn)一步原子化的數(shù)據(jù)元素進(jìn)行解析和概念抽象,形成更具一般性的數(shù)據(jù)實(shí)體。本例中star、director、writer中“/”分割的數(shù)據(jù),可以抽象為人(person)實(shí)體。
接下來內(nèi)容與人的多對(duì)多關(guān)系,需要建立內(nèi)容與人關(guān)聯(lián)關(guān)系(content person relation)實(shí)體進(jìn)行抽象描述。可以根據(jù)人對(duì)于內(nèi)容的工種(type of work)差別,建立不同類型的聯(lián)系,即:飾演(act)、導(dǎo)演(direct)、編劇(write),這里還要考慮其他工種(美工、制片人等)信息的可擴(kuò)展性,需要建立單獨(dú)的工種實(shí)體。
另外,對(duì)于節(jié)目類型也需要抽象出專門的實(shí)體表達(dá),而內(nèi)容與節(jié)目類型之間,也是多對(duì)多的關(guān)聯(lián)關(guān)系,需要抽象出一個(gè)節(jié)目內(nèi)容與類型關(guān)聯(lián)關(guān)系 (content type relation)實(shí)體進(jìn)行表達(dá)。
整個(gè)關(guān)系模型的E-R如圖2所示。
圖2 IPTV內(nèi)容知識(shí)庫關(guān)系模型
3.2 圖模型設(shè)計(jì)方式
關(guān)系模型設(shè)計(jì)中,會(huì)使用一個(gè)實(shí)體(entity)(例如:節(jié)目內(nèi)容)來對(duì)一類事物進(jìn)行抽象,模型描述的是經(jīng)過抽象的實(shí)體以及實(shí)體和實(shí)體之間的關(guān)系,而并非具體的事物實(shí)例。
圖模型采用一種更為自然的方式來描述事物以及事物和事物之間的關(guān)系。在圖模型中,屬性圖的構(gòu)成要素——節(jié)點(diǎn),則恰恰是用來描述具體的事物實(shí)例(例如:電影《集結(jié)號(hào)》),而對(duì)于同一類事物的抽象則并非必須。盡管在圖數(shù)據(jù)庫中,也定義了用以表示一類節(jié)點(diǎn)集的概念——標(biāo)簽,但標(biāo)簽并不會(huì)像關(guān)系模型中的實(shí)體那樣,對(duì)節(jié)點(diǎn)的結(jié)構(gòu)模式(屬性構(gòu)成)進(jìn)行強(qiáng)制約束。被標(biāo)為同一標(biāo)簽的各節(jié)點(diǎn)所包含的數(shù)據(jù)屬性有可能不同。
本例中的人可能會(huì)有不同的職責(zé)分工,并由此通過不同的關(guān)系和其他節(jié)點(diǎn)關(guān)聯(lián)。例如一個(gè)人既可能是演員,可能是導(dǎo)演,也可能是演員兼導(dǎo)演。
在傳統(tǒng)關(guān)系模型中,可能需要為建立單獨(dú)的工種實(shí)體,并據(jù)此在內(nèi)容與人關(guān)聯(lián)關(guān)系實(shí)體中區(qū)分各類不同的職責(zé)分工。而在圖模型中,由于關(guān)系可以被無限靈活地定義,因此可以通過定義不同的關(guān)系對(duì)內(nèi)容和人進(jìn)行連接,表達(dá)所需要的不同業(yè)務(wù)概念。本例中一個(gè)局部的屬性圖模型如圖3所示。
圖3 IPTV內(nèi)容知識(shí)庫圖模型局部示例
3.3 圖模型的比較優(yōu)勢(shì)
從比較可以看出,傳統(tǒng)關(guān)系模型在描述實(shí)體之間的關(guān)系時(shí),需要?jiǎng)?chuàng)建一系列不同的關(guān)聯(lián)表,例如本例中的內(nèi)容與人關(guān)聯(lián)關(guān)系和節(jié)目內(nèi)容與類型關(guān)聯(lián)關(guān)系,以記錄這些數(shù)據(jù)之間的關(guān)聯(lián)關(guān)系,而且這些關(guān)聯(lián)表常常不包含除用于連接的外鍵之外的其他任何有意義的數(shù)據(jù),它只是關(guān)系模型為滿足三范式要求下的策略性的實(shí)現(xiàn)方式。
這些關(guān)系模型中存在的大量關(guān)聯(lián)表,對(duì)于文件樹這樣的遞歸結(jié)構(gòu)和社交圖譜這樣的網(wǎng)絡(luò)結(jié)構(gòu)等復(fù)雜查詢帶來嚴(yán)重的性能問題[4]。圖形關(guān)系上的每次操作都會(huì)導(dǎo)致關(guān)系型數(shù)據(jù)庫的一次代價(jià)昂貴的聯(lián)接(join)操作,這種操作以兩個(gè)表的主鍵集合間的集合操作來實(shí)現(xiàn),性能影響會(huì)隨著表中的元組數(shù)量增加和查詢的連接深度增加而愈加顯現(xiàn)。
與之相對(duì)的,圖模型原生支持關(guān)系,且圖模型中的關(guān)系可以進(jìn)行任意地定義,對(duì)所有不同的節(jié)點(diǎn)之間不同的連接含義有無限的包容性,甚至任何兩個(gè)關(guān)系都可以不一樣。因而,不再需要像關(guān)系模型那樣,為了連接不同類型實(shí)體而需要定義不同種類的關(guān)聯(lián),關(guān)系的維護(hù)變得異常簡單。
圖模型的設(shè)計(jì)原理,決定了圖遍歷執(zhí)行的速度是一個(gè)常數(shù),跟圖的規(guī)模大小無關(guān)。不像在關(guān)系數(shù)據(jù)庫的聯(lián)接操作那樣,不涉及降低性能的集合操作。對(duì)于大規(guī)模深度遍歷而言,極大地提高了性能。
4.1 IPTV內(nèi)容知識(shí)庫圖模型構(gòu)建
實(shí)際驗(yàn)證中,以某電信公司IPTV節(jié)目內(nèi)容作為測(cè)試數(shù)據(jù)樣本,以本文提及的開源圖數(shù)據(jù)庫產(chǎn)品Neo4j作為測(cè)試系統(tǒng)平臺(tái),開展相關(guān)測(cè)試。
由于圖模型的節(jié)點(diǎn)對(duì)應(yīng)的就是具體事物實(shí)例,因此大規(guī)模圖模型的構(gòu)建過程,就是實(shí)例數(shù)據(jù)的導(dǎo)入過程。主要步驟如下。
(1)CSV文件準(zhǔn)備
對(duì)表1格式的源數(shù)據(jù)中star、director、type、writer等非結(jié)構(gòu)化字段進(jìn)行解析,轉(zhuǎn)換為多個(gè)分別描述節(jié)點(diǎn)和關(guān)系的CSV文本文件,包括:節(jié)點(diǎn)數(shù)據(jù)集(content.csv、person.csv、type.csv)、關(guān)系數(shù)據(jù)集(content_actor.csv、content_director. csv、content_writer.csv、content_type.csv)。
(2)節(jié)點(diǎn)數(shù)據(jù)導(dǎo)入
以內(nèi)容標(biāo)簽的節(jié)點(diǎn)為例,需要執(zhí)行以下的語句完成數(shù)據(jù)導(dǎo)入。
(3)關(guān)系數(shù)據(jù)導(dǎo)入
以內(nèi)容和演員(actor)之間的關(guān)系為例,需要執(zhí)行以下的語句完成數(shù)據(jù)導(dǎo)入。
4.2 IPTV內(nèi)容知識(shí)庫圖檢索實(shí)際驗(yàn)證
場(chǎng)景驗(yàn)證將以電影《集結(jié)號(hào)》為起點(diǎn),展開與之相關(guān)聯(lián)的信息的查詢。實(shí)驗(yàn)將逐步增加連接深度,測(cè)試對(duì)檢索性能的影響。
第1個(gè)檢索將返回《集結(jié)號(hào)》的所有演職人員(演員、導(dǎo)演、編?。UZ句如下。
第2個(gè)檢索深入一層,將返回《集結(jié)號(hào)》的所有演職人員參與的所有其他電影。
第3個(gè)檢索再深入一層,將返回《集結(jié)號(hào)》的所有演職人員參與的所有其他電影的所有演職人員。
按照前面的邏輯繼續(xù),第4個(gè)檢索再深入一層。
第5個(gè)檢索更加深入一層。
圖檢索性能驗(yàn)證見表2。
表2 圖檢索性能驗(yàn)證
由實(shí)際驗(yàn)證結(jié)果可知,體現(xiàn)圖檢索性能的執(zhí)行速度(訪問節(jié)點(diǎn)規(guī)模/檢索執(zhí)行時(shí)間),即單位時(shí)間訪問的節(jié)點(diǎn)數(shù),并未因?yàn)闄z索連接深度以及所訪問節(jié)點(diǎn)數(shù)量的增加而出現(xiàn)顯著降低。與之相反,總體趨勢(shì)呈現(xiàn)不斷提升并逐漸收斂于一個(gè)穩(wěn)定值,符合(當(dāng)圖模型規(guī)模足夠大時(shí))圖遍歷執(zhí)行速度是一個(gè)常數(shù)的預(yù)期。
隨著知識(shí)管理領(lǐng)域相關(guān)理論研究的日益深入,基于圖模型的圖數(shù)據(jù)庫技術(shù)逐漸從實(shí)驗(yàn)室走向生產(chǎn)應(yīng)用。得益于設(shè)計(jì)理念上對(duì)于連接的原生支持能力,使得圖數(shù)據(jù)庫技術(shù)在欺詐檢測(cè)、基于圖的搜索、主數(shù)據(jù)管理、推薦引擎、社交網(wǎng)絡(luò)等具有復(fù)雜關(guān)系特征的場(chǎng)景中大有用武之地。但也應(yīng)該看到,當(dāng)前圖數(shù)據(jù)庫產(chǎn)品市場(chǎng)仍處于早期階段,有幾款相對(duì)成熟的商業(yè)型產(chǎn)品,如infinite graph、trinity等,但未得到大規(guī)模應(yīng)用。而Neo4j作為當(dāng)前比較成熟且較高性能的開源圖形數(shù)據(jù)庫,尚不支持分布式存儲(chǔ),難以應(yīng)對(duì)大數(shù)據(jù)環(huán)境下更加海量的圖模型存儲(chǔ)和檢索的需求。相信在未來的幾年,圖數(shù)據(jù)庫的產(chǎn)品成熟度將會(huì)進(jìn)入快速通道,會(huì)成為在數(shù)據(jù)平臺(tái)方面的重要選項(xiàng),有必要持續(xù)跟蹤和關(guān)注。
[1]項(xiàng)靈輝.基于圖數(shù)據(jù)庫的海量RDF數(shù)據(jù)分布式存儲(chǔ) [D].武漢:武漢科技大學(xué),2013. XIANG L H.Mass RDF data distributed storage based on graph database[D].Wuhan:Wuhan Science and Technology University, 2013.
[2]信息組織 [EB/OL].[2016-09-10].http://www.docin.com/p-440989969.html. Information organization [EB/OL].[2016-09-10].http://www. docin.com/p-440989969.html.
[3]康杰華,羅章璇.基于圖形數(shù)據(jù)庫Neo4j的RDF數(shù)據(jù)存儲(chǔ)研究[J].信息技術(shù),2015(6):115-117. KANG J H,LUO Z X.RDF data storage research based on graph database[J].Information Technology,2015(6):115-117.
[4]圖形數(shù)據(jù)庫、NoSQL和Neo4j[EB/OL].[2016-09-10].http:// www.infoq.com/cn/articles/graph-nosql-neo4j. Graph database,NoSQL&Neo4j[EB/OL].[2016-09-10].http:// www.infoq.com/cn/articles/graph-nosql-neo4j.
蔡鑫(1975-),男,中國電信股份有限公司上海研究院高級(jí)工程師,主要研究方向?yàn)閿?shù)據(jù)規(guī)劃、信息管理、數(shù)據(jù)標(biāo)準(zhǔn)。
阮宜龍(1977-),男,中國電信股份有限公司安徽分公司高級(jí)工程師,主要研究方向?yàn)閿?shù)據(jù)規(guī)劃、大數(shù)據(jù)平臺(tái)運(yùn)營管理。
石屹嶸(1970-),男,中國電信股份有限公司企業(yè)信息化驗(yàn)證實(shí)驗(yàn)室主任、高級(jí)工程師;中國電信股份有限公司上海研究院大數(shù)據(jù)專業(yè)資深專家,負(fù)責(zé)完成了中國電信股份有限公司集團(tuán)和省公司幾十項(xiàng)科研項(xiàng)目,包括企業(yè)信息化架構(gòu)設(shè)計(jì)和驗(yàn)證、信息系統(tǒng)性能評(píng)測(cè)和優(yōu)化、云計(jì)算和大數(shù)據(jù)關(guān)鍵技術(shù)驗(yàn)證等;中國電信股份有限公司集團(tuán)級(jí)優(yōu)秀人才。目前的研究方向主要為大數(shù)據(jù)平臺(tái)技術(shù)、大數(shù)據(jù)分析和模型設(shè)計(jì)、信息系統(tǒng)架構(gòu)設(shè)計(jì)、企業(yè)架構(gòu)設(shè)計(jì)、安全架構(gòu)設(shè)計(jì)等。獲得國家多項(xiàng)專利授權(quán),發(fā)表論文10多篇,并獲得CISSP和CISA等多項(xiàng)國際認(rèn)證。
Design and implement of IPTV content repository based on graph database
CAI Xin1,RUAN Yilong2,SHI Yirong1
1.Shanghai Research Institute of China Telecom Co.,Ltd.,Shanghai 200122,China 2.Anhui Brach of China Telecom Co.,Ltd.,Hefei 230001,China
Plenty of program content information in the telecom operators IPTV platform can be used to build knowledge base.The traditional way of using relational database to format conversion and storage of knowledge has limitation in the model structure complexity and query visualization and efficiency.Graph database can be used to construct IPTV content knowledge based on the basis of a new graph model.Through the research and comparison, the idea and method of storing and querying the IPTV content repository based on graph database were proposed, and the actual data of a telecom company was used for the scene verification.
graph database,IPTV,knowledge base
TP392
A
10.11959/j.issn.1000-0801.2016319
2016-11-10;
2016-12-14