Change Password

Please enter the password.
Please enter the password. Between 8-64 characters. Not identical to your email address. Contain at least 3 of: uppercase, lowercase, numbers, and special characters.
Please enter the password.
Submit

Change Nickname

Current Nickname:
Submit

Apply New License

License Detail

Please complete this required field.

  • Ultipa Graph V4

Standalone

Please complete this required field.

Please complete this required field.

The MAC address of the server you want to deploy.

Please complete this required field.

Please complete this required field.

Cancel
Apply
ID
Product
Status
Cores
Applied Validity Period(days)
Effective Date
Excpired Date
Mac Address
Apply Comment
Review Comment
Close
Profile
  • Full Name:
  • Phone:
  • Company:
  • Company Email:
  • Country:
  • Language:
Change Password
Apply

You have no license application record.

Apply
Certificate Issued at Valid until Serial No. File
Serial No. Valid until File

Not having one? Apply now! >>>

Product Created On ID Amount (USD) Invoice
Product Created On ID Amount (USD) Invoice

No Invoice

v5.0
Search
    English
    v5.0

      Data Insertion

      This section introduces methods for the insertion of nodes and edges.

      Graph Structure

      The examples in this section demonstrate the insertion and deletion of nodes and edges in a graph based on the following schema and property definitions:

      insertNodes()

      Inserts nodes to a schema in the graph.

      Parameters

      • nodes: List[Node]: The list of nodes to be inserted; the attribute uuid of each Node cannot be set.
      • schemaName: str: Schema name.
      • InsertRequestConfig (Optional): Request configuration.

      Returns

      • Response: Response of the request.

      # Inserts two 'user' nodes into the graph 'social'
      
      insertRequestConfig = InsertRequestConfig(graph="social")
      
      nodes = [
          Node(id="U1", values={
              "name": "Alice",
              "age": 18,
              "score": 65.32,
              "birthday": "1993-5-4",
              "active": 0,
              "location": "point({latitude: 132.1, longitude: -1.5})",
              "profile": "castToRaw(abc)",
              "interests": ["tennis", "violin"],
              "permissionCodes": [2004, 3025, 1025]
          }),
          Node(id="U2", values={
              "name": "Bob"
          })
      ]
      
      response = Conn.insertNodes(nodes, "user", insertRequestConfig)
      if response.status.code.name == "SUCCESS":
          print(response.status.code.name)
      else:
          print(response.status.message)
      

      SUCCESS
      

      insertEdges()

      Inserts edges to a schema in the graph.

      Parameters

      • edges: List[Edge]: The list of edges to be inserted; the attributes fromId and toId of each Edge are mandatory, uuid, fromUuid, and toUuid cannot be set.
      • schemaName: str: Schema name.
      • InsertRequestConfig (Optional): Request configuration.

      Returns

      • Response: Response of the request.

      # Inserts two 'follows' edges to the graph 'social'
      
      insertRequestConfig = InsertRequestConfig(graph="social")
      
      edges = [
          Edge(fromId="U1", toId="U2", values={"createdOn": "2024-5-6", "weight": 3.2}),
          Edge(fromId="U2", toId="U1", values={"createdOn": 1715169600})
      ]
      
      response = Conn.insertEdges(edges, "follows", insertRequestConfig)
      if response.status.code.name == "SUCCESS":
          print(response.status.code.name)
      else:
          print(response.status.message)
      

      SUCCESS
      

      insertNodesBatchBySchema()

      Inserts nodes to a schema in the graph through gRPC. This method is optimized for bulk insertion and requires each Node.values has the same structure with the provided Schema.properties.

      Parameters

      • schema: Schema: The target schema; the attributes name and dbType are mandatory, properties should include some or all properties.
      • nodes: List[Node]: The list of nodes to be inserted; the attribute uuid of each Node cannot be set, values must have the same structure with Schema.properties.
      • InsertRequestConfig (Optional): Request configuration.

      Returns

      • InsertResponse: Response of the insertion request.

      # Inserts two 'user' nodes into the graph 'social'
      
      insertRequestConfig = InsertRequestConfig(graph="social")
      
      schema = Schema(
          name="user",
          dbType=DBType.DBNODE,
          properties=[
              Property(name="name", type=UltipaPropertyType.STRING),
              Property(name="age", type=UltipaPropertyType.INT32),
              Property(name="score", type=UltipaPropertyType.DECIMAL),
              Property(name="birthday", type=UltipaPropertyType.DATETIME),
              Property(name="active", type=UltipaPropertyType.BOOL),
              Property(name="location", type=UltipaPropertyType.POINT),
              Property(name="profile", type=UltipaPropertyType.BLOB),
              Property(name="interests", type=UltipaPropertyType.LIST, subType=[UltipaPropertyType.STRING]),
              Property(name="permissionCodes", type=UltipaPropertyType.SET, subType=[UltipaPropertyType.INT32])
          ]
      )
      
      nodes = [
          Node(id="U1", values={
              "name": "Alice",
              "age": 18,
              "score": 65.32,
              "birthday": "1993-5-4",
              "active": 0,
              "location": "point({latitude: 132.1, longitude: -1.5})",
              "profile": "castToRaw(abc)",
              "interests": ["tennis", "violin"],
              "permissionCodes": [2004, 3025, 1025]
          }),
          Node(id="U2", values={
              "name": "Bob",
              "age": None,
              "score": None,
              "birthday": None,
              "active": None,
              "location": None,
              "profile": None,
              "interests": None,
              "permissionCodes": None
          })
      ]
      
      insertResponse = Conn.insertNodesBatchBySchema(schema, nodes, insertRequestConfig)
      if insertResponse.errorItems:
          print("Error items:", insertResponse.errorItems)
      else:
          print("All nodes inserted successfully")
      

      All nodes inserted successfully
      

      insertEdgesBatchBySchema()

      Inserts edges to a schema in the graph through gRPC. This method is optimized for bulk insertion and requires each each Edge.values has the same structure with the provided Schema.properties.

      Parameters

      • schema: Schema: The target schema; the attributes name and dbType are mandatory, properties should include some or all properties.
      • edges: List[Edge]: The list of edges to be inserted; the attributes fromId and toId of each Edge are mandatory, uuid, fromUuid, and toUuid cannot be set, values must have the same structure with Schema.properties.
      • InsertRequestConfig (Optional): Request configuration.

      Returns

      • InsertResponse: Response of the insertion request.

      # Inserts two 'follows' edges into the graph 'social'
      
      insertRequestConfig = InsertRequestConfig(graph="social")
      
      schema = Schema(
          name="follows",
          dbType=DBType.DBEDGE,
          properties=[
              Property(name="createdOn", type=UltipaPropertyType.TIMESTAMP),
              Property(name="weight", type=UltipaPropertyType.FLOAT)
          ]
      )
      
      edges = [
          Edge(fromId="U1", toId="U2", values={"createdOn": "2024-5-6", "weight": 3.2}),
          Edge(fromId="U2", toId="U1", values={"createdOn": 1715169600, "weight": None})
      ]
      
      insertResponse = Conn.insertEdgesBatchBySchema(schema, edges, insertRequestConfig)
      if insertResponse.errorItems:
          print("Error items:", insertResponse.errorItems)
      else:
          print("All edges inserted successfully")
      

      All edges inserted successfully
      

      insertNodesBatchAuto()

      Inserts nodes to one or multipe schemas in the graph through gRPC. This method is optimized for bulk insertion and requires all Nodes of the same schema have the same values structure.

      Parameters

      • nodes: List[Node]: The list of nodes to be inserted; the attribute uuid of each Node cannot be set, schema is mandatory, all Nodes of the same schema have the same values structure.
      • InsertRequestConfig (Optional): Request configuration.

      Returns

      • Dict[str,InsertResponse]: The schema name, and response of the insertion request.

      # Inserts two 'user' nodes and a 'product' node into the graph 'social'
      
      insertRequestConfig = InsertRequestConfig(graph="social")
      
      nodes = [
          Node(id="U1", schema="user", values={
              "name": "Alice",
              #"age": 18,
              "score": 65.32,
              "birthday": "1993-5-4",
              "active": True,
              "location": "point({latitude: 132.1, longitude: -1.5})",
              "profile": "castToRaw(abc)",
              "interests": ["tennis", "violin"],
              "permissionCodes": [2004, 3025, 1025]
          }),
          Node(id="U2", schema="user", values={
              "name": "Bob",
              #"age": None,
              "score": None,
              "birthday": None,
              "active": None,
              "location": None,
              "profile": None,
              "interests": None,
              "permissionCodes": None
          }),
          Node(schema="product", values={
              "name": "Wireless Earbud",
              "price": 93.2
          })
      ]
      
      result = Conn.insertNodesBatchAuto(nodes, insertRequestConfig)
      for schemaName, insertResponse in result.items():
          if insertResponse.errorItems:
              print("Error items of", schemaName, "nodes:", insertResponse.errorItems)
          else:
              print("All", schemaName, "nodes inserted successfully")
      

      All user nodes inserted successfully
      All product nodes inserted successfully
      

      insertEdgesBatchAuto()

      Inserts edges to one or multipe schemas in the graph through gRPC. This method is optimized for bulk insertion and requires all Edges of the same schema have the same values structure.

      Parameters

      • edges: List[Edge]: The list of edges to be inserted; the attributes fromId and toId of each Edge are mandatory, uuid, fromUuid, and toUuid cannot be set, schema is mandatory, all Edges of the same schema have the same values structure.
      • InsertRequestConfig (Optional): Request configuration.

      Returns

      • Dict[str,InsertResponse]: The schema name, and response of the insertion request.

      # Inserts two 'follows' edges and a 'purchased' edge into the graph 'social'
      
      insertRequestConfig = InsertRequestConfig(graph="social")
      
      edges = [
          Edge(schema="follows", fromId="U1", toId="U2", values={"createdOn": "2024-05-06", "weight": 3.2}),
          Edge(schema="follows", fromId="U2", toId="U1", values={"createdOn": 1715169600, "weight": None}),
          Edge(schema="purchased", fromId="U2", toId="67da1ae90000020020000013", values={})
      ]
      
      result = Conn.insertEdgesBatchAuto(edges, insertRequestConfig)
      for schemaName, insertResponse in result.items():
          if insertResponse.errorItems:
              print("Error items of", schemaName, "edges:", insertResponse.errorItems)
          else:
              print("All", schemaName, "edges inserted successfully")
      

      All follows edges inserted successfully
      All purchased edges inserted successfully
      

      Full Example

      from ultipa import UltipaConfig, Connection, InsertRequestConfig, Node
      
      ultipaConfig = UltipaConfig()
      # URI example: ultipaConfig.hosts = ["https://mqj4zouys.us-east-1.cloud.ultipa.com:60010"]
      ultipaConfig.hosts = ["192.168.1.85:60061", "192.168.1.87:60061", "192.168.1.88:60061"]
      ultipaConfig.username = "<username>"
      ultipaConfig.password = "<password>"
      
      Conn = Connection.NewConnection(defaultConfig=ultipaConfig)
      
      # Inserts two 'user' nodes, a 'product' node, two 'follows' edges, and a 'purchased' edge into the graph 'social'
      
      insertRequestConfig = InsertRequestConfig(graph="social")
      
      nodes = [
          Node(id="U1", schema="user", values={
              "name": "Alice",
              #"age": 18,
              "score": 65.32,
              "birthday": "1993-5-4",
              "active": True,
              "location": "point({latitude: 132.1, longitude: -1.5})",
              "profile": "castToRaw(abc)",
              "interests": ["tennis", "violin"],
              "permissionCodes": [2004, 3025, 1025]
          }),
          Node(id="U2", schema="user", values={
              "name": "Bob",
              #"age": None,
              "score": None,
              "birthday": None,
              "active": None,
              "location": None,
              "profile": None,
              "interests": None,
              "permissionCodes": None
          }),
          Node(id="P1", schema="product", values={
              "name": "Wireless Earbud",
              "price": 93.2
          })
      ]
      
      edges = [
          Edge(schema="follows", fromId="U1", toId="U2", values={"createdOn": "2024-05-06", "weight": 3.2}),
          Edge(schema="follows", fromId="U2", toId="U1", values={"createdOn": 1715169600, "weight": None}),
          Edge(schema="purchased", fromId="U2", toId="P1", values={})
      ]
      
      result_n = Conn.insertNodesBatchAuto(nodes, insertRequestConfig)
      for schemaName, insertResponse in result_n.items():
          if insertResponse.errorItems:
              print("Error items of", schemaName, "nodes:", insertResponse.errorItems)
          else:
              print("All", schemaName, "nodes inserted successfully")
      
      result_e = Conn.insertEdgesBatchAuto(edges, insertRequestConfig)
      for schemaName, insertResponse in result_e.items():
          if insertResponse.errorItems:
              print("Error items of", schemaName, "edges:", insertResponse.errorItems)
          else:
              print("All", schemaName, "edges inserted successfully")
      
      Please complete the following information to download this book
      *
      公司名称不能为空
      *
      公司邮箱必须填写
      *
      你的名字必须填写
      *
      你的电话必须填写