修改密码

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

修改昵称

当前昵称:
提交

申请证书

证书详情

Please complete this required field.

  • Ultipa Blaze (v4)
  • Ultipa Powerhouse (v5)

Standalone

点击

了解 Ultipa Powerhouse (v5)架构中的四大组成部分。

Please complete this required field.

Please complete this required field.

Please complete this required field.

Please complete this required field.

如果不需要 HDC 服务,则此项留空。

Please complete this required field.

如果不需要 HDC 服务,则此项留空。

Please complete this required field.

Please complete this required field.

所有服务器的MAC地址,由换行符或逗号分隔。

Please complete this required field.

Please complete this required field.

取消
申请
ID
产品
状态
核数
Shard 服务最大数量
Shard 服务最大总核数
HDC 服务最大数量
HDC 服务最大总核数
申请天数
审批日期
过期日期
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

v5.2
搜索
    v5.2

      图集

      概述

      嬴图数据库的一个实例包含一或多个(也称图集),每个图代表一个由相互连接的点、边组成的数据集或域。

      嬴图中的图集或为Schema-Free(无Schema限制),或为Schema-Constrained(有Schema限制)。

      显示图集

      获取数据库中的图集信息:

      // Shows all graphsets
      show().graph()
      
      //Shows all graphsets with additional details (total_nodes, total_edges, etc.)
      show().graph().more()
      
      // Shows the specified graphset
      show().graph("myGraph")
      
      // Shows the specified graphset with additional details (total_nodes, total_edges, etc.)
      show().graph("myGraph").more()
      

      语句返回以下表格:

      • _graph表包含数据库中的所有图集。
      • _graph_shard_<N>表包含存储在Shard<N>上的图集。

      表中各字段提供了图集的基础信息:

      字段
      描述
      id 图集的唯一ID
      name 图集的唯一名称
      description 对图集的描述
      status 图集当前状态,包括NORMALLOADING_SNAPSHOTCREATINGDROPPINGSCALING
      shards 图数据分布所在Shard的ID
      partition_by 计算分片键哈希值的函数,对图数据分片至关重要
      meta_version Meta服务器使用的版本号,用于和分片服务器同步图集上的DDL(数据定义语言)操作
      total_nodes 图集的总点数。仅当调用more()方法时,在表_graph上出现
      total_edges 图集的总边数。仅当调用more()方法时,在表_graph上出现
      schema_free 图是否为Schema-Free

      创建图集

      使用语句create().graph()可创建一个图集。

      create().graph("<name>", "<desc?>")
        .schemaFree()
        .shards(<shardList>)
        .partitionByHash(<hashFunc>, <shardKey?>)
      
      方法 参数 描述
      graph() <name> 图集的唯一名称。命名规范如下:
      • 2~127个字符
      • 以字母开头
      • 允许的字符:字母(A-Z,a-z),数字(0-9),下划线(_)
      <desc?> 可选。对图集的描述
      schemaFree() / 可选。用来说明图是否为Schema-Free。一个Schema-Free的图,无需在插入数据前显式定义Schema。您可直接向图中插入点和边,对应的Schema和属性会自动创建
      shards() <shardList> 可选。图数据分布存储的Shard ID列表;默认为所有Shard
      partitionByHash() <hashFunc> 可选。计算分片键哈希值的函数(Crc32Crc64WECrc64XZCityHash64),对图数据分片至关重要。默认为Crc32。了解更多信息,请参阅CrcCityHash
      <shardKey?> 可选。用作分片键的点属性。目前仅支持_id

      创建图g1,使用CityHash64函数,根据点的_id将数据分发至分片[1,2,3]中:

      create().graph("g1").shards([1,2,3]).partitionByHash(CityHash64, _id)
      

      创建图g2

      create().graph("g2")
      

      创建Schema-Free的图g3

      create().graph("g3").schemaFree()
      

      修改图集名称和描述

      使用语句alter().graph().set()可以修改图集的名称和描述。

      修改图集myGraph的名称和描述:

      alter().graph("myGraph").set({name: "superGraph", description: "Graph used for transactions"})
      

      修改图集myGraph的名称:

      alter().graph("myGraph").set({name: "superGraph"})
      

      修改图集myGraph的描述:

      alter().graph("myGraph").set({description: "Graph used for transactions"})
      

      删除图集myGraph的描述:

      alter().graph("myGraph").set({description: ""})
      

      迁移图集数据

      由于图数据分布在多个Shard上,数据迁移有时是有必要的。比如,现有Shard过载时需迁移至更多Shard,或需要将数据分布到其他地理区域。将数据迁移至更少的Shard则可以释放未充分利用的资源,降低消耗,简化数据管理。使用alter().graph().shards().partitionConfig()语句可迁移图集数据。

      alter().graph("<graphName>").shards(<shardList>).partitionConfig({strategy: "<rsStrat>"})
      
      方法
      参数
      描述
      可选
      graph() <graphName> 指定图集
      shards() <shardList> 图集数据存储所在Shard的非空ID列表。该列表不能与当前Shard列表相同,且需和partitionConfig()中的strategy集保持一致
      partitionConfig() 配置映射 指定迁移strategy,包括:
      • balance:将图集数据重新平均分配在各个Shard中
      • quickly_expand:将部分数据从当前Shard快速迁移至新Shard;要求<shardList>必须包含当前所有Shard
      • quickly_shrink:将被移除的Shard上的数据快速迁移至剩余Shard;要求<shardList>必须是当前Shard列表的子列表
      忽略该方法时,默认使用balance

      假设图集myGraph当前分布在Shard [1,2]上,将其迁移至Shard [1,4,5]

      alter().graph('myGraph').shards([1,4,5]).partitionConfig({strategy: "balance"})
      

      myGraph从Shard [1,2]迁移至Shard [3]

      alter().graph('myGraph').shards([3]).partitionConfig({strategy: "balance"})
      

      myGraph从Shard [1,2]快速迁移至Shard [1,2,4]

      alter().graph('myGraph').shards([1,2,4]).partitionConfig({strategy: "quickly_expand"})
      

      myGraph从Shard [1,2]快速迁移至Shard [1]

      alter().graph('myGraph').shards([1]).partitionConfig({strategy: "quickly_shrink"})
      

      删除图集

      使用单个语句drop()即可删除一个或多个图集。串联使用graph()方法指定每个图集。删除图集意味着将整个图集从数据库删除。

      删除图集myGraph

      drop().graph("myGraph")
      

      删除两个图集:

      drop().graph("myGraph_1").graph("myGraph_2")
      

      默认情况下,无法删除已创建HDC图的图集。可使用force()方法绕过该限制,强制删除图集:

      drop().graph("myGraph_1").graph("myGraph_2").force()
      

      清空图集

      使用truncate().graph()语句清空图集。此操作只删除图集中的点边数据,但保留图集本身及其定义的图类型。

      用户可选择清空整个图集、所有点、所有边或指定Schema的点或边。请注意,清空点时,与其相连的边也会同时被清空。

      // Truncates the graphset 'myGraph' (all nodes and edges will be deleted)
      truncate().graph("myGraph")
      
      // Truncates all @user nodes (edges attached to them will be deleted too)
      truncate().graph("myGraph").nodes(@user)
      
      // Truncates all nodes (all edges will be deleted too)
      truncate().graph("myGraph").nodes("*")
      
      // Truncates all @link edges
      truncate().graph("myGraph").edges(@link)
      
      // Truncates all edges
      truncate().graph("myGraph").edges("*")
      

      清理图集

      使用compact().graph()语句清理图集。此操作清理服务器磁盘上的无效和冗余的图数据,但不会改变其他有效数据。图集清理操作以作业形式进行,稍后可使用show().job(<id?>)验证操作是否完成。

      清理图集myGraph

      compact().graph("myGraph")
      

      冗余数据可能由一些数据操作产生,如更新或删除数据后仍保留的历史记录。建议定期清理图集,回收存储空间,提升查询效率。

      请完成以下信息后可下载此书
      *
      公司名称不能为空
      *
      公司邮箱必须填写
      *
      你的名字必须填写
      *
      你的电话必须填写
      *
      你的电话必须填写
      隐私政策
      请勾选表示您已阅读并同意。

      Copyright © 2019-2025 北京同心尚科技发展有限公司-保留所有权利 京ICP备19040872号-1