TigerGraph圖形化界面GraphStudio簡單操作

創建圖模型

圖模型由若干節點類型(vertex type)和若干邊類型(edge type)組成。可以指定邊類型的源節點類型(source vertex type)和目標節點類型(target vertex type)。圖模型是對現實世界的問題的一種直觀的抽象。
我們很容易建立電影推薦問題的模型,模型中有兩種節點類型:人(person)和電影(movie),以及一種邊類型:打分(rate)。rate的源節點類型爲person,目標節點類型爲movie。
我們使用GUI集成開發工具GraphStudio創建圖模型。打開瀏覽器,在地址欄輸入安裝TigerGraph機器的IP+14240端口訪問GraphStudio,載入完成後點擊左側導航欄的Design Schema項進入創建圖模型頁面:
創建圖模型(Design Schema)頁面

單擊下圖中黃色箭頭所指的工具欄中的按鈕即可添加節點類型,在彈出的窗口中設置節點類型名稱、主鍵(primary id)名稱和類型、屬性(attribute)名稱和類型,並根據語義選擇節點類型的顏色和圖標。我們首先添加person節點類型:
在這裏插入圖片描述

然後添加movie節點類型:
在這裏插入圖片描述

添加完畢後可以通過鼠標拖動調整節點類型的位置:
在這裏插入圖片描述

單擊下圖第一步中黃色箭頭所指的工具欄中的按鈕進入添加邊類型模式,然後如第二步點擊源節點類型,然後如第三步點擊目標節點類型。
在這裏插入圖片描述

在彈出的窗口中設置邊類型名稱、邊類型的有向性(directed)、屬性(attribute)名稱和類型,並可以選擇邊類型的顏色。我們輸入rate邊類型的信息:
在這裏插入圖片描述

至此,我們完成了圖模型的創建。可以用鼠標滾輪縮放圖模型,也可以用鼠標按住工作面板的空白處拖動整個圖模型。點擊工具欄中的發佈按鈕將圖模型發佈到TigerGraph系統中。整個發佈大概需要2分鐘。
在這裏插入圖片描述

創建數據映射

數據映射(data mapping)指建立數據模型之間的元素的對應關係。在電影推薦的這個實例中,我們需要建立從csv文件代表的數據模型到圖模型之間的對應關係。
這裏需要弄清楚模型和元素之間的關係,這種關係類似於面向對象程序設計中類(class)與實例(instance)之間的關係。我們剛剛創建的圖模型描述了這些類之間的關係,而我們接下來要向圖中載入的數據(元素)則是具體的每一個人、每一部電影和每條某人對某電影的打分。
在由movies.csv文件和ratings.csv文件組成的模型中,文件表頭的語義代表了該模型的結構。movies.csv文件除表頭以外的每行數據代表了一個電影元素,我們需要將它映射到圖模型中的電影元素。ratings.csv文件除表頭以外的每行數據包含了一個(可能重複出現的)人元素和一個打分元素,我們需要將它映射到圖模型的人元素和打分元素。
點擊左側導航欄的Map Data To Graph項進入創建數據映射頁面:
在這裏插入圖片描述

我們需要將數據文件上傳到TigerGraph後臺。這裏有兩種方式:對於小於500MB的文件,可以直接通過GUI上傳。點擊下圖中黃色箭頭1所指的工具欄添加數據源按鈕,在彈出的窗口中點擊黃色箭頭2所指的上傳文件按鈕,選擇本機解壓縮後的ml-20m數據集中的movies.csv文件上傳。上傳完成後在文件列表中會顯示該文件:
在這裏插入圖片描述

