Cette section présente les 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
(Optionnel) : Paramètres de configuration pour la requête.
Retourne :
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 ayant plus de 2000 edges
List<GraphSet> graphSetList = client.showGraph();
for (GraphSet graphSet : graphSetList) {
if (graphSet.getTotalEdges() > 2000) {
System.out.println(graphSet.getName());
}
}
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.
Retourne :
GraphSet
: Le graphset récupéré.
// Récupère le graphset nommé 'wikiKG' et affiche toutes ses informations
GraphSet graph = client.getGraph("wikiKG");
Assert.assertEquals("wikiKG",graph.getName());
System.out.println(new Gson().toJson(graph));
{"id":615,"name":"wikiKG","totalNodes":3546,"totalEdges":2179,"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.
Retourne :
Response
: Résultat de la requête.
// Crée un graphset et affiche le code d'erreur
GraphSet graph = new GraphSet();
graph.setName("testJavaSDK");
graph.setDescription("testJavaSDK Desc");
Response response = client.createGraph(graph);
System.out.println(response.getStatus().getErrorCode());
Un nouveau graphset testJavaSDK
est créé dans la base de données, et le pilote affiche :
SUCCEED
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 optionnel.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Retourne :
Response
: Résultat de la requête.
// Crée un graphset et affiche le code d'erreur
GraphSet graph = new GraphSet();
graph.setName("testJavaSDK");
graph.setDescription("testJavaSDK Desc");
Response response1 = client.createGraphIfNotExist(graph);
System.out.println("First Creation: " + response1.getStatus().getErrorCode());
// Essaye de créer à nouveau le même graphset et affiche le code d'erreur
Response response2 = client.createGraphIfNotExist(graph);
System.out.println("Second Creation: " + response2.getStatus().getErrorCode());
Un nouveau graphset testJavaSDK
est créé dans la base de données, et le pilote affiche :
First Creation: SUCCESS
Second Creation: SUCCESS
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.
Retourne :
Response
: Résultat de la requête.
// Crée un graphset et le supprime ensuite, affiche le résultat
GraphSet graph = new GraphSet();
graph.setName("newGraph");
Response response = client.createGraph(graph);
Assert.assertEquals(Ultipa.ErrorCode.SUCCESS,response.getStatus().getErrorCode());
Thread.sleep(2000);
Response response1 = client.dropGraph("newGraph");
Assert.assertEquals(Ultipa.ErrorCode.SUCCESS,response1.getStatus().getErrorCode());
System.out.println(new Gson().toJson(response1));
{"host":"192.168.1.85:60611","statistic":{"rowAffected":0,"totalTimeCost":0,"engineTimeCost":0,"nodeAffected":0,"edgeAffected":0,"totalCost":8,"engineCost":0},"status":{"errorCode":"SUCCESS","msg":"","clusterInfo":{"redirect":"","leaderAddress":"","followers":[]}},"aliases":[],"items":{},"explainPlan":{"planNodes":[]}}
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.
Retourne :
Response
: Résultat de la requête.
// Renomme le graphset 'testJavaSDK' en 'newGraph', définit une description pour celui-ci et affiche le résultat
GraphSet oldGraph = new GraphSet();
oldGraph.setName("testJavaSDK");
GraphSet newGraph = new GraphSet();
newGraph.setName("newGraph");
newGraph.setDescription("The graphset is altered");
Response response = client.alterGraph(oldGraph, newGraph);
System.out.println(new Gson().toJson(response));
{"host":"192.168.1.85:60611","statistic":{"rowAffected":0,"totalTimeCost":0,"engineTimeCost":0,"nodeAffected":0,"edgeAffected":0,"totalCost":1,"engineCost":0},"status":{"errorCode":"SUCCESS","msg":"","clusterInfo":{"redirect":"","leaderAddress":"","followers":[]}},"aliases":[],"items":{},"explainPlan":{"planNodes":[]}}
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 entraînera 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 :
Truncate
: L'objet à tronquer ; le champgraphName
doit être défini,schemaDbType
etschemaName
sont optionnels, maisschemaName
ne peut pas être défini sans la définition deschemaDbType
.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Retourne :
Response
: Résultat de la requête.
// Tronque les nodes @user dans le graphset 'myGraph_1' et affiche le code d'erreur
Truncate truncate1 = new Truncate();
truncate1.setGraphName("myGraph_1");
truncate1.setSchemaDbType(Ultipa.DBType.DBNODE);
truncate1.setSchemaName("user");
Response response1 = client.truncate(truncate1);
System.out.println(response1.getStatus().getErrorCode());
// Tronque tous les edges dans le graphset 'myGraph_2' et affiche le code d'erreur
Truncate truncate2 = new Truncate();
truncate2.setGraphName("myGraph_2");
truncate2.setSchemaDbType(Ultipa.DBType.DBEDGE);
Response response2 = client.truncate(truncate2);
System.out.println(response2.getStatus().getErrorCode());
// Tronque le graphset 'myGraph_3' et affiche le code d'erreur
Truncate truncate3 = new Truncate();
truncate3.setGraphName("myGraph_3");
Response response3 = client.truncate(truncate3);
System.out.println(response3.getStatus().getErrorCode());
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
(Optionnel) : Paramètres de configuration pour la requête.
Retourne :
Response
: Résultat de la requête.
// Compacte le graphset 'miniCircle' et affiche le code d'erreur
Response response = client.compact("miniCircle");
System.out.println(response.getStatus().getErrorCode());
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.
Retourne :
boolean
: Résultat de la requête.
// Vérifie l'existence du graphset 'miniCircle' et affiche le résultat
boolean has = client.hasGraph("miniCircle");
System.out.println("has = " + has);
has = 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.
Retourne :
Response
: Résultat de la requête.
// Démonte le graphset 'miniCircle' et affiche son statut
client.unmountGraph("miniCircle");
Thread.sleep(3000);
GraphSet graphSet = client.getGraph("miniCircle");
System.out.println(graphSet.getStatus());
UNMOUNTED
mountGraph()
Monte un graphset en mémoire de la base de données.
Paramètres :
String
: Nom du graphset.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Retourne :
Response
: Résultat de la requête.
// Monte le graphset 'miniCircle' et affiche son statut
client.mountGraph("miniCircle");
Thread.sleep(3000);
GraphSet graphSet = client.getGraph("miniCircle");
System.out.println(graphSet.getStatus());
MOUNTED
Example Complet
package com.ultipa.www.sdk.api;
import com.google.gson.Gson;
import com.ultipa.Ultipa;
import com.ultipa.sdk.connect.Connection;
import com.ultipa.sdk.connect.conf.UltipaConfiguration;
import com.ultipa.sdk.connect.driver.UltipaClientDriver;
import com.ultipa.sdk.connect.conf.RequestConfig;
import com.ultipa.sdk.operate.entity.*;
import com.ultipa.sdk.operate.response.Response;
import org.junit.Assert;
public class Main {
public static void main(String[] args) {
// Configurations de connexion
UltipaConfiguration myConfig = UltipaConfiguration.config()
// Exemple URI : .hosts("mqj4zouys.us-east-1.cloud.ultipa.com:60010")
.hosts("192.168.1.85:60611,192.168.1.87:60611,192.168.1.88:60611")
.username("<username>")
.password("<password>");
UltipaClientDriver driver = null;
try {
// Établit la connexion à la base de données
driver = new UltipaClientDriver(myConfig);
Connection client = driver.getConnection();
Thread.sleep(3000);
// Configurations des requêtes
RequestConfig requestConfig = new RequestConfig();
requestConfig.setUseMaster(true);
// Crée un nouveau graphset 'newGraph'
GraphSet graph = new GraphSet();
graph.setName("newGraph");
Response response = client.createGraph(graph, requestConfig);
Assert.assertEquals(Ultipa.ErrorCode.SUCCESS,response.getStatus().getErrorCode());
Thread.sleep(2000);
// Supprime le graphset 'newGraph' juste créé
Response response1 = client.dropGraph("newGraph");
Assert.assertEquals(Ultipa.ErrorCode.SUCCESS,response1.getStatus().getErrorCode());
System.out.println(new Gson().toJson(response1));
} catch (InterruptedException e) {
throw new RuntimeException(e);
} finally {
if (driver != null) {
driver.close();
}
}
}
}