Cette section présente des méthodes sur un objet Connection
pour gérer les graphsets dans la base de données.
Chaque exemple se concentre uniquement sur l'utilisation de la méthode. Pour un exemple de code complet, veuillez vous référer à l'exemple complet.
ShowGraph()
Récupère tous les graphsets de la base de données.
Paramètres :
RequestConfig
(Facultatif) : Paramètres de configuration pour la requête. Sinil
est fourni, la fonction utilisera les paramètres de configuration par défaut.
Retours :
GraphSet
: La liste de tous les graphsets dans la base de données.error
: Un objet erreur contenant des détails sur tout problème survenu.nil
est retourné si l'opération est réussie.
// Récupère tous les graphsets et imprime les noms de ceux qui ont plus de 2000 edges
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()
Récupère un graphset de la base de données par son nom.
Paramètres :
string
: Nom du graphset.RequestConfig
(Facultatif) : Paramètres de configuration pour la requête. Sinil
est fourni, la fonction utilisera les paramètres de configuration par défaut.
Retours :
GraphSet
: Le graphset récupéré.error
: Un objet erreur contenant des détails sur tout problème survenu.nil
est retourné si l'opération est réussie.
// Récupère les graphsets nommés 'wikiKG' et imprime toutes ses informations
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()
Crée un nouveau graphset dans la base de données.
Paramètres :
GraphSet
: Le graphset à créer; le champname
doit être défini,description
est facultatif.RequestConfig
(Facultatif) : Paramètres de configuration pour la requête. Sinil
est fourni, la fonction utilisera les paramètres de configuration par défaut.
Retours :
UQLResponse
: Résultat de la requête.error
: Un objet erreur contenant des détails sur tout problème survenu.nil
est retourné si l'opération est réussie.
// Crée un graphset et imprime le code d'erreur
myGraph, _ := conn.CreateGraph(&structs.GraphSet{Name: "testGoSDK", Description: "Description for testGoSDK"}, nil)
fmt.Println("Creation succeeds:", myGraph.Status.IsSuccess())
Un nouveau graphset testGoSDK
est créé dans la base de données, et le driver imprime :
Creation succeeds: true
CreateGraphIfNotExist()
Crée un nouveau graphset dans la base de données, gérant les cas où le nom du graphset donné existe déjà en ignorant l'erreur.
Paramètres :
GraphSet
: Le graphset à créer; le champname
doit être défini,description
est facultatif.RequestConfig
(Facultatif) : Paramètres de configuration pour la requête. Sinil
est fourni, la fonction utilisera les paramètres de configuration par défaut.
Retours :
Response
: Résultat de la requête.bool
: Si le graphset existe déjà.error
: Un objet erreur contenant des détails sur tout problème survenu.nil
est retourné si l'opération est réussie.
// Crée un graphset et imprime le code d'erreur
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())
}
// Tente de créer à nouveau le même graphset et imprime le code d'erreur
_, result, _ := conn.CreateGraphIfNotExist(&structs.GraphSet{Name: "testGoSDK", Description: "Description for testGoSDK"}, nil)
fmt.Println("Graph already exists:", result)
Un nouveau graphset testGoSDK
est créé dans la base de données, et le driver imprime :
Graph already exists: false
First creation succeeds: true
Graph already exists: true
DropGraph()
Supprime un graphset de la base de données par son nom.
Paramètres :
string
: Nom du graphset.RequestConfig
(Facultatif) : Paramètres de configuration pour la requête. Sinil
est fourni, la fonction utilisera les paramètres de configuration par défaut.
Retours :
Response
: Résultat de la requête.error
: Un objet erreur contenant des détails sur tout problème survenu.nil
est retourné si l'opération est réussie.
// Crée un graphset puis le supprime, imprime le résultat
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()
Modifie le nom et la description d'un graphset existant dans la base de données par son nom.
Paramètres :
oldGraph: GraphSet
: Le graphset existant à modifier; le champname
doit être défini.newGraph: GraphSet
: La nouvelle configuration pour le graphset existant; l'un ou les deux champsname
etdescription
doivent être définis.RequestConfig
(Facultatif) : Paramètres de configuration pour la requête. Sinil
est fourni, la fonction utilisera les paramètres de configuration par défaut.
Retours :
Response
: Résultat de la requête.error
: Un objet erreur contenant des détails sur tout problème survenu.nil
est retourné si l'opération est réussie.
// Renomme le graphset 'testGoSDK' en 'newGraph', définit une description pour celui-ci, et imprime le résultat
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()
Tronque (Supprime) les nodes ou edges spécifiés dans le graphset donné ou tronque l'ensemble du graphset. Notez que le tronçage des nodes causera la suppression des edges attachés à ces nodes affectés. L'opération de tronçage conserve la définition des schemas et des properties tout en supprimant les données.
Paramètres :
Truncate
: L'objet à tronquer; le champGraphName
doit être défini,Schema
etDbType
sont facultatifs, mais si l'unSchema
ouDbType
est défini, l'autre doit l'être également.RequestConfig
(Facultatif) : Paramètres de configuration pour la requête. Sinil
est fourni, la fonction utilisera les paramètres de configuration par défaut.
Retours :
Response
: Résultat de la requête.error
: Un objet erreur contenant des détails sur tout problème survenu.nil
est retourné si l'opération est réussie.
// Tronque les nodes @user dans le graphset 'myGraph_1' et imprime le code d'erreur
db := ultipa.DBType_DBNODE
myGraph1, _ := conn.Truncate(&structs.Truncate{GraphName: "myGraph_1", DbType: &db, Schema: "user"}, nil)
fmt.Println(myGraph1.Status)
// Tronque tous les edges dans le graphset 'myGraph_2' et imprime le code d'erreur
db := ultipa.DBType_DBEDGE
myGraph2, _ := conn.Truncate(&structs.Truncate{GraphName: "myGraph_2", DbType: &db, Schema: "*"}, nil)
fmt.Println(myGraph2.Status)
// Tronque le graphset 'myGraph_3' et imprime le code d'erreur
myGraph3, _ := conn.Truncate(&structs.Truncate{GraphName: "myGraph_3"}, nil)
fmt.Println(myGraph3.Status)
&{ SUCCESS}
&{ SUCCESS}
&{ SUCCESS}
Compact()
Compacte un graphset en effaçant ses données invalides et redondantes sur le disque du serveur. Les données valides ne seront pas affectées.
Paramètres :
string
: Nom du graphset.RequestConfig
(Facultatif) : Paramètres de configuration pour la requête. Sinil
est fourni, la fonction utilisera les paramètres de configuration par défaut.
Retours :
Response
: Résultat de la requête.error
: Un objet erreur contenant des détails sur tout problème survenu.nil
est retourné si l'opération est réussie.
// Compacte le graphset 'miniCircle' et imprime le code d'erreur
resp, _ := conn.Compact("miniCircle", nil)
fmt.Println(resp.Status)
&{ SUCCESS}
HasGraph()
Vérifie l'existence d'un graphset dans la base de données par son nom.
Paramètres :
string
: Nom du graphset.RequestConfig
(Facultatif) : Paramètres de configuration pour la requête. Sinil
est fourni, la fonction utilisera les paramètres de configuration par défaut.
Retours :
bool
: Résultat de la requête.error
: Un objet erreur contenant des détails sur tout problème survenu.nil
est retourné si l'opération est réussie.
// Vérifie l'existence du graphset 'miniCircle' et imprime le résultat
resp, _ := conn.HasGraph("miniCircle", nil)
fmt.Println("Graph exists:", resp)
Graph exists: true
UnmountGraph()
Démonte un graphset pour économiser la mémoire de la base de données.
Paramètres :
string
: Nom du graphset.RequestConfig
(Facultatif) : Paramètres de configuration pour la requête. Sinil
est fourni, la fonction utilisera les paramètres de configuration par défaut.
Retours :
Response
: Résultat de la requête.error
: Un objet erreur contenant des détails sur tout problème survenu.nil
est retourné si l'opération est réussie.
// / Démonte les graphsets 'miniCircle' et imprime le résultat
resp, _ := conn.UnmountGraph("miniCircle", nil)
fmt.Println(resp.Status)
&{ SUCCESS}
MountGraph()
Monte un graphset en mémoire de la base de données.
Paramètres :
string
: Nom du graphset.RequestConfig
(Facultatif) : Paramètres de configuration pour la requête. Sinil
est fourni, la fonction utilisera les paramètres de configuration par défaut.
Retours :
Response
: Résultat de la requête.error
: Un objet erreur contenant des détails sur tout problème survenu.nil
est retourné si l'opération est réussie.
// Monte les graphsets 'miniCircle' et imprime le résultat
resp, _ := conn.MountGraph("miniCircle", nil)
fmt.Println(resp.Status)
&{ SUCCESS}
Exemple Complet
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() {
// Configuration de connexion
//Exemple d'URI : Hosts:=[]string{"mqj4zouys.us-east-1.cloud.ultipa.com: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: "***",
})
// Établit la connexion à la base de données
conn, _ := sdk.NewUltipa(config)
// Configuration des requêtes
requestConfig := &configuration.RequestConfig{
UseMaster: true,
}
// Crée un nouveau graphset 'testGoSDK'
myGraph, _ := conn.CreateGraph(&structs.GraphSet{Name: "testGoSDK", Description: "Description for testGoSDK"}, nil)
fmt.Println("Creation succeeds:", myGraph.Status.IsSuccess())
// Supprime le graphset 'testGoSDK' qui vient d'être créé
resp1, _ := conn.DropGraph("testGoSDK", nil)
fmt.Println(resp1.Status)
}