设计图模型(Schema)
Last updated
Last updated
设计图模型(Graph Schema)是使用图数据库解决商业问题过程中的第一步,也是最重要的一步。图模型的本质就是商业问题的逻辑模型,之后所有的步骤都必须基于该图模型。你可以通过点击左侧菜单栏中的“设计图模型(Design Schema)” 链接前往设计图模型的页面:
当前版本的限制
只有超级管理员才能够在设计图模型页面中编辑图模型。
如果有不止一个图的存在,则超级管理员只能编辑图的视觉元素。
如果系统中没有图存在,则该页面会出现如下提示:
如果系统中有图存在,则该页面会显示该图的图模型结构:
每个圆圈代表一个点类,每条线段代表一个边类。你可以拖动圆圈来改变它们的位置。系统提供两种缩放的方法:如果你有触控板的话,则使用两个手指向上滑动就是放大,向下滑动就是缩小。类似的,使用鼠标滚轮向前滑动就是放大,反之为缩小。
注意:点类和点实例的区别类似于传统关系型数据库中桌子和某一个桌子的区别。边类和边实例的区别也类似。在设计图模型时,用户定义点类和边类并将它们组合成图模型。而之后的两步,即映射数据和加载数据,则用于将数据导入到图中。
在该窗口中,你需要输入点类的名称和Primary id。GraphStudio会自动为你选择一个颜色。通过点击"Color hex”下方的文字也可以更改颜色。此时系统会弹出调色盘,你可以在调色盘上选择你想要的颜色。
选择满意的颜色后,在调色盘外的任意处单击就可以完成颜色的选定。
通过点击属性窗口右侧的绿色加号可添加一个属性:
你需要为该属性配置一个名称和一个数据类型,以及一个可选的默认值。(如果不设定默认值,则系统会自动分配一个默认值。例如一个整数值的默认值就是数字0。)
点击右侧的红色减号可以删除一个属性。
每个边类都有一个初始点类和一个目标点类。首先,你需要点击初始点类,然后在该点类的圆圈旁边会出现一条提示:
然后点击目标点类,随后会弹出一个窗口:
在该窗口中,你必须设置一个边类名。而对应的初始点类和目标点类则基于你刚刚的选取。当然,你也可以在该窗口中通过下拉菜单改变刚才的选择。
默认条件下,边类为无向边。如果想将其改为有向边,则需要勾选“Directed”选项。
当“Directed”选项勾选后,会弹出另一个选择项,通过此选项你可以决定是否需要在某条有向边存在的同时创建反向有向边。通常情况下,反向边的存在会在编写查询时提供更大的灵活性。而如果没有反向边,则查询无法对某条有向边进行反向遍历。所以我们强烈建议,除非你的系统内存空间极为紧张,否则请勾选反向边选项。
编辑边类属性的方法和编辑点类属性的方法相同。
在同一组初始点类和目标点类之间可以添加多个边类。此外,某条边的初始点类和目标点类可以相同,例如一个叫做 “友谊(Friendship)” 的边类的起点和终点都可以是点类 “人(Person)”。
请注意,发布架构既适用于创建新模型,也适用于修改现有模型。 如果您已经为现有图表加载了数据或创建了查询,请注意GraphStudio的发布模式只能在某些情况下保留现有数据。 请仔细阅读以下部分。
开发者版
如果你的TigerGraph是不支持图模型更新的开发者版本,则每次你发布图模型时,TigerGraph都会执行"DROP ALL" “,然后创建新的图模型;
企业版
如果你编辑的是已经存在的图模型,则GraphStudio会首先分析你所做的所有变动。如果对于一个点类或边类的改动仅仅是对于它们属性的删除和/或添加,则GraphStudio会直接利用GSQL(GSQL SCHEMA_CHANGE)实现这些改动,从而保留你已经加载过的数据。
然而,对于其他类型的改动,例如改变点类或边类的名称, 改变属性名或数据格式, 改变边的方向, 或者是添加、删除反向边等操作,由于它们涉及到对于点类和边类本身的添加和删除,则无法保留已经加载的数据,所以在进行此类操作时请务必谨慎。在图模型修改完成后,你可以重新导入数据。
如果删除了一个点类,则所有与之相连的边类也都会一并删除。
当你编辑图模型时,工作区的右上角会出现一条提示,告诉你哪些旧的点类或边类会被删除。请不时地阅读这条提示,防止误操作。
点击CONTINUE按钮后,GraphStudio便会开始执行你的变更:
如果你已经创建了数据映射和查询,GraphStudio会尽可能地在更改后的图模型中保留原来的配置。
所有的查询都会被保存为查询草稿,你可以选择在修改图模型后重新安装这些查询。如果某条查询与新的图模型冲突(例如引用了某条已经被删除的点类),则你需要在安装该查询前将其修正。
GraphStudio会根据你对图模型的变更自动迁移数据映射。由于GraphStudio记录了你的整个操作的历史记录,所以这项自动迁移功能可以满足绝大多数场景下的自动更新。基本的迁移准则如下:
更新点类或边类的名字
删除那些针对已经不存在的点类或边类的数据映射
删除那些针对已经不存在的或修改过的属性的数据映射
对于新添加的点类,边类和属性,不会建立新的数据映射
在新的图模型发布完成后,GraphStudio会指导用户前往“映射数据”页面去检查和修正数据映射表,使你可以及时修改映射表中的过时信息。你必须发布迁移后的数据映射,否则它们就会丢失。
如果你已经通过GraphStudio发布过一些数据映射,则在修改过图模型之后,系统会弹出窗口,指导你前往“数据映射”页面确认和发布迁移后的新数据映射。
点击按钮 可新建一个点类。点击按钮后会弹出编辑窗口:
你也可以通过点击按钮 为你的点类选择一个图标。在随后弹出的选择图标界面中,你可以选择与你的点类最相关的图标,上方的文本框内输入关键词可有助于更快地筛选。
当所有的点类参数都配置完成后,点击按钮 便可以完成点类的添加。此时,在工作区会出现一个新的圆圈,你可以拖动它并把它放置在恰当的位置。
点击按钮 进入添加边类模式。点击后工作区会自动进入添加边类模式,同时该按钮中的箭头也会变成绿色 。再点击一次则退出添加边类模式。
配置完所有边类属性后,点击按钮 完成边类的添加。此时在工作区内,之前选定的初始点类和目标点类之间会出现一条新的线段。
你可以在任何时候编辑现存的点类或者边类:只需要点击点类的圆圈或者边类的线段,然后点击按钮 即可(双击圆圈或线段也可以实现同样效果)。
完成编辑后,点击按钮 保存结果。
在选定点类的圆圈或边类的线段后,点击按钮 即可删除它们。按住“Shift”键可以一次选中多个项目,以便同时删除它们。
你可以点击按钮 用于回退或重做操作。在设计图模型页面中,用户的每一步动作都会被记录在案。
当图模型设计完成后,点击发布按钮 可将该图模型发布到TigerGraph系统中。如果你发布的是一个全新的图模型,则系统会弹出进度条显示发布进度:
一切完成后,你可以点击发布按钮 ,此时系统会弹出一个窗口,窗口中包括了系统即将执行的所有更改。所有将被删除的点类和边类都会以高亮显示。请在继续动作前再次确认你所做的变更都符合你的预期。