然後我們將該數據源添加到工作面板上。在Files on server列表中點擊movies.csv文件,GraphStudio後臺用算法智能分析數據並推斷出文件的分隔符(delimiter)、換行符(end of line)和是否有表頭(has header)。GraphStudio的這個推斷是盡力而爲的,如果不準確,用戶可以自由修改這些設置,文件會馬上被重新分行分列。需要注意的是GraphStudio不對轉義字符(escape character)做推斷。回顧前文我們提到movies.csv對於title列數據有逗號的情況採用雙引號轉義,所以我們需要在轉義字符下拉列表中選擇雙引號("):
在這裏插入圖片描述

點擊添加之後,movies.csv作爲一個數據源被添加到工作面板上,表示爲一個文件圖標。用戶可以按住這個圖標拖動到任何想要的位置:
在這裏插入圖片描述

下面我們添加ratings.csv文件。出於保護系統資源的考慮,GraphStudio限制通過GUI上傳單個文件不能超過500MB,而ratings.csv剛好超過了這個限制,因此我們通過scp命令(或者任意其他方式)直接將該文件傳到虛擬機的
/home/tigergraph/tigergraph/loadingData/
文件夾內(如果你在安裝TigerGraph過程中沒有使用默認的用戶名或安裝路徑,則請將文件上傳到相應的路徑)。
再次點擊工具欄添加數據源按鈕,在彈出的窗口中選擇ratings.csv文件添加到工作面板:
在這裏插入圖片描述

好了,我們已經添加了所需的數據源,接下來創建數據源到圖模型之間的數據映射。
首先我們將movies.csv映射到movie節點類型。點擊工具欄中的映射數據到圖模型按鈕,然後點擊數據源(movies.csv)圖標,然後點擊目標節點類型(movie)。這時候一條數據映射關係就被創建了:
在這裏插入圖片描述

接下來,我們需要填充映射關係的內容,即數據源中的數據如何映射到目標節點(或邊)的屬性。在右側工作面板中,表示數據源movies.csv的表和表示movie節點類型的表已經靜靜地等在那裏了。建立映射的方式非常直觀,先點擊數據源表中的某一行(對應於csv文件中的某一列,這種旋轉90度的表達方式是ETL中普遍採用的可視化方式),再點擊節點類型屬性表中的某一行(對應節點的主鍵或某個屬性),就完成了一個屬性映射。這裏我們建立了三條屬性映射,你可能注意到原來顯示在左側工作面板該數據映射上面的錯誤信息消失了,這是因爲你創建了對於movie節點類型的主鍵的映射。對於節點來說,主鍵映射是必須的。而屬性可以不被映射,在這種情況下當數據加載時這些未被映射的屬性會使用默認值。
在這裏插入圖片描述

最後,我們建立ratings.csv到rate邊類型的數據映射。重複與上面類似的操作,最終的映射結果爲:
在這裏插入圖片描述

至此,我們完成了數據映射的創建。需要注意的是我們並沒有映射從ratings.csv到person節點類型的映射,這是因爲在ratings.csv映射到rate邊類型的時候我們建立了userId列到rate邊的源節點類型person的屬性映射,這會在後續的數據加載中自動創建以ratings.csv中該列數據值爲主鍵的person類型的節點。在TigerGraph系統中所有加載到相同類型的具有相同主鍵的節點會被合併爲一個節點,默認的合併規則爲屬性覆蓋。
最後,點擊左上角的發佈按鈕將數據映射發佈到TigerGraph系統。發佈所需時間和數據映射的個數相關,這裏大概需要6秒:
在這裏插入圖片描述

載入數據

接下來我們讓TigerGraph系統根據我們創建的數據映射加載數據。點擊左側導航欄的Load Data項進入加載數據頁面,點擊工具欄中的開始加載按鈕:
在這裏插入圖片描述

加載整個數據集耗時僅2分鐘,這僅僅是在個人蘋果筆記本的虛擬機上就能達到的加載速度!加載完畢後我們通過右側的統計信息看到總共加載了16.5萬個節點和4000萬條邊。之前我們說總共有2000萬條打分記錄,而每條記錄在TigerGraph圖數據庫中被加載到一條rate邊和一條reverse_rate反向邊,因此總共有4000萬條邊。
在這裏插入圖片描述

瀏覽圖數據

下面我們利用GraphStudio內置的一些圖數據瀏覽功能直觀的感受一下剛剛加載的數據。點擊左側導航欄的Explore Graph項進入瀏覽圖數據頁面:
在這裏插入圖片描述

首先我們點擊拾取節點(Pick Vertices)按鈕從圖數據中拾取5個person節點和5個movie節點。這裏的拾取不是隨機的,因此每次拾取會返回相同的結果。如果你想要更多的節點,可以修改Enter a number中的數字。這裏最大可以輸入500。如果你知道節點的主鍵,可以在Enter vertex id輸入框中輸入主鍵的值,然後點擊旁邊的Search按鈕拾取那個節點。配置(Configuration)可以控制拾取節點的類型範圍,默認是從全部類型中拾取。你也可以勾選取消一些類型。
在這裏插入圖片描述

默認情況下所有節點顯示的標籤都是它們的主鍵。你可以修改設置顯示其他屬性,我們設置movie類型的節點顯示它們的title屬性:
在這裏插入圖片描述

完成修改之後,可以看到工作面板中的movie節點的標題被顯示出來了,可視化變得更加直觀。
在這裏插入圖片描述

切換到黑色的縱向導航欄第三個最短路徑項。點擊選擇起始節點(Choose starting vertex)輸入框,再隨意點擊工作面板中的一個節點。再點擊選擇目標節點(Choose destination vertex)輸入框,再隨意選擇工作面板中的另一個節點。
在這裏插入圖片描述

點擊查找路徑(Find Paths)按鈕,TigerGraph瞬間找到了兩點之間的一條最短路徑,長度爲4。請嘗試修改設置將打分顯示在rate邊的標籤上~
在這裏插入圖片描述

你可以繼續嘗試瀏覽圖數據頁面的其他功能。相信你會通過一些操作發現這是一個非常密集的圖(點與點之間有極多的連接路徑)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章