This section introduces the gql()
and gqlStream()
methods on a Connection
object for querying the database using GQL.
Each example focuses solely on the method's usage. For a complete code example, please refer to the full example.
GQL (Gltipa Query Language) is the ISO-standard query language for graph databases. For detailed information on GQL, refer to the documentation.
gql()
Executes a GQL query on the current graphset or the database and returns the result.
Parameters:
str
: The GQL query to be executed.RequestConfig
(Optional): Configuration settings for the request.
Returns:
UltipaResponse
: Result of the request.
# Retrieves 5 movie nodes in graphset 'miniCircle' and prints their names
response = Conn.gql("MATCH (n:movie) 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
For more examples, please refer to Types Mapping Ultipa and Python.
gqlStream()
Executes a GQL query on the current graphset or the database and returns the result incrementally, allowing handling of large datasets without loading everything into memory at once.
Parameters:
str
: The GQL query to be executed.UQLResponseStream
: Listener for the streaming process.RequestConfig
(Optional): Configuration settings for the request.
Returns:
None
# Retrieves all 1-step paths in graphset 'miniCircle'
requestConfig = RequestConfig(graphName="miniCircle")
# Define the event handler functions
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)
gql = 'MATCH p = ()-[]-() RETURN p'
result = Conn.gqlStream(gql, stream, requestConfig)
print()
Stream started.
Data received: {'status': <ultipa.types.types.Status object at 0x00000239B87E9FD0>, 'items': {'p': <ultipa.types.types.DataItem object at 0x00000239B87F1790>}, 'aliases': None, 'req': None, 'statistics': <ultipa.types.types.UltipaStatistics object at 0x00000239B87F1760>, 'explainPlan': None}
Stream ended.
Full Example
from ultipa import Connection, UltipaConfig
from ultipa.configuration.RequestConfig import RequestConfig
ultipaConfig = UltipaConfig()
# URI example: 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)
# Request configurations
requestConfig = RequestConfig(graphName="amz")
# Retrieves 10 nodes and prints the _id and storeName property value of the first returned one
response = Conn.gql("MATCH (n) RETURN n LIMIT 10", requestConfig)
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"))