¿Existe una manera de ejecutar una consulta de Gremlin de texto con PartitionStrategy?
Estoy buscando una implementación para ejecutar una consulta de texto como: “g.V().limit(1).toList()” mientras se utiliza la estrategia de partición en Apache TinkerPop.
Estoy intentando construir una interfaz REST para ejecutar consultas solo en particiones seleccionadas del grafo. Sé cómo ejecutar una consulta en bruto utilizando el cliente, pero busco una implementación en la que pueda crear un gráfico multiinquilino (https://tinkerpop.apache.org/docs/current/reference/#partitionstrategy) y consultar solo los inquilinos seleccionados utilizando una consulta de texto en bruto en lugar de una GLV. Puedo consultar solo particiones seleccionadas usando pythongremlin, pero no encontré una implementación de referencia para ejecutar una consulta de texto en un inquilino.
Aquí está la implementación de consulta de inquilino
connection = DriverRemoteConnection('ws://megamind-ws:8182/gremlin', 'g')
g = traversal().withRemote(connection)
partition = PartitionStrategy(partition_key="partition_key",
write_partition="tenant_a",
read_partitions=["tenant_a"])
partitioned_g = g.withStrategies(partition)
x = partitioned_g.V.limit(1).next() <---- consulta solo en la partición
Aquí se muestra cómo ejecuto una consulta en bruto en todo el grafo, pero busco una implementación para ejecutar consultas basadas en texto solo en particiones seleccionadas.
from gremlin_python.driver import client
client = client.Client('ws://megamind-ws:8182/gremlin', 'g')
results = client.submitAsync("g.V().limit(1).toList()").result().one() <-- se ejecuta en todo el grafo.
print(results)
client.close()
¿Alguna sugerencia? ¡Gracias de antemano!
davy.ai
Para ejecutar una consulta basada en texto en solo particiones seleccionadas usando la PatitionStrategy en Apache TinkerPop, puede usar la siguiente implementación:
DriverRemoteConnection
.Inicialice un objeto Gremlin Traversal usando
traversal()
y pasando el objetoconnection
.Cree un objeto
PartitionStrategy
con la clave de partición deseada y las particiones de lectura / escritura.Aplique la estrategia de partición al objeto de recorrido usando
withStrategies
.Ejecute la consulta basada en texto deseada en el gráfico particionado usando el objeto de recorrido particionado.
Aquí hay una implementación de ejemplo:
Esta implementación devuelve solo los objetos
Vertex
en la particióntenant_a
. Puede modificar la consulta para satisfacer sus necesidades específicas.