2017-09-28 4 views
0

ich die Abfragen ausführen, mag die folgende in Gremlin in Cosmos Graph:Optimieren Gremlin Abfragen im Cosmos DB

g.V().hasLabel('vertex_label').limit(1) 

Diese Abfrage ist in Sorge der Größe der Daten problematisch, die von DB als dieser Abfrage zurückgegeben gibt alle inE und outE des ausgewählten Eckpunkts. Die Frage ist Wie kann ich diese Abfrage in Begriff der Größe des Abfrageergebnisses optimieren?

Antwort

0

Wie erwähnt, gibt die angegebene Abfrage einen Eckpunkt mit allen Abhängigkeiten und Verbindungen zurück. Daher kann es bei großen Datenmengen problematisch sein (wenn eine große Verbindung mit dem angegebenen Knoten besteht). Daher können wir unsere Abfragen mit etwas wie properties, properyMap, values und valueMap optimieren. In der Summe valueMap(true) am Ende der verwandten Abfragen kann nützlich sein und minimieren Sie die Größe der übertragenen Daten von Cosmos. Zum Beispiel:

g.V().hasLabel('play').limit(1).valueMap(true) 

Der Boolesche Wert ist für id und label des Scheitels zusätzlich zu Vertex Eigenschaften zu bekommen.

Auch, wenn es eine Vorstellung von Optimierung in der Struktur einer Abfrage gibt, finden Sie mehr in this link.

0

Wie verwenden Sie CosmosDB Graph, über Microsoft.Azure.Graphs SDK oder Gremlin Server?

Wenn Sie Microsoft.Azure.Graphs verwenden, unterstützt die neueste Version (0.2.4-preview ab der Buchung) die Angabe GraphSONFormat als Parameter auf DocumentClient.CreateGremlinRequest(..). Sie können wählen zwischen GraphSONFormat.Normal oder GraphSONFormat.Compact und Compact sollte der Standard sein, wenn es nicht geliefert wird.

Für den CosmosDB Gremlin-Server ist Compact auch das Standardverhalten.

Mit GraphSONFormat.Compact enthalten die Scheitelpunkt-Ergebnisse keine Kanten und als Ergebnis können und inE Fetches beim Abrufen des Scheitelpunkts übersprungen werden. GraphSONFormat.Normal wird die volle GraphSON-Antwort zurückgeben, wenn dies gewünscht wird.

Zusätzliche Anmerkung: Es gibt Optimierungen auf limit(), die von SDK/Server in der nächsten Version enthalten sein wird, so würde ich zusätzliche perf Gewinne aus dem Traversal Beispiel erwarten, die Sie bei der Veröffentlichung verfügbar wird.

+0

keiner von ihnen. Knoten js Gremlin. – OmG