Vue d'ensemble
Une instance Ultipa Graph permet l'existence de multiples graphsets. Chaque graphset inclut la définition de la structure du graph (schemas et properties), les métadonnées du graph (nodes et edges), divers index, processus, tâches, etc. Parfois, les termes "graphset" et "graph" sont utilisés de manière interchangeable.
Un graphset nommé default est automatiquement créé lors de la création d'une instance Ultipa Graph. Ce graphset default est initialement vide et peut être utilisé librement. Cependant, le graphset default ne peut pas être modifié (nom et description), supprimé ou démonté.
Dans un environnement en cluster, les UQL d'unmounting, mounting et truncating seront envoyés au leader node pour exécution.
Afficher le Graph
// Afficher tous les graphsets dans l'instance (via l'API listGraph)
show().graph()
// Afficher tous les graphsets dans l'instance (via l'API listGraph)
show().graph("")
// Afficher le graphset nommé Sample dans l'instance
show().graph("Sample")
Exemple de résultat :
id |
name |
totalNodes | totalEdges | description |
status |
---|---|---|---|---|---|
0 | default | 0 | 0 | Graph par défaut du système ! | MOUNTED |
1 | Sample | 112 | 125 | MOUNTED |
Le statut d'un graphset peut être mounted
, unmounted
ou mounting
. Les grands ensembles de graphes peuvent prendre du temps à être complètement montés.
Un graphset monté affiche le nombre total de nodes et edges qu'il contient. Un graphset démonté affiche 0 pour totalNodes
et totalEdges
. Pendant le processus de démontage, le graphset affiche le nombre de nodes et edges actuellement montés.
Créer un Graph
// Créer un graphset nommé social, et fournir une description
create().graph("social", "Campus social graph")
// Créer un graphset nommé social
create().graph("social")
// Créer plusieurs ensembles de graphes en une fois
create()
.graph("social")
.graph("transaction", "Bank Card Transaction")
Conventions de Nomination
Voici les conventions de nomination pour les graphsets :
- Contient de 2 à 64 caractères.
- Doit commencer par des lettres.
- Les caractères autorisés incluent les lettres (A-Z, a-z), le soulignement (
_
), et les chiffres (0-9).
Vous ne pouvez pas avoir deux ensembles de graphes avec le même nom.
Utiliser TRY
Créez trois ensembles de graphes en même temps, mais un des noms (default) est en double avec un graphset existant.
create().graph("newGraph_1").graph("default").graph("newGraph_2")
La création de le graphset newGraph_1, spécifié avant le graphset en double, réussit. Cependant, celui (newGraph_2) spécifié après le graphset en double échoue, avec le message d'erreur Duplicated db name!
retourné.
TRY create().graph("newGraph_1").graph("default").graph("newGraph_2")
La création des graphsets est la même qu'au-dessus, bien que le message d'erreur soit masqué par le préfixe TRY
, tout en retournant le message SUCCEED
.
Modifier le Graph
// Modifier le nom et la description de le graphset actuellement nommé "miniCircle"
alter().graph("miniCircle").set({name: "movieCommunity", description: "Unix Movie Platform"})
// Supprimer la description de le graphset nommé "movieCommunity"
alter().graph("movieCommunity").set({description: ""})
// Renommer le graphset nommé "movieCommunity"
alter().graph("movieCommunity").set({name: "movComm"})
Démontage du Graph
Vous pouvez démonter temporairement des graphsets non utilisés (sauf le graphset default) pour économiser la mémoire de l'instance. Par exemple, les properties LTE-ed seront déchargées de la mémoire.
Lorsqu'un graph est démonté, il n'est pas autorisé à modifier ou lire les schemas, properties, données, etc. à l'intérieur du graph. Un graph démonté ne peut être que monté, modifié ou supprimé.
// Démontage d'un graphset nommé "LDCC" de la mémoire de l'instance
unmount().graph("LDCC")
Montage du Graph
Les graphsets nouvellement créés sont montés par défaut. Vous pourriez devoir remonter manuellement tout graphset démonté.
Lorsqu'un graphset est remonté, ses properties LTE-ed précédemment seront rechargées dans la mémoire ; les index et les index plein texte seront également recréés automatiquement comme avant.
// Remonter un graphset nommé "LDCC" dans la mémoire de l'instance
mount().graph("LDCC")
Supprimer le Graph
Supprimer un graphset signifie supprimer l'ensemble entier. L'graphset default ne peut pas être supprimé.
// Supprimer le graphset nommé "test0831"
drop().graph("test0831")
// Supprimer plusieurs ensembles de graphes en une fois
drop().graph("test0831").graph("test0925")
Tronquer le Graph
Tronquer un graphset signifie uniquement supprimer les données spécifiées à l'intérieur du graph, tandis que le graphset lui-même et sa structure (schemas & properties) sont conservés.
// Tronquer tous les nodes et edges dans le graphset nommé "PowerGrid"
truncate().graph("PowerGrid")
// Tronquer tous les nodes @bus (et leurs edges adjacents) dans le graphset nommé "PowerGrid"
truncate().graph("PowerGrid").nodes(@bus)
// Tronquer tous les edges @connectsTo dans le graphset nommé "PowerGrid"
truncate().graph("PowerGrid").edges(@connectsTo)
// Tronquer tous les nodes (et edges) dans le graphset nommé "PowerGrid"
truncate().graph("PowerGrid").nodes("*")
// Tronquer tous les edges dans le graphset nommé "PowerGrid"
truncate().graph("PowerGrid").edges("*")
Notez que la suppression d'un node entraîne la suppression de tous les edges qui y sont connectés.
Compacter le Graph
Compacter un graphset permet de nettoyer les données invalides et redondantes du graph sur le disque serveur mais n'apporte aucun changement aux autres données valides.
// Compacter le graphset nommé "PowerGrid"
compact().graph("PowerGrid")
Les opérations liées à la manipulation de données peuvent générer des données redondantes, telles que d'anciens enregistrements conservés après une opération de mise à jour ou de suppression. Il est suggéré de compacter régulièrement les graphsets pour améliorer l'efficacité des requêtes.