修改密码

请输入密码
请输入密码 请输入8-64长度密码 和 email 地址不相同 至少包括数字、大写字母、小写字母、半角符号中的 3 个
请输入密码
提交

修改昵称

当前昵称:
提交

申请证书

证书详情

Please complete this required field.

  • Ultipa Graph V4

Standalone

Please complete this required field.

Please complete this required field.

服务器的MAC地址

Please complete this required field.

Please complete this required field.

取消
申请
ID
产品
状态
核数
申请天数
审批时间
过期时间
MAC地址
申请理由
审核信息
关闭
基础信息
  • 用户昵称:
  • 手机号:
  • 公司名称:
  • 公司邮箱:
  • 地区:
  • 语言:
修改密码
申请证书

当前未申请证书.

申请证书
Certificate Issued at Valid until Serial No. File
Serial No. Valid until File

Not having one? Apply now! >>>

ProductName CreateTime ID Price File
ProductName CreateTime ID Price File

No Invoice

搜索
    中文

      准备图集

      本文介绍如何在嬴图Manager中进行图建模、插入及修改图数据,并给出UI操作及嬴图GQL语句的示例。

      图模型

      图模型(Graph Model)是指图集(GraphSet)的Schema和属性

      图一:在嬴图Manager中展示图集retail的图模型

      如何执行嬴图GQL

      create().graph("retail_test")
      

      这句嬴图GQL可以创建一个名为retail_test的图集。

      在嬴图Manager中,可以在顶部的命令行窗口中编写并运行嬴图GQL语句(图二),某些嬴图GQL还可以通过UI操作进行组装并运行(图三):

      图二:在命令行窗口中运行创建图集的嬴图GQL语句
      图三:通过UI操作进行图集创建

      注意:创建图集后须在图集列表中点击 Select 切换至该图集,才能保证后续操作均针对该图集而进行(图3)。 切换图集是由 SDK 进行的,并非 UQL 功能。

      建模

      图四:通过UI操作进行建模

      图四展示了一个简单的建模过程,其本质是通过UI交互拼接以下两个用于创建点schema和点属性的嬴图GQL:

      // 创建点schema 'customer'
      create().node_schema("customer")						
      
      // 为点schema 'customer'创建属性'balance',数据类型为'float'
      create().node_property(@customer, "balance", float)
      

      以上这些嬴图GQL的特征:

      • create()命令开头
      • 参数node_schema()node_property()等通过英文句点.连接在命令后
      • 先创建Schema,再创建其属性
      • 用户只需创建自定义属性,不能创建系统属性(参见元数据)

      请根据图一所展示的图模型,创建所有Schema及其属性。

      关于建模的详细语法请阅读嬴图GQL文档中的图集Schema属性

      元数据

      元数据是对点和边的统称,也就是之前所讲的图数据。

      插入点

      图五:通过UI操作插入点

      点有两个系统属性,_id_uuid,它们均为点的唯一标识符,只是数据类型不同。

      点击阅读更多关于元数据的唯一标识符

      下面这些嬴图GQL语句均向点Schema customer中插入点:

      // 插入一个点,自定义属性值为null,_id和_uuid由系统自动分配
      insert().into(@customer).nodes({})
      
      // 插入两个点,自定义属性值为null,_id和_uuid由系统自动分配
      insert().into(@customer).nodes([{},{}])					
      
      // 插入一个点,cust_name属性值为Jason,其他自定义属性值为null,_id和_uuid由系统自动分配
      insert().into(@customer).nodes({cust_name: "Jason"})	
      
      // 插入一个点,_id值为CU001,自定义属性值为null,_uuid由系统自动分配
      insert().into(@customer).nodes({_id: "CU001"})			
      
      // 插入一个点,指定cust_name和_id属性的值,其他自定义属性值为null,_uuid由系统自动分配
      insert().into(@customer).nodes({cust_name: "Jason", _id: "CU001"})
      ...
      

      这些嬴图GQL的特征:

      • insert()命令开头
      • 在参数into()中声明Schema,在nodes()中将每个点的属性值组织为对象格式
      • 未提供的自定义属性值为null
      • 未提供的_id_uuid将自动生成

      点击阅读更多关于插入元数据的介绍:插入插入覆盖插入更新

      插入边

      图六:通过UI操作插入边

      边只有_uuid一种唯一标识符,但另有4个系统属性,即边的起点和终点的唯一标识符_from_to_from_uuid_to_uuid,其中至少一对必须在插入边时提供。

      以下嬴图GQL均向边Schema transfer中插入边(由点CU001或CU002指向点MC001):

      // 插入一条边,自定义属性值为null,_uuid由系统生成
      insert().into(@transfer).edges({_from: "CU001", _to: "MC001"})
      
      // 插入两条边,自定义属性值为null,_uuid由系统生成
      insert().into(@transfer).edges([{_from: "CU001", _to: "MC001"},{_from: "CU002", _to: "MC001"}])		
      
      // 插入一条边,tran_amount属性值为1000,其他自定义属性值为null,_uuid由系统自动分配
      insert().into(@transfer).edges({_from: "CU001", _to: "MC001", tran_amount: "1000"})
      
      // 插入一条边,_uuid为1,自定义属性值为null
      insert().into(@transfer).edges({_from: "CU001", _to: "MC001", _uuid: 1})
      
      // 插入一条边,指定tran_amount和_uuid,其他自定义属性值为null
      insert().into(@transfer).edges({_from: "CU001", _to: "MC001", tran_amount: "Jason", _uuid: "CU001"})
      
      ...
      

      与插入点类似,这些插入边的嬴图GQL具有以下特征:

      • insert()命令开头
      • 在参数into()中声明Schema,在edges()中将每个边的属性值组织为对象格式
      • 未提供的自定义属性值为null
      • 未提供的_uuid将自动生成
      • 必须提供_from_to(或 _from_uuid_to_uuid),并且这些点必须已经存在

      点击阅读更多关于插入元数据的介绍:插入插入覆盖插入更新

      关于批量导入数据(如CSV文件、其他数据库等)的方法,请阅读数据导入

      更新元数据

      图七:通过UI操作更新点

      更新点、边的嬴图GQL示例:

      // 将所有点的type属性值改为IV
      update().nodes().set({type: "IV"})
      
      // 将_id为CU001的点的type属性值改为IV
      update().nodes({_id == "CU001"}).set({type: "IV"})
      
      // 将merchant_name属性值包含 'Beijing'的点的type属性值改为IV
      update().nodes({merchant_name contains "Beijing"}).set({type: "IV"})
      
      // 将所有边的result属性值改为success
      update().edges().set({result: "success"})		
      
      // 将_uuid为1的边的result属性值改为success
      update().edges({_uuid == 1}).set({result: "success"})
      
      // 将_from为CU001的边的result属性值改为success
      update().edges({@transfer._from == "CU001"}).set({result: "success"})	
      ...
      

      这些嬴图GQL语句的特征为:

      • update()命令开头
      • 在参数nodes()edges()中描述需要更新的点、边(描述方法详见图数据
      • 在参数set()中将点、边的新属性值组织为对象格式,未提供的属性值不变
      • _id_uuid的值不支持更新

      update()命令用来更新元数据的属性值,而非对属性进行重命名。对属性、Schema、图集进行重命名属于修改图模型的操作,详见嬴图GQL文档中的图集Schema属性

      请完成以下信息后可下载此书
      *
      公司名称不能为空
      *
      公司邮箱必须填写
      *
      你的名字必须填写
      *
      你的电话必须填写
      *
      你的电话必须填写