星影指南
1. 菜單欄功能
- 添加連接,詳見第2點【添加數據庫連接】
如還沒有自己的圖數據庫,可通過以下方式獲取一個免費的圖數據庫:
- 打開文件夾,初次打開會默認在用戶文檔中創建一個文件夾,開發者可以自行選擇新路徑;
- 最近打開,保存多個選擇過的文件夾路徑,開發者可以根據正在開發的項目在多個路徑間切換;
- 退出。
2. 添加數據庫連接(當前版本只支持 NebulaGraph)
- 數據源名稱,便於自己區分不同數據源即可
- 選擇數據庫類型(默認NebulaGraph)
- 主機地址,示例:gdbc.nebula://192.168.0.1:9669
- 用戶名,示例:root
- 密碼,示例:nebula
- 測試連接
- 完成數據源添加
3. 數據源樹結構
- 數據源名稱(自定義)
- basketballplayer
- 標籤
- player
- team
- 關係
- follow
- serve
- 查詢(可用於存放項目所用的 nGQL)
- 常用查詢(文件夾)
- 查看詹姆斯所服役的球隊(nGQL)
- 日常運維(文件夾)
- 查看會話連接數(nGQL)
- 常用查詢(文件夾)
- 標籤
- spaceName2
- ...
- basketballplayer
4. 數據源樹結構所支持的操作及其說明(以上述數據源樹結構為例)
4.1、【數據源名稱】節點
- 刷新時,執行 SHOW SPACES 當添加圖空間、節點類型或邊類型時,用於更新 schema 的樹結構。
- 左側箭頭展開 同刷新
- 創建圖空間時,執行 CREATE SPACE 用於在當前的主機中,創建一個新的圖空間。
- 編輯 當連接參數發生變動時,用於修改連接參數。
- 刪除 刪除當前數據源,對數據庫數據不做任何操作。
4.2、【basketballplayer】節點(圖空間節點)
單擊 在主操作區中,打開面板,並展示當前圖空間各 tag/type 的數據量,執行 SHOW STATS 前提:當前圖空間執行過 SUBMIT JOB STATS。
刷新 當添加節點類型或邊類型時,用於更新 schema 的結構。
複製時,執行 CREATE SPACE 只對當前空間的 schema 進行複製,執行以下語句:
cypherCREATE SPACE IF NOT EXISTS newSpace AS basketballplayer;
清除數據時,執行 CLEAR SPACE 保留當前空間的 schema,並清空所有數據,執行以下語句:
cypherCLEAR SPACE IF EXISTS basketballplayer;
刪除時,執行 DROP SPACE
4.3、【標籤】節點
刷新
- SHOW TAGScypher
SHOW TAGS;
- DESCRIBE TAGcypher
DESCRIBE TAG `player`; DESCRIBE TAG `team`;
- SHOW EDGEScypher
SHOW EDGES;
- DESCRIBE EDGEcypher
DESCRIBE EDGE `follow`; DESCRIBE EDGE `serve`;
- SHOW TAGS
創建標籤時,執行 CREATE TAG
4.4、【player】節點(數據庫中的 tag)
單擊時,執行 MATCH 在主操作區中打開一個表格面板,展示當前 tag 的數據,並按頁加載,每頁100條數據,執行以下語句:
cypherMATCH (n:player) RETURN id(n), n.`player`.`name` as `name`, n.`player`.`age` as `age` SKIP 0 LIMIT 100; MATCH (n:player) RETURN id(n), n.`player`.`name` as `name`, n.`player`.`age` as `age` SKIP 100 LIMIT 100; // ...
編輯時,執行 ALTER TAG
刪除時,執行 DROP TAG
cypherDROP TAG `player`;
4.5、【follow】節點(數據庫中的 edgeType)
單擊時,執行 MATCH 在主操作區中打開一個表格面板,展示當前 edgeType 的數據,並按頁加載,每頁100條數據,執行以下語句:(需要在邊表創建了索引的前提下,如展示失敗,可通過【索引】按鈕進行索引創建。)
cypherMATCH (src)-[r:follow]->(dst) RETURN id(src), rank(r), id(dst), r.`degree` as `degree` SKIP 0 LIMIT 100; MATCH (src)-[r:follow]->(dst) RETURN id(src), rank(r), id(dst), r.`degree` as `degree` SKIP 100 LIMIT 100; // ...
編輯時,執行 ALTER EDGE
刪除時,執行 DROP EDGE
cypherDROP EDGE `follow`;
4.6、【查詢】節點
- 刷新 從選定的項目工作區中,同步查詢腳本的文件結構。
- 添加 創建一個新的
.ngql
文件。 - 添加分組 創建一個新的文件夾。
- 刪除 從文件系統中刪除文件、文件夾。
4.7、【日常運維】節點
文件夾類型的節點,同【查詢】節點。
4.8、【查看詹姆斯所服役的球隊】等nGQL文件節點
- 重命名:對文件進行重命名;
- 刪除:刪除 nGQL 文件。
5、主操作區所支持的操作及其說明
5.1、space操作區
入口:單擊圖空間節點後出現,如:【basketballplayer】。
- 導入:支持 csv 導入,同時支持通過 csv 的首行創建 schema;
- 全選(原意為選中批量操作的schema,進行後續操作,如備份等,未實現)。
5.2、tag操作區
入口:單擊標籤節點後出現,如:【player】。
- 刷新:將頁面回歸為第一頁;
- 索引:
展示索引 SHOW INDEXES
創建索引 CREATE TAG INDEX
cypherCREATE TAG INDEX `i_player_age` ON `player`(`age`);
重建索引 REBUILD INDEX
cypherREBUILD TAG INDEX `i_player_age`;
刪除索引 DROP INDEX
cypherDROP TAG INDEX `i_player_age`;
- 添加數據,支持單行添加數據 INSERT VERTEX:cypher
INSERT VERTEX `player` (name, age) VALUES 'player999': ('Kobe', 41);
- 數據表格支持:
- 查看單行詳細數據;
- 編輯單行數據 UPDATE VERTEX;cypher
UPDATE VERTEX ON `player` 'player999' SET age = 18
- 複製當前右鍵的單行數據(除 vid 外),腳本同【添加數據】;
- 刪除節點 DELETE VERTEX:cypher
DELETE VERTEX 'player999';
5.3、edge操作區
入口:單擊關係節點後出現,如:【follow】。
- 刷新:將頁面回歸為第一頁;
- 索引:
- 展示索引 SHOW INDEXES
- 創建索引 CREATE INDEXcypher
CREATE EDGE INDEX `i_follow` ON `follow`();
- 重建索引 REBUILD INDEXcypher
REBUILD EDGE INDEX `i_follow`;
- 刪除索引 DROP INDEXcypher
DROP EDGE INDEX `i_follow`;
- 添加數據,支持單行添加數據 INSERT EDGE:cypher
INSERT EDGE `follow` (degree) VALUES 'player999'->'player888'@0: (1);
- 數據表格支持:
- 查看單行詳細數據;
- 編輯單行數據 UPDATE EDGEcypher
UPDATE EDGE ON `follow` 'player999'->'player888'@0 SET degree = 2;
- 複製當前右鍵的單行數據(除 ranking 外),腳本同【添加數據】;
- 刪除邊 DELETE EDGEcypher
DELETE EDGE `follow` 'player999'->'player888'@0;
5.4 查詢操作區
入口:單擊查詢節點後出現,如:【查看詹姆斯所服役的球隊】。
- 執行計劃 當勾選時,執行查詢時會同時返回執行計劃 EXPLAIN 和 PROFILE。
PROFILE $ngql
執行
- 當編輯區中,無選中腳本,執行所有腳本;
- 當編輯區中,有選中腳本,執行選中腳本。
美化代碼(未充分測試,可能導致 nGQL 不可用)
- 當編輯區中,無選中腳本時,格式化當前編輯區中的 nGQL 代碼;
- 當編輯區中,有選中腳本時,格式化選中的 nGQL 代碼。
參數區
- 與數據庫中的參數不同。
- 可以在參數區中,點
+
添加參數,如:name | Kobe | string,並在 ngql 中使用植入。
cypherMATCH (n:player) WHERE n.player.name == '{{name}}' RETURN n;
- 支持添加多套參數方案,開發者可根據查詢需要進行切換而不用修改編輯區中的 nGQL 腳本。
6. 結尾
開發者可以通過圖形化,無需編寫相應的nGQL腳本,即可完成上述數據庫操作。
相信通過兩份文檔的介紹,你已經對星影的使用有了一個大致的了解。期待我們都能在星影的世界裡,玩得開心。