星影指南
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 删除当前图空间,schema 与数据均不保留。执行以下语句:
cypherDROP SPACE basketballplayer;
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条数据,执行以下语句:(需要在边表创建了索引的前提下,如展示失败,可通过【索引】按钮进行索引创建。)cypher
MATCH (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 EDGEcypher
DROP 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:
cypherINSERT 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:
cypherINSERT 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脚本,即可完成上述数据库操作。
相信通过两份文档的介绍,你已经对星影的使用有了一个大致的了解。期待我们都能在星影的世界里,玩得开心。