修改密码

请输入密码
请输入密码 请输入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

v4.5
搜索
    v4.5

      图集管理

      本节为您介绍如何使用Connection对象的方法管理数据库中的图集。

      每个示例主要展示如何使用所列方法。点击完整示例查看完整代码示例。

      ShowGraph()

      从数据库获取全部图集。

      参数:

      • RequestConfig(可选):请求的配置。如果填入nil,函数将使用默认的配置。 返回值:

      • GraphSet:数据库中全部图集列表。

      • error:包含发生问题详细信息的错误对象。如果操作成功,则返回 nil

      // 获取全部图集并打印边数超过2000条的图集名称
      
      myGraph, _ := conn.ShowGraph(nil)
      for i := 0; i < len(myGraph); i++ {
          if myGraph[i].TotalEdges > 2000 {
              fmt.Println("GraphSet:", myGraph[i].Name)
          }
      }
      

      Display_Ad_Click
      ERP_DATA2
      wikiKG
      

      GetGraph()

      根据图集名称从数据库获取图集信息。

      参数:

      • string:图集名称。

      • RequestConfig(可选):请求的配置。如果填入nil,函数将使用默认的配置。 返回值:

      • GraphSet:目标图集。

      • error:包含发生问题详细信息的错误对象。如果操作成功,则返回 nil

      // 获取名为wikiKG的图集并打印其全部信息
      
      myGraph, _ := conn.GetGraph("wikiKG", nil)
      fmt.Println("ID", "Name", "TotalNodes", "TotalEdges", "Status")
      fmt.Println(myGraph)
      

      ID Name TotalNodes TotalEdges Status
      &{13844 wikiKG  44449 167799 MOUNTED}
      

      CreateGraph()

      在数据库中新建图集。

      参数:

      • GraphSet:待创建的图集;必须设置name字段,description字段可选。
      • RequestConfig(可选):请求的配置。如果填入nil,函数将使用默认的配置。

      返回值:

      • UQLResponse:请求的结果。
      • error:包含发生问题详细信息的错误对象。如果操作成功,则返回 nil

      // 创建图集并打印错误代码
      
      myGraph, _ := conn.CreateGraph(&structs.GraphSet{Name: "testGoSDK", Description: "Description for testGoSDK"}, nil)
      fmt.Println("Creation succeeds:", myGraph.Status.IsSuccess())
      

      数据库中已创建名为testGoSDK的新图集,驱动程序打印结果如下:

      Creation succeeds: true
      

      CreateGraphIfNotExist()

      在数据库中新建图集,若同名图集已存在,忽略报错。

      参数:

      • GraphSet:待创建的图集;必须设置name字段,description字段可选。

      • RequestConfig(可选):请求的配置。如果填入nil,函数将使用默认的配置。 返回值:

      • Response:请求的结果。

      • bool:图集是否存在。

      • error:包含发生问题详细信息的错误对象。如果操作成功,则返回 nil

      // 创建图集并打印错误代码
      
      myGraph, status, err := conn.CreateGraphIfNotExist(&structs.GraphSet{Name: "testGoSDK", Description: "Description for testGoSDK"}, nil)
      if err == nil {
          fmt.Println("Graph already exists:", status)
          fmt.Println("First creation succeeds:", myGraph.Status.IsSuccess())
      }
      
      // 尝试再次创建图集并打印错误代码
      
      _, result, _ := conn.CreateGraphIfNotExist(&structs.GraphSet{Name: "testGoSDK", Description: "Description for testGoSDK"}, nil)
      fmt.Println("Graph already exists:", result)
      
      

      在数据库中创建了一个新的图集testGoSDK,驱动程序打印结果如下:

      Graph already exists: false
      First creation succeeds: true
      Graph already exists: true
      

      DropGraph()

      根据图集名称从数据库中删除图集。

      参数:

      • string:图集名称。
      • RequestConfig(可选):请求的配置。如果填入nil,函数将使用默认的配置。

      返回值:

      • Response:请求的结果。
      • error:包含发生问题详细信息的错误对象。如果操作成功,则返回 nil

      // 创建图集后将其删除并打印结果
      
      myGraph, _ := conn.CreateGraph(&structs.GraphSet{Name: "testGoSDK", Description: "Description for testGoSDK"}, nil)
      fmt.Println("Creation succeeds:", myGraph.Status.IsSuccess())
      
      resp1, _ := conn.DropGraph("testGoSDK", nil)
      fmt.Println(resp1)
      

      Creation succeeds: true
      &{map[] status:{} statistics:{table_name:"statistics" headers:{property_name:"node_affected" property_type:STRING} headers:{property_name:"edge_affected" property_type:STRING} headers:{property_name:"total_time_cost" property_type:STRING} headers:{property_name:"engine_time_cost" property_type:STRING} table_rows:{values:"0" values:"0" values:"6" values:"0"}} explain_plan:{} 0xc0002a0648 0xc0004a2040 0xc000484b40 [] 0xc0002814f0}
      

      AlterGraph()

      根据图集名称,修改数据库中已有图集的名称和描述信息。

      参数:

      • oldGraph: GraphSet:待修改的图集;必须设置name字段。

      • newGraph: GraphSet:更新已有图集的配置;必须设置字段“name”和“description”中的一个或两个。

      • RequestConfig(可选):请求的配置。如果填入nil,函数将使用默认的配置。 返回值:

      • Response:请求的结果。

      • error:包含发生问题详细信息的错误对象。如果操作成功,则返回 nil

      // 将图集testGoSDK重命名为newGraph,添加图集描述并打印结果
      
      resp1, _ := conn.AlterGraph(&structs.GraphSet{Name: "testGoSDK"}, &structs.GraphSet{Name: "newGraph", Description: "The graph is altered."}, nil)
      fmt.Println(resp1)
      

      &{map[] status:{}  statistics:{table_name:"statistics"  headers:{property_name:"node_affected"  property_type:STRING}  headers:{property_name:"edge_affected"  property_type:STRING}  headers:{property_name:"total_time_cost"  property_type:STRING}  headers:{property_name:"engine_time_cost"  property_type:STRING}  table_rows:{values:"0"  values:"0"  values:"0"  values:"0"}}  explain_plan:{} 0xc0002327c8 0xc00001cba0 0xc000009248 [] 0xc000207820}
      

      Truncate()

      清空(删除)给定图集中的指定点或边,或清空全部图集。请注意,清空点数据的同时会删除与点相连的所有边。清空操作仅删除点边数据,不会删除schema和属性信息。

      参数:

      • Truncate:待清空的对象;必须设置GraphName字段,可选择设置Schema字段和DbType字段,但设置Schema字段时,必须设置DbType字段。
      • RequestConfig(可选):请求的配置。如果填入nil,函数将使用默认的配置。

      返回值:

      • Response:请求的结果。
      • error:包含发生问题详细信息的错误对象。如果操作成功,则返回 nil

      // 清空图集myGraph_1中@user点数据并打印错误代码
      
      db := ultipa.DBType_DBNODE
      myGraph1, _ := conn.Truncate(&structs.Truncate{GraphName: "myGraph_1", DbType: &db, Schema: "user"}, nil)
      fmt.Println(myGraph1.Status)
      
      // 清空图集myGraph_2中全部边数据并打印错误代码  
      
      db := ultipa.DBType_DBEDGE
      myGraph2, _ := conn.Truncate(&structs.Truncate{GraphName: "myGraph_2", DbType: &db, Schema: "*"}, nil)
      fmt.Println(myGraph2.Status)
      
      // 清空图集myGraph_3并打印错误代码
      
      myGraph3, _ := conn.Truncate(&structs.Truncate{GraphName: "myGraph_3"}, nil)
      fmt.Println(myGraph3.Status)
      

      &{ SUCCESS}
      &{ SUCCESS}
      &{ SUCCESS}
      

      Compact()

      清除服务器磁盘上的无效及冗余数据以压缩图集。有效数据不会受到影响。

      参数:

      • string:图集名称。
      • RequestConfig(可选):请求的配置。如果填入nil,函数将使用默认的配置。

      返回值:

      • Response:请求的结果。
      • error:包含发生问题详细信息的错误对象。如果操作成功,则返回 nil

      // 压缩图集miniCircle并打印错误代码
      
      resp, _ := conn.Compact("miniCircle", nil)
      fmt.Println(resp.Status)
      

      &{ SUCCESS}
      

      HasGraph()

      根据图集名称查看数据库中是否存在该图集。

      参数:

      • string:图集名称。

      • RequestConfig(可选):请求的配置。如果填入nil,函数将使用默认的配置。 返回值:

      • bool:请求的结果。

      • error:包含发生问题详细信息的错误对象。如果操作成功,则返回 nil

      // 查看图集miniCircle是否存在并打印结果
      
      resp, _ := conn.HasGraph("miniCircle", nil)
      fmt.Println("Graph exists:", resp)
      

      Graph exists: true
      

      UnmountGraph()

      卸载图集以节省数据库内存。

      参数:

      • string:图集名称。

      • RequestConfig(可选):请求的配置。如果填入nil,函数将使用默认的配置。 返回值:

      • Response:请求的结果。

      • error:包含发生问题详细信息的错误对象。如果操作成功,则返回 nil

      // / 卸载图集miniCircle并打印图集状态
      
      resp, _ := conn.UnmountGraph("miniCircle", nil)
      fmt.Println(resp.Status)
      

      &{ SUCCESS}
      

      MountGraph()

      将图集挂载至数据库内存。

      参数:

      • string:图集名称。

      • RequestConfig(可选):请求的配置。如果填入nil,函数将使用默认的配置。 返回值:

      • Response:请求的结果。

      • error:包含发生问题详细信息的错误对象。如果操作成功,则返回 nil

      // 挂载图集'miniCircle'并打印结果
      
      resp, _ := conn.MountGraph("miniCircle", nil)
      fmt.Println(resp.Status)
      

      &{ SUCCESS}
      

      完整示例

      package main
      
      import (
        "fmt"
      
        "github.com/ultipa/ultipa-go-sdk/sdk"
        "github.com/ultipa/ultipa-go-sdk/sdk/configuration"
        "github.com/ultipa/ultipa-go-sdk/sdk/structs"
      )
      
      func main() {
        
        // 配置连接
        //URI 示例: Hosts:=[]string{"mqj4zouys.us-east-1.cloud.ultipa.cn:60010"}
        config, _ := configuration.NewUltipaConfig(&configuration.UltipaConfig{
          Hosts:    []string{"192.168.1.85:60061", "192.168.1.86:60061", "192.168.1.87:60061"},
          Username: "***",
          Password: "***",
        })
      
        // 建立与数据库的连接
        conn, _ := sdk.NewUltipa(config)
      
        // 配置请求
        requestConfig := &configuration.RequestConfig{
          UseMaster: true,
        }
      
        // 创建图集'testGoSDK'  
        myGraph, _ := conn.CreateGraph(&structs.GraphSet{Name: "testGoSDK", Description: "Description for testGoSDK"}, nil)
        fmt.Println("Creation succeeds:", myGraph.Status.IsSuccess())
      
        // 删除刚刚创建的图集'testGoSDK'
        resp1, _ := conn.DropGraph("testGoSDK", nil)
        fmt.Println(resp1.Status)
      
      }
      
      请完成以下信息后可下载此书
      *
      公司名称不能为空
      *
      公司邮箱必须填写
      *
      你的名字必须填写
      *
      你的电话必须填写
      *
      你的电话必须填写