Cette section introduit des méthodes sur un objet Connection
pour gérer des graphsets dans la base de données.
Chaque exemple est concentré exclusivement 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
(Optionnel) : Paramètres de configuration pour la requête.
Retours :
List<GraphSet>
: La liste de tous les graphsets dans la base de données.
// Récupère tous les graphsets et affiche les noms de ceux qui ont plus de 2000 edges
var graphsetList = await ultipa.ShowGraph();
foreach (var graph in graphsetList)
{
if (graph.TotalEdges > 2000)
{
Console.WriteLine(graph.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
(Optionnel) : Paramètres de configuration pour la requête.
Retours :
GraphSet
: Le graphset récupéré.
// Récupère le graphset nommé 'wikiKG' et affiche toutes ses informations
var graph = await ultipa.GetGraph("wikiKG");
Console.WriteLine(
$"ID: {graph.Id}\n"
+ $"Name: {graph.Name}\n"
+ $"TotalNodes: {graph.TotalNodes}\n"
+ $"TotalEdges: {graph.TotalEdges}\n"
+ $"Status: {graph.Status}\n"
+ $"Description: {graph.Desc}"
);
True
ID: 13844
Name: wikiKG
TotalNodes: 44449
TotalEdges: 167799
Status: MOUNTED
Description:
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 optionnel.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Retours :
UqlResponse
: Résultat de la requête.
// Crée un graphset et affiche le code d'erreur
var graph = new GraphSet();
graph.Name = "testCSharpSDK";
graph.Desc = "Description for testCSharpSDK";
var resp = await ultipa.CreateGraph(graph);
Console.WriteLine(resp.Status.ErrorCode);
Un nouveau graphset testCSharpSDK
est créé dans la base de données, et le pilote affiche :
Success
CreateGraphIfNotExist()
Crée un nouveau graphset dans la base de données, en gérant les cas où le nom de graphset donné existe déjà en ignorant l'erreur.
Paramètres :
GraphSet
: Le graphset à créer ; le champname
doit être défini,description
est optionnel.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Retours :
UqlResponse
: Résultat de la requête.bool
: Si le graphset existe déjà.
// Crée un graphset et affiche le code d'erreur
var graph = new GraphSet();
graph.Name = "testCSharpSDK";
graph.Desc = "Description for testCSharpSDK";
var resp1 = await ultipa.CreateGraphIfNotExist(graph);
Console.WriteLine("Graph already exists: " + resp1.Item2);
Console.WriteLine(
"First creation: " + (resp1.Item1 != null ? resp1.Item1.Status.ErrorCode : "null")
);
// Tente de créer le même graphset à nouveau et affiche le code d'erreur
var resp2 = await ultipa.CreateGraphIfNotExist(graph);
Console.WriteLine("Graph already exists: " + resp2.Item2);
Console.WriteLine(
"Second creation: " + (resp2.Item1 != null ? resp2.Item1.Status.ErrorCode : "Failed")
);
Un nouveau graphset testCSharpSDK
est créé dans la base de données, et le pilote affiche :
Graph already exists: False
First creation: Success
Graph already exists: True
Second creation: Failed
DropGraph()
Supprime un graphset de la base de données par son nom.
Paramètres :
string
: Nom du graphset.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Retours :
UqlResponse
: Résultat de la requête.
// Crée un graphset puis le supprime, affiche le résultat
var graph = new GraphSet();
graph.Name = "testCSharpSDK";
graph.Desc = "Description for testCSharpSDK";
var newGraph = await ultipa.CreateGraph(graph);
Console.WriteLine("Creation: " + newGraph.Status.ErrorCode);
Thread.Sleep(2000);
var dropIt = await ultipa.DropGraph("testCSharpSDK");
Console.WriteLine(JsonConvert.SerializeObject(dropIt));
Creation: Success
{"UqlReply":{"Status":{"ErrorCode":0,"Msg":"","ClusterInfo":null},"TotalTimeCost":0,"EngineTimeCost":0,"Alias":[],"Paths":[],"Nodes":[],"Edges":[],"Attrs":[],"Graphs":[],"Tables":[],"Statistics":null,"ExplainPlan":null},"Status":{"ErrorCode":0,"Msg":"","ClusterInfo":null},"Statistic":{"NodeAffected":0,"EdgeAffected":0,"TotalCost":6,"EngineCost":0},"Explain":[]}
AlterGraph()
Modifie le nom et la description d'un graphset existant dans la base de données par son nom.
Paramètres :
GraphSet
: Le graphset existant à modifier ; le champname
doit être défini.GraphSet
: La nouvelle configuration pour le graphset existant ; l'un ou les deux champsname
etdescription
doivent être définis.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Retours :
UqlResponse
: Résultat de la requête.
// Renomme le graphset 'testCSharpSDK' en 'newGraph', définit une description pour lui, et affiche le résultat
var graph1 = new GraphSet();
graph1.Name = "testCSharpSDK";
var newGraph = await ultipa.CreateGraph(graph1);
var graph2 = new GraphSet();
graph2.Name = "newGraph";
graph2.Desc = "The graphset is altered";
var alterIt = await ultipa.AlterGraph(graph1, graph2);
Console.WriteLine(JsonConvert.SerializeObject(alterIt));
{"UqlReply":{"Status":{"ErrorCode":0,"Msg":"","ClusterInfo":null},"TotalTimeCost":0,"EngineTimeCost":0,"Alias":[],"Paths":[],"Nodes":[],"Edges":[],"Attrs":[],"Graphs":[],"Tables":[],"Statistics":null,"ExplainPlan":null},"Status":{"ErrorCode":0,"Msg":"","ClusterInfo":null},"Statistic":{"NodeAffected":0,"EdgeAffected":0,"TotalCost":1,"EngineCost":0},"Explain":[]}
Truncate()
Tronque (supprime) les nodes ou edges spécifiés dans le graphset donné ou tronque l'ensemble du graphset. Notez que tronquer des nodes provoquera la suppression des edges attachés à ces nodes affectés. L'opération de tronquage conserve la définition des schemas et des properties tout en supprimant les données.
Paramètres :
TruncateParams
: L'objet à tronquer ; le champgraphName
doit être défini,schema
etDbType
sont optionnels, mais sischema
ouDbType
est défini, l'autre doit l'être aussi.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Retours :
UqlResponse
: Résultat de la requête.
// Tronque les nodes @user dans le graphset 'myGraph_1' et affiche le code d'erreur
var truncate1 = new GraphAPI.TruncateParams()
{
graphName = "myGraph_1",
schema = "user",
DbType = DBType.Dbnode,
};
var res1 = await ultipa.Truncate(truncate1);
Console.WriteLine(res1.Status.ErrorCode);
// Tronque tous les edges dans le graphset 'myGraph_2' et affiche le code d'erreur
var truncate2 = new GraphAPI.TruncateParams()
{
graphName = "myGraph_2",
schema = "*",
DbType = DBType.Dbedge,
};
var res2 = await ultipa.Truncate(truncate2);
Console.WriteLine(res2.Status.ErrorCode);
// Tronque le graphset 'myGraph_3' et affiche le code d'erreur
var truncate3 = new GraphAPI.TruncateParams() { graphName = "myGraph_3" };
var res3 = await ultipa.Truncate(truncate3);
Console.WriteLine(res3.Status.ErrorCode);
Success
Success
Success
CompactGraph()
Compacte un graphset en nettoyant ses données invalides et redondantes sur le disque serveur. Les données valides ne seront pas affectées.
Paramètres :
string
: Nom du graphset.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Retours :
UqlResponse
: Résultat de la requête.
// Compacte le graphset 'miniCircle' et affiche le code d'erreur
var res = await ultipa.CompactGraph("miniCircle");
Console.WriteLine(res.Status.ErrorCode);
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
(Optionnel) : Paramètres de configuration pour la requête.
Retours :
bool
: Résultat de la requête.
// Vérifie l'existence du graphset 'miniCircle' et affiche le résultat
var res = await ultipa.HasGraph("miniCircle");
Console.WriteLine("Graph exists: " + res);
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
(Optionnel) : Paramètres de configuration pour la requête.
Retours :
UqlResponse
: Résultat de la requête.
// / Démonte les graphsets 'miniCircle' et affiche le résultat
var res = await ultipa.UnMountGraph("miniCircle");
Console.WriteLine(res.Status.ErrorCode);
Success
MountGraph()
Monte un graphset dans la mémoire de la base de données.
Paramètres :
string
: Nom du graphset.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Retours :
UqlResponse
: Résultat de la requête.
// Monte les graphsets 'miniCircle' et affiche le résultat
var res = await ultipa.MountGraph("miniCircle");
Console.WriteLine(res.Status.ErrorCode);
Success
Exemple Complet
using System.Security.Cryptography.X509Certificates;
using System.Threading;
using System.Xml.Linq;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using UltipaService;
using UltipaSharp;
using UltipaSharp.api;
using UltipaSharp.configuration;
using UltipaSharp.connection;
using UltipaSharp.exceptions;
using UltipaSharp.structs;
using UltipaSharp.utils;
using Logger = UltipaSharp.utils.Logger;
using Property = UltipaSharp.structs.Property;
using Schema = UltipaSharp.structs.Schema;
class Program
{
static async Task Main(string[] args)
{
// Configuration de la connexion
//Exemple URI: Hosts=new[]{"mqj4zouys.us-east-1.cloud.ultipa.com:60010"}
var myconfig = new UltipaConfig()
{
Hosts = new[] { "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
var ultipa = new Ultipa(myconfig);
var isSuccess = ultipa.Test();
Console.WriteLine(isSuccess);
// Configuration des requêtes
RequestConfig requestConfig = new RequestConfig() { UseMaster = true };
// Crée un nouveau graphset 'testCSharpSDK'
var graph = new GraphSet();
graph.Name = "testCSharpSDK";
graph.Desc = "Description for testCSharpSDK";
var newGraph = await ultipa.CreateGraph(graph);
Console.WriteLine("Creation: " + newGraph.Status.ErrorCode);
Thread.Sleep(2000);
// Supprime le graphset 'testCSharpSDK' juste créé
var dropIt = await ultipa.DropGraph("testCSharpSDK");
Console.WriteLine(dropIt.Status.ErrorCode);
}
}