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

v4.5
Search
    Français
    v4.5

      Insertion et Suppression de Données

      Cette section présente des méthodes sur un objet Connection pour insérer des nodes et des edges dans le graph ou supprimer des nodes et des edges du graphset.

      Chaque exemple se concentre uniquement sur l'utilisation de la méthode. Pour un exemple complet de code, veuillez vous référer à l'exemple complet.

      Modèle de Données de Graph Exemple

      Les exemples ci-dessous démontrent comment insérer ou supprimer des nodes ou edges d'un graphset avec les définitions de schema et de property suivantes :

      Mappage des Types de Property

      Lorsque vous insérez des nodes ou edges, vous devrez peut-être spécifier des valeurs de property de différents types. Le mappage entre les types de properties Ultipa et les types de données Python/Driver est le suivant :

      Type de Property Ultipa Type Python/Driver
      int32 int
      uint32 int
      int64 int
      uint64 int
      float float
      double float
      decimal float
      string str
      text str
      datetime str[1]
      timestamp str[1], int
      point str
      blob bytes
      list list
      set set

      [1] Les formats de chaînes de date pris en charge lors de l'insertion par lot incluent [AA]AA-MM-DD HH:MM:SS, [AA]AA-MM-DD HH:MM:SSZ, [AA]AA-MM-DDTHH:MM:SSZ, [AA]AA-MM-DDTHH:MM:SSXX, [AA]AA-MM-DDTHH:MM:SSXXX, [AA]AA-MM-DD HH:MM:SS.SSS et leurs variations.

      Insertion

      insertNodes()

      Insère de nouveaux nodes d'un schema dans le graph actuel.

      Paramètres :

      • List[Node] : La liste des objets Node à insérer.
      • str : Nom du schema.
      • InsertRequestConfig (Optionnel) : Paramètres de configuration pour la requête.

      Retourne :

      • ResponseInsertNode : Résultat de la requête. L'objet ResponseInsertNode contient un alias nodes qui contient tous les nodes insérés lorsque InsertRequestConfig.silent est réglé sur faux.

      # Insère deux nodes dans le schema 'user' dans le graphset 'lcc', imprime le code d'erreur et les informations des nodes insérés
      
      insertRequestConfig = InsertRequestConfig(
          insertType=InsertType.NORMAL,
          graphName="lcc",
          silent=False
      )
      
      nodes = [
          Node(uuid=1, id="U001", values={
              "name": "Alice",
              "age": 18,
              "score": 65.32,
              "birthday": "1993-5-4",
              "location": "point({latitude: 132.1, longitude: -1.5})",
              "profile": "castToRaw(abc)",
              "interests": ["tennis", "violin"],
              "permissionCodes": [2004, 3025, 1025]
          }),
          Node(uuid=2, id="U002", values={
              "name": "Bob"
          })
      ]
      
      response = Conn.insertNodes(nodes, "user", insertRequestConfig)
      print(response.status.code)
      # Il n'y a pas d'alias dans ResponseInsertNode si InsertRequestConfig.silent est vrai
      insertedNodes = response.alias("nodes").asNodes()
      for insertedNode in insertedNodes:
          print(insertedNode.toJSON())
      

      0
      {"id": "U001", "schema": "user", "uuid": 1, "values": {"age": 18, "birthday": "1993-05-04 00:00:00", "interests": ["tennis", "violin"], "location": "POINT(132.100000 -1.500000)", "name": "Alice", "permissionCodes": [3025, 2004, 1025], "profile": [99, 97, 115, 116, 84, 111, 82, 97, 119, 40, 97, 98, 99, 41], "score": "65.3200000000"}}
      {"id": "U002", "schema": "user", "uuid": 2, "values": {"age": null, "birthday": null, "interests": null, "location": null, "name": "Bob", "permissionCodes": null, "profile": null, "score": null}}
      

      insertEdges()

      Insère de nouveaux edges d'un schema dans le graph actuel.

      Paramètres :

      • List[Edge] : La liste des objets Edge à insérer.
      • str : Nom du schema.
      • InsertRequestConfig (Optionnel) : Paramètres de configuration pour la requête.

      Retourne :

      • ResponseInsertEdge : Résultat de la requête. L'objet ResponseInsertEdge contient un alias edges qui contient tous les edges insérés lorsque InsertRequestConfig.silent est réglé sur faux.

      # Insère deux edges dans le schema 'follows' dans le graphset 'lcc', imprime le code d'erreur et les informations des edges insérés
      
      insertRequestConfig = InsertRequestConfig(
          insertType=InsertType.NORMAL,
          graphName="lcc",
          silent=False
      )
      
      edges = [
          Edge(uuid=1, from_id="U001", to_id="U002", values={"createdOn": "2024-5-6"}),
          Edge(uuid=2, from_id="U002", to_id="U001", values={"createdOn": 1715169600})
      ]
      
      response = Conn.insertEdges(edges, "follows", insertRequestConfig)
      print(response.status.code)
      # Il n'y a pas d'alias dans ResponseInsertEdge si InsertRequestConfig.silent est vrai
      insertedEdges = response.alias("edges").asEdges()
      for insertedEdge in insertedEdges:
          print(insertedEdge.toJSON())
      

      0
      {"from_id": "U001", "from_uuid": 1, "schema": "follows", "to_id": "U002", "to_uuid": 2, "uuid": 1, "values": {"createdOn": 1714924800}}
      {"from_id": "U002", "from_uuid": 2, "schema": "follows", "to_id": "U001", "to_uuid": 1, "uuid": 2, "values": {"createdOn": 1715169600}}
      

      insertNodesBatchBySchema()

      Insère de nouveaux nodes d'un schema dans le graph actuel via gRPC. Les properties au sein des valeurs des nodes doivent être cohérentes avec celles déclarées dans la structure du schema.

      Paramètres :

      • Schema : Le schema cible.
      • List[Node] : La liste des objets Node à insérer.
      • InsertRequestConfig (Optionnel) : Paramètres de configuration pour la requête.

      Retourne :

      • InsertResponse : Résultat de la requête. InsertResponse.data.uuids contient les UUIDs des nodes insérés lorsque InsertRequestConfig.silent est réglé sur faux.

      # Insère deux nodes dans le schema 'user' dans le graphset 'lcc', imprime le code d'erreur et les UUIDs des nodes insérés
      
      insertRequestConfig = InsertRequestConfig(
          insertType=InsertType.NORMAL,
          graphName="lcc",
          silent=False
      )
      
      schema = Schema(
          name="user",
          dbType=DBType.DBNODE,
          properties=[
              Property(name="name", type=PropertyType.PROPERTY_STRING),
              Property(name="age", type=PropertyType.PROPERTY_INT32),
              Property(name="score", type=PropertyType.PROPERTY_DECIMAL),
              Property(name="birthday", type=PropertyType.PROPERTY_DATETIME),
              Property(name="location", type=PropertyType.PROPERTY_POINT),
              Property(name="profile", type=PropertyType.PROPERTY_BLOB),
              Property(name="interests", type=PropertyType.PROPERTY_LIST, subTypes=[PropertyType.PROPERTY_STRING]),
              Property(name="permissionCodes", type=PropertyType.PROPERTY_SET, subTypes=[PropertyType.PROPERTY_INT32])
          ]
      )
      
      nodes = [
          Node(uuid=1, id="U001", values={
              "name": "Alice",
              "age": 18,
              "score": 65.32,
              "birthday": "1993-5-4",
              "location": "point({latitude: 132.1, longitude: -1.5})",
              "profile": b"abc",
              "interests": ["tennis", "violin"],
              "permissionCodes": {2004, 3025, 1025}
          }),
          Node(uuid=2, id="U002", values={
              "name": "Bob",
              "age": None,
              "score": None,
              "birthday": None,
              "location": None,
              "profile": None,
              "interests": None,
              "permissionCodes": None
          })
      ]
      
      response = Conn.insertNodesBatchBySchema(schema, nodes, insertRequestConfig)
      print(response.status.code)
      # InsertResponse.data.uuids est vide si InsertRequestConfig.silent est vrai
      print(response.data.uuids)
      

      0
      [1, 2]
      

      insertEdgesBatchBySchema()

      Insère de nouveaux edges d'un schema dans le graph actuel via gRPC. Les properties au sein des valeurs des edges doivent être cohérentes avec celles déclarées dans la structure du schema.

      Paramètres :

      • Schema : Le schema cible.
      • List[Edge] : La liste des objets Edge à insérer.
      • InsertRequestConfig (Optionnel) : Paramètres de configuration pour la requête.

      Retourne :

      • InsertResponse : Résultat de la requête. InsertResponse.data.uuids contient les UUIDs des edges insérés lorsque InsertRequestConfig.silent est réglé sur faux.

      # Insère deux edges dans le schema 'follows' dans le graphset 'lcc', imprime le code d'erreur et les UUIDs des edges insérés
      
      insertRequestConfig = InsertRequestConfig(
          insertType=InsertType.NORMAL,
          graphName="lcc",
          silent=False
      )
      
      schema = Schema(
          name="follows",
          dbType=DBType.DBEDGE,
          properties=[
              Property(name="createdOn", type=PropertyType.PROPERTY_TIMESTAMP)
          ]
      )
      
      edges = [
          Edge(uuid=1, from_id="U001", to_id="U002", values={"createdOn": "2024-05-06"}),
          Edge(uuid=2, from_id="U002", to_id="U001", values={"createdOn": None}),
      ]
      
      response = Conn.insertEdgesBatchBySchema(schema, edges, insertRequestConfig)
      print(response.status.code)
      
      # InsertResponse.data.uuids est vide si InsertRequestConfig.silent est vrai
      print(response.data.uuids)
      

      0
      [1,2]
      

      insertNodesBatchAuto()

      Insère de nouveaux nodes d'un ou plusieurs schemas dans le graph actuel via gRPC. Les properties dans les valeurs des nodes doivent être cohérentes avec celles définies dans la structure du schema correspondant.

      Paramètres :

      • List[Node] : La liste des objets Node à insérer.
      • InsertRequestConfig (Optionnel) : Paramètres de configuration pour la requête.

      Retourne :

      • ResponseBatchAutoInsert : Résultat de la requête. ResponseBatchAutoInsert.data.uuids contient le rapport d'insertion lorsque InsertRequestConfig.silent est réglé sur faux.

      # Insère deux nodes dans le schema 'user' et un node dans le schema `product` dans le graphset 'lcc', imprime le code d'erreur et la réponse d'insertion
      
      insertRequestConfig = InsertRequestConfig(
          insertType=InsertType.NORMAL,
          graphName="lcc",
          silent=False
      )
      
      nodes = [
          Node(schema="user", uuid=1, id="U001", values={
              "name": "Alice",
              "age": 18,
              "score": 65.32,
              "birthday": "1993-5-4",
              "location": "point({latitude: 132.1, longitude: -1.5})",
              "profile": b"abc",
              "interests": ["tennis", "violin"],
              "permissionCodes": {2004, 3025, 1025}
          }),
          Node(schema="user", uuid=2, id="U002", values={
              "name": "Bob",
              "age": None,
              "score": None,
              "birthday": None,
              "location": None,
              "profile": None,
              "interests": None,
              "permissionCodes": None
          }),
          Node(schema="product", uuid=3, id="P001", values={
              "name": "Wireless Earbud",
              "price": 93.2
          })
      ]
      
      response = Conn.insertNodesBatchAuto(nodes, insertRequestConfig)
      print(response.status.code)
      # Response.data.uuids est vide si InsertRequestConfig.silent est vrai
      print(response.data.uuids)
      

      0
      [1, 2, 3]
      

      insertEdgesBatchAuto()

      Insère de nouveaux edges d'un ou plusieurs schemas dans le graph actuel via gRPC. Les properties dans les valeurs des edges doivent être cohérentes avec celles définies dans la structure du schema correspondant.

      Paramètres :

      • List[Edge] : La liste des objets Edge à insérer.
      • InsertRequestConfig (Optionnel) : Paramètres de configuration pour la requête.

      Retourne :

      • ResponseBatchAutoInsert : Résultat de la requête. ResponseBatchAutoInsert.data.uuids contient le rapport d'insertion lorsque InsertRequestConfig.silent est réglé sur faux.

      # Insère deux edges dans le schema 'follows' et un edge dans le schema 'purchased' dans le graphset 'lcc', imprime le code d'erreur et la réponse d'insertion
      
      insertRequestConfig = InsertRequestConfig(
          insertType=InsertType.NORMAL,
          graphName="lcc",
          silent=False
      )
      
      edges = [
          Edge(schema="follows", uuid=1, from_id="U001", to_id="U002", values={"createdOn": "2024-05-06"}),
          Edge(schema="follows", uuid=2, from_id="U002", to_id="U001", values={"createdOn": 1715169600}),
          Edge(schema="purchased", uuid=3, from_id="U002", to_id="P001", values={"qty": 1})
      ]
      
      response = Conn.insertEdgesBatchAuto(edges, insertRequestConfig)
      print(response.status.code)
      # Response.data.uuids est vide si InsertRequestConfig.silent est vrai
      print(response.data.uuids)
      

      0
      [1, 2, 3]
      

      Suppression

      deleteNodes()

      Supprime les nodes qui répondent aux conditions données du graph actuel. Il est important de noter que la suppression d'un node entraîne la suppression de tous les edges qui y sont connectés.

      Paramètres :

      • str : La condition de filtrage pour spécifier les nodes à supprimer.
      • InsertRequestConfig (Optionnel) : Paramètres de configuration pour la requête.

      Retourne :

      • ResponseDeleteNode : Résultat de la requête. L'objet ResponseDeleteNode contient un alias nodes qui contient tous les nodes supprimés lorsque InsertRequestConfig.silent est réglé sur faux.

      # Supprime un @user node dont le nom est 'Alice' du graphset 'lcc', imprime le code d'erreur et les informations des nodes supprimés
      # Tous les edges attachés au node supprimé sont également supprimés
      
      insertRequestConfig = InsertRequestConfig(
          insertType=InsertType.NORMAL,
          graphName="lcc",
          silent=False
      )
      
      response = Conn.deleteNodes("{@user.name == 'Alice'}", insertRequestConfig)
      print(response.status.code)
      # Il n'y a pas d'alias dans ResponseDeleteNode si InsertRequestConfig.silent est vrai
      deletedNodes = response.alias("nodes").asNodes()
      for deletedNode in deletedNodes:
          print(deletedNode.toJSON())
      

      0
      {"id": "U001", "schema": "user", "uuid": 1, "values": {"name": "Alice"}}
      

      deleteEdges()

      Supprime les edges qui répondent aux conditions données du graph actuel.

      Paramètres :

      • str : La condition de filtrage pour spécifier les edges à supprimer.
      • InsertRequestConfig (Optionnel) : Paramètres de configuration pour la requête.

      Retourne :

      • ResponseDeleteEdge : Résultat de la requête. L'objet ResponseDeleteEdge contient un alias edges qui contient tous les edges supprimés lorsque InsertRequestConfig.silent est réglé sur faux.

      # Supprime tous les @purchased edges du graphset 'lcc', imprime le code d'erreur et les informations des edges supprimés
      
      insertRequestConfig = InsertRequestConfig(
          insertType=InsertType.NORMAL,
          graphName="lcc",
          silent=False
      )
      
      response = Conn.deleteEdges("{@purchased}", insertRequestConfig)
      print(response.status.code)
      # Il n'y a pas d'alias dans ResponseDeleteEdge si InsertRequestConfig.silent est vrai
      deletedEdges = response.alias("edges").asEdges()
      for deletedEdge in deletedEdges:
          print(deletedEdge.toJSON())
      

      0
      {"from_id": "U002", "from_uuid": 2, "schema": "purchased", "to_id": "P001", "to_uuid": 3, "uuid": 3, "values": {}}
      

      Exemple Complet

      from ultipa.configuration.InsertRequestConfig import InsertRequestConfig
      from ultipa import Connection, UltipaConfig, Node
      from ultipa.structs import InsertType
      
      ultipaConfig = UltipaConfig()
      # URI example: ultipaConfig.hosts = ["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)
      
      # Paramètres de requêtes
      insertRequestConfig = InsertRequestConfig(
          insertType=InsertType.NORMAL,
          graphName="lcc",
          silent=False
      )
      
      # Insère deux nodes dans le schema 'user' et un node dans le schema `product` dans le graphset 'lcc', imprime le code d'erreur et la réponse d'insertion
      
      nodes = [
          Node(schema="user", uuid=1, id="U001", values={
              "name": "Alice",
              "age": 18,
              "score": 65.32,
              "birthday": "1993-5-4",
              "location": "point({latitude: 132.1, longitude: -1.5})",
              "profile": b"abc",
              "interests": ["tennis", "violin"],
              "permissionCodes": {2004, 3025, 1025}
          }),
          Node(schema="user", uuid=2, id="U002", values={
              "name": "Bob",
              "age": None,
              "score": None,
              "birthday": None,
              "location": None,
              "profile": None,
              "interests": None,
              "permissionCodes": None
          }),
          Node(schema="product", uuid=3, id="P001", values={
              "name": "Wireless Earbud",
              "price": 93.2
          })
      ]
      
      response = Conn.insertNodesBatchAuto(nodes, insertRequestConfig)
      print(response.status.code)
      # Response.data.uuids est vide si InsertRequestConfig.silent est vrai
      print(response.data.uuids)
      
      Please complete the following information to download this book
      *
      公司名称不能为空
      *
      公司邮箱必须填写
      *
      你的名字必须填写
      *
      你的电话必须填写