修改密码

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

搜索
    中文

      批量插入

      数据类型

      Ultipa 属性与 Go 数据类型的对应关系:

      Ultipa Go
      string string
      text string
      float float32
      double float64
      int32 int32
      uint32 uint32
      int64 int64
      uint64 uint64
      datetime interface{}
      timestamp interface{}

      可以使用 utils.StringAsInterface(str string, t ultipa.PropertyType) (interface{}, error) 将数据的字符串形式转为相应的 Ultipa 属性类型。

      需注意,string 中的数据格式如果与 ultipa.PropertyType 不一致,转换会失败。例如:

      • abc 转为 ultipa.PropertyType_INT32 时,由于 'abc' 不是数字,转换会失败;
      • 2020-1-3 3:34:1 转为 ultipa.PropertyType_datetime 时,由于时间格式未遵守 'yyyy-mm-dd hh:mm:ss',转换会失败。

      InsertNodesBatchBySchema()

      InsertNodesBatchBySchema() 可以为某一个点 schema 导入多条数据,需保证数据携带的属性与声明 schema 时携带的属性一致。

      方法及相关类:

      InsertNodesBatchBySchema(schema *structs.Schema, 
      						 rows []*structs.Node, 
                               config *configuration.InsertRequestConfig
      ) (*http.InsertResponse, error)
      
      Schema struct {
      	Name       string
      	Properties []*Property
      	Desc       string
      	Type       string
      	DBType     ultipa.DBType
      	Total      int
      }
      
      Property struct {
      	Name   string
      	Desc   string
      	Lte    bool
      	Schema string
      	Type   ultipa.PropertyType
      }
      
      Node struct {
      	Name   string
      	ID     types.ID
      	UUID   types.UUID
      	Schema string
      	Values *Values
      }
      

      示例:为图集 test 的点 schema 'customer' 插入多条数据,采用普通插入模式

      func TestMisc(t *testing.T) {
          // 创建名为 conn 的连接并使用 default 图集,此部分代码省略
        
      	schema := &structs.Schema{
      		Name:   "customer",
      		DBType: ultipa.DBType_DBNODE,
      		Properties: []*structs.Property{
      			{
      				Name: "name",
      				Type: ultipa.PropertyType_STRING,
      			},
      			{
      				Name: "age",
      				Type: ultipa.PropertyType_INT32,
      			},
      		},
      	}
      
      	var nodes []*structs.Node
      
      	node1 := structs.NewNode()
      	node1.Set("name", "Paal")
      	node1.Set("age", int32(34))
      	nodes = append(nodes, node1)
      
      	node2 := structs.NewNode()
      	node2.Set("name", "Alice")
      	node2.Set("age", int32(23))
      	nodes = append(nodes, node2)
      
      	_, err := conn.InsertNodesBatchBySchema(schema, nodes, &configuration.InsertRequestConfig{
      		RequestConfig: &configuration.RequestConfig{
      			GraphName: "test",
      		},
      		InsertType: ultipa.InsertType_NORMAL,
      	})
      
      	if err != nil {
      		log.Fatalln(err)
      	}  
      }
      

      InsertNodesBatchAuto()

      InsertNodesBatchAuto() 可以同时为多个点 schema 导入多条数据,需保证数据携带 schema,且携带的属性与图集中该 schema 的属性一致。

      方法及相关类:

      InsertNodesBatchAuto(nodes []*structs.Node, 
      					 config *configuration.InsertRequestConfig
      ) (*http.InsertBatchAutoResponse, error)
      
      Node struct {
      	Name   string
      	ID     types.ID
      	UUID   types.UUID
      	Schema string
      	Values *Values
      }
      

      示例:为图集 test 的多个点 schema 插入多条数据,采用插入更新模式

      func TestMisc(t *testing.T) {
          // 创建名为 conn 的连接并使用 default 图集,此部分代码省略
        
      	var nodes []*structs.Node
      
      	node1 := structs.NewNode()
      	node1.Schema = "customer"
      	node1.ID = "ULTIPA8000000000000029"
      	node1.Set("name", "Paal")
      	node1.Set("age", int32(36))
      	nodes = append(nodes, node1)
      
      	node2 := structs.NewNode()
      	node2.Schema = "card"
      	node2.Set("balance", float32(25756.27))
      	nodes = append(nodes, node2)
      
      	_, err := conn.InsertNodesBatchAuto(nodes, &configuration.InsertRequestConfig{
      		RequestConfig: &configuration.RequestConfig{
      			GraphName: "test",
      		},
      		InsertType: ultipa.InsertType_UPSERT,
      	})
      
      	if err != nil {
      		log.Fatalln(err)
      	}
      }
      

      InsertEdgesBatchBySchema()

      InsertEdgesBatchBySchema() 可以为某一个边 schema 导入多条数据,需保证数据携带的属性与声明 schema 时携带的属性一致。

      方法及相关类:

      InsertEdgesBatchBySchema(schema *structs.Schema, 
      						 rows []*structs.Edge, 
                               config *configuration.InsertRequestConfig
      ) (*http.InsertResponse, error)
      
      Schema struct {
      	Name       string
      	Properties []*Property
      	Desc       string
      	Type       string
      	DBType     ultipa.DBType
      	Total      int
      }
      
      Property struct {
      	Name   string
      	Desc   string
      	Lte    bool
      	Schema string
      	Type   ultipa.PropertyType
      }
      
      Edge struct {
      	Name     string
      	From     types.ID
      	To       types.ID
      	FromUUID types.UUID
      	ToUUID   types.UUID
      	UUID     types.UUID
      	Schema   string
      	Values   *Values
      }
      

      示例:为图集 test 的边 schema 'transfer' 插入多条数据,采用普通插入模式,允许自动插入点的起点/终点

      func TestMisc(t *testing.T) {
          // 创建名为 conn 的连接并使用 default 图集,此部分代码省略
        
      	schema := &structs.Schema{
      		Name:   "transfer",
      		DBType: ultipa.DBType_DBEDGE,
      		Properties: []*structs.Property{
      			{
      				Name: "amount",
      				Type: ultipa.PropertyType_FLOAT,
      			},
      		},
      	}
      
      	var edges []*structs.Edge
      
      	edge1 := structs.NewEdge()
      	edge1.From = "ULTIPA8000000000000002"
      	edge1.To = "ULTIPA8000000000000003"
      	edge1.Set("amount", float32(2500))
      	edges = append(edges, edge1)
      
      	edge2 := structs.NewEdge()
      	edge2.From = "ULTIPA8000000000000007"
      	edge2.To = "ULTIPA8000000000000005"
      	edge2.Set("amount", float32(125.5))
      	edges = append(edges, edge2)
      
      	_, err := conn.InsertEdgesBatchBySchema(schema, edges, &configuration.InsertRequestConfig{
      		RequestConfig: &configuration.RequestConfig{
      			GraphName: "test",
      		},
      		InsertType: ultipa.InsertType_NORMAL,
              CreateNodeIfNotExist: true,
      	})
      
      	if err != nil {
      		log.Fatalln(err)
      	}
      

      InsertEdgesBatchAuto()

      InsertEdgesBatchAuto() 可以同时为多个边 schema 导入多条数据,需保证数据携带 schema,且携带的属性与图集中该 schema 的属性一致。

      方法及相关类:

      InsertEdgesBatchAuto(edges []*structs.Edge, 
      					 config *configuration.InsertRequestConfig
      ) (*http.InsertBatchAutoResponse, error)
      
      Edge struct {
      	Name     string
      	From     types.ID
      	To       types.ID
      	FromUUID types.UUID
      	ToUUID   types.UUID
      	UUID     types.UUID
      	Schema   string
      	Values   *Values
      }
      

      示例:为图集 test 的多个边 schema 插入多条数据,采用插入覆盖模式,允许自动插入点的起点/终点

      func TestMisc(t *testing.T) {
          // 创建名为 conn 的连接并使用 default 图集,此部分代码省略
        
      	var edges []*structs.Edge
      
      	edge1 := structs.NewEdge()
      	edge1.Schema = "transfer"
      	edge1.UUID = uint64(27)
      	edge1.From = "ULTIPA8000000000000002"
      	edge1.To = "ULTIPA8000000000000003"
      	edge1.Set("amount", float32(245.4))
      	edges = append(edges, edge1)
      
      	edge2 := structs.NewEdge()
      	edge2.Schema = "default"
      	edge2.From = "ULTIPA800000000000001A"
      	edge2.To = "ULTIPA800000000000001B"
      	edges = append(edges, edge2)
      
      	_, err := conn.InsertEdgesBatchAuto(edges, &configuration.InsertRequestConfig{
      		RequestConfig: &configuration.RequestConfig{
      			GraphName: "test",
      		},
      		InsertType: ultipa.InsertType_OVERWRITE,
              CreateNodeIfNotExist: true,
      	})
      
      	if err != nil {
      		log.Fatalln(err)
      	}
      }
      
      请完成以下信息后可下载此书
      *
      公司名称不能为空
      *
      公司邮箱必须填写
      *
      你的名字必须填写
      *
      你的电话必须填写
      *
      你的电话必须填写