本文章的內容分為幾個部分
-
我是因為什么場景需要使用HugeGraph
-
怎么安裝HugeGraph,中途遇到了哪些問題,怎么解決?
-
安裝后相關進一步使用的方法
-
后續可拓展的使用場景
我的場景
在系統數據線的建設過程中,通過對現狀系統間數據交換的調研,調研方式采用Excel的形式讓各個系統填報,獲得了所在系統信息,從哪個上游系統獲得了什么數據這三個要素。進過三個要素的分析,確認在沒有數據交換平台的前提下,會形成一個網狀結構,需要進行解耦。對於分析人員來說,需要能快速的查到,系統間數據交互的關系。
雖然調研結果是Excel,我們可以很方便的將數據導入關系型數據庫中進行查看,但未解耦前的數據線是一個網狀結構,關系型數據庫在數據查詢的時候就需要對表多次進行關聯,很自然的我們會想到利用圖數據庫對信息進行保存和查詢。該數據庫需要能將關系型數據庫或Excel里的數據加載后進行可視化的展現。
安裝HugeGraph
通過訪問HugeGraph的git倉庫官方文檔,來查看具體的操作:
https://github.com/hugegraph/hugegraph-doc/blob/master/SUMMARY.md
訪問 Install HugeGraph-Server 來查看操作步驟
訪問GitHub速度太慢
由於眾所周知的原因,瀏覽器直接打開Github頁面訪問速度很慢,我們在查看可以參考帖子修改DNS信息后打開速度就變快了,可以流暢的查看官方文檔了。
http://www.mamicode.com/info-detail-2926030.html
嘗試使用一鍵部署
用wget的方式去下載tar包,發現速度特別的慢,用wget -b 將任務掛到后台以后,過了一個晚上,白天起來看,發現任務還是斷掉了,無法下載下來。
嘗試使用下載tar包部署
無論用本地電腦的瀏覽器,還是在服務器上,都無法把tar包下載下來,實在是太慢了,而且過段時間就會失敗
最終使用源碼編譯安裝
由於網絡原因,使用無法直接獲得安裝包,只好采用源碼編譯,因為碼雲上有同步對應的Git倉庫,因此可以從碼雲中獲取對應的代碼。
https://gitee.com/mirrors/hugegraph?_from=gitee_search
通過Git將代碼clone到本地,使用ide工具進行打包,我使用的是社區版的idea
打包時遇到錯誤:
Cannot run program "bash": CreateProcess error=2, 系統找不到指定的文件。 ->
查看了target目錄,發現已經編譯完成了代碼,最后在打包的時候,因為需要執行生成的dist.sh命令,因為操作系統是windows 的,沒有bash來執行shell。目前我的思路是想說,電腦因為安裝了git的話,不是有gitbash嗎?能否讓idea 在gitbash中執行打包動作,那應該就能解決這個問題了。
參考了這個帖子 ,進行了配置,將idea的Terminal轉換成了gitbash
此時發現在idea點擊maven工具的package按鈕,還是無法打包報一樣的錯,此時感覺在去研究idea的maven工具的機制比較花時間,直接在gitbash里手工執行腳本吧。
直接在gitbash中執行
sh dist.sh 報錯: tar (child): Cannot connect to D: resolve failed
查看一下dist.sh,發現里面的打包路徑,位於D盤,而D:會在shell中會被識別為remote path,可以修改dist.sh的命令增加--force-local 來處理,或者手工把路徑改成“/d/” 這種linux的文件路徑。
改完以后手工執行dist.sh就可以打包成功了。
接下去參照官方手冊即可成功完成安裝。
本地maven環境變量的配置參考帖子
https://www.cnblogs.com/liuhongfeng/p/5057827.html
如果在部署中產生了異常,可能是由於配置文件是dos格式的,我們可以在linux上安裝dos2unix來對文件進行轉換就可以正常啟動了。
怎么進行使用
通過hugegraph-loader來完成數據的裝載。我采用的方式是將Excel的數據通過客戶端導入mysql后,使用hugegraph-load將mysql的數據導入到hugegraph里。具體的配置信息可以參考loader里面的樣例文件,文件路徑在assembly\static\example\mysql 里面。
要特別注意的是:mysql建表的時候最好與圖的定義是一致的,否則在導入的時候,可能會遇到許多屬性不一致的錯誤。
數據導入成功以后,我們就可以通過hugegraph-studio來進行可視化的展示了。展示的效果參考圖片
點和邊上都可以保存許多屬性信息的,這邊不太方便進行展示。
studio的查詢語法,我們可以通過下面這個帖子來進行比較全面的學習
深入學習圖數據庫語言Gremlin 系列文章鏈接匯總-Jermy Li
后續可拓展的使用場景