公司舊電腦到期,換了一臺電腦的原因之前爬取的數(shù)據(jù)全部忘了備份,全部弄丟了。所以這個項目好久沒開工了。
本文需要進一步研究知識圖譜的數(shù)據(jù)存儲。由于知識圖譜的圖結(jié)構(gòu)特點,使用傳統(tǒng)的關(guān)系型數(shù)據(jù)庫存儲大量的關(guān)系表,在做查詢的時候需要大量的表連接,速度非常慢,所以往往知識圖譜采用的是圖數(shù)據(jù)庫。
一、圖數(shù)據(jù)庫和關(guān)系型數(shù)據(jù)庫的差別
還是以NBA里的數(shù)據(jù)為例,為了表示球員和球隊的效力關(guān)系,關(guān)系型數(shù)據(jù)庫需要增加一張球員和球隊關(guān)系表來存儲這個關(guān)系。如下圖:
而圖數(shù)據(jù)庫通過引入“效力于”關(guān)系邊的概念來加以解決。不需要建表,關(guān)系邊上可以存儲屬性,比如效力時間這一字段。
工作中我們團隊的知識圖譜是存儲在阿里自研的圖數(shù)據(jù)庫上,鑒于數(shù)據(jù)安全問題,在這個項目里我采用了比較流行的neo4j圖數(shù)據(jù)庫。
二、Neo4J的使用
neo4j的使用,主要參考了官方文檔https://neo4j.com/docs/developer-manual/current/drivers/client-applications/。Neo4J設(shè)計了一種叫做Cypher的查詢語言,語法非常奇怪。官方提供的一個二跳的查詢例子,查詢John的朋友的朋友:
2rows
我嘗試創(chuàng)建了一個NBA的DB,用create語句創(chuàng)建了NBA火箭隊、保羅和哈登三個實體。創(chuàng)建語句如下
創(chuàng)建了2個球員實體,包括了身高/體重/生日/合同情況,創(chuàng)建了一個球隊實體,包括了球館、城市等信息,創(chuàng)建了兩條球員和球隊的關(guān)系邊,每條邊上定義球員在該球隊效力時間??梢暬Y(jié)果如下圖:
OK,至此一個小的知識圖譜就在圖數(shù)據(jù)庫里被創(chuàng)建完畢了,后續(xù)要做的是把大規(guī)模數(shù)據(jù)導(dǎo)入圖數(shù)據(jù)庫
-
數(shù)據(jù)存儲
+關(guān)注
關(guān)注
5文章
971瀏覽量
50908 -
數(shù)據(jù)庫
+關(guān)注
關(guān)注
7文章
3799瀏覽量
64388 -
知識圖譜
+關(guān)注
關(guān)注
2文章
132瀏覽量
7707
原文標題:干貨篇 || PCB設(shè)計中眼圖到底有什么用?
文章出處:【微信號:FANYPCB,微信公眾號:凡億PCB】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論