Vue d’ensemble
Cette section introduit les méthodes uql()
et uqlStream()
sur un objet Connection
pour interroger la base de données en utilisant UQL.
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.
UQL (Ultipa Query Language) est le langage conçu pour interagir pleinement avec les bases de données graphes Ultipa. Pour des informations détaillées sur UQL, référez-vous à la documentation.
uql()
Exécute une requête UQL sur le graphset ou la base de données actuel et retourne le résultat.
Paramètres :
str
: La requête UQL à exécuter.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Retourne :
UltipaResponse
: Résultat de la requête.
# Récupère 5 nœuds @movie dans le graphset 'miniCircle' et imprime leurs noms
response = Conn.uql("find().nodes({@movie}) as n return n{*} limit 5", requestConfig)
nodeList = response.alias("n").asNodes()
for node in nodeList:
print(node.get("name"))
The Shawshank Redemption
Farewell My Concubine
Léon: The Professional
Titanic
Life is Beautiful
Pour plus d'exemples, veuillez vous référer à Types Mapping Ultipa and Python.
uqlStream()
Exécute une requête UQL sur le graphset ou la base de données actuel et retourne le résultat de manière incrémentielle, permettant de gérer de grands ensembles de données sans tout charger en mémoire d'un coup.
Paramètres :
str
: La requête UQL à exécuter.UQLResponseStream
: Écouteur pour le processus de streaming.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Retourne :
None
# Récupère tous les chemins en 1 étape dans le graphset 'miniCircle'
requestConfig = RequestConfig(graphName="miniCircle")
# Défini les fonctions de gestion des événements
def on_start(requestConfig):
print("Stream started.")
def on_data(res, requestConfig):
print("Data received:", res)
def on_end(requestConfig):
print("Stream ended.")
stream = UQLResponseStream()
stream.on("start", on_start)
stream.on("data", on_data)
stream.on("end", on_end)
uql = 'n().e().n() as paths return paths{*}'
result = Conn.uqlStream(uql, stream, requestConfig)
print()
Stream started.
Data received: {'status': <ultipa.types.types.Status object at 0x000001E01762FCA0>, 'items': {'paths': <ultipa.types.types.DataItem object at 0x000001E017635730>}, 'aliases': None, 'req': None, 'statistics': <ultipa.types.types.UltipaStatistics object at 0x000001E017635850>, 'explainPlan': None}
Data received: {'status': <ultipa.types.types.Status object at 0x000001E01762F2B0>, 'items': {'paths': <ultipa.types.types.DataItem object at 0x000001E0189C4DF0>}, 'aliases': None, 'req': None, 'statistics': <ultipa.types.types.UltipaStatistics object at 0x000001E0189C4D60>, 'explainPlan': None}
Stream ended.
Exemple Complet
from ultipa import Connection, UltipaConfig
from ultipa.configuration.RequestConfig import RequestConfig
ultipaConfig = UltipaConfig()
# Exemple d'URI : 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)
# Configurations de la requête
requestConfig = RequestConfig(graphName="amz")
# Récupère 10 nœuds et imprime la valeur de la propriété _id et storeName du premier retourné
response = Conn.uql("find().nodes() as n return n{*} limit 10")
nodeList = response.alias("n").asNodes()
print("ID of the 1st node:", nodeList[0].getID())
print("Store name of the 1st node:", nodeList[0].get("storeName"))