1

Ich habe sowohl die native API und fließende API für Datastax-Grafik in Java versucht. Ich fand fließend api besser lesbar, da es Java OOP ähnelt.DataStax Graph Native API vs Fluent API

Native API hat in Java weniger Lesbarkeit, da im Grunde genommen Strings angehängt werden, um das gesamte Gremlin-Skript zu erstellen. aber auf der positiven Seite wird ein einziger Aufruf gemacht, um das gesamte Gremlin-Skript auszuführen

Ich wollte wissen, welche ist die beste API zu gehen, falls ich eine große Anzahl von Kanten und Vertices in einer Transaktion hinzufügen muss und was sind die Leistungsprobleme, die in jedem Fall auftreten können

Antwort

1

In Zukunft würde ich empfehlen, die Fluent-API über die String-basierte API zu verwenden. Obwohl wir weiterhin die string-basierte API in den DataStax-Treibern unterstützen, werden die meisten unserer Arbeiten und Verbesserungen die flüssige API verwenden.

Die Hauptvorteile der Fluent-API bestehen darin, dass Sie die Apache TinkerPop-Bibliothek direkt zum Erstellen von Traversals verwenden können. Es muss nicht durch die groovige Skript-Engine gehen (wie die String-basierte API).

In Bezug auf das Laden mehrerer Scheitelpunkte/Kanten in einer Transaktion, können Sie dies mit Apache TinkerPop tun, und es wird viel effektiver als die String-basierte API sein, weil das alles nicht durch den Gremlin ausgewertet werden muss -Groovy-Engine. Auch zukünftige Arbeiten rund um das Dosieren werden wahrscheinlich in der Fluent API (über Apache TinkerPop) durchgeführt, siehe JAVA-1311 für weitere Details.

+0

danke für die Antwort. Ich werde mit Fluent API fortfahren. Ich hatte auch die Frage zum Batching, da ich jetzt fließend für jedes Traversal, das den Graphen aktualisiert, die Funktion executeGraph() ausführen muss und keine Möglichkeit gefunden habe, einen Batch von Traversalen zu erstellen. gut zu wissen, dass dies auch in naher Zukunft verfügbar sein wird –

+0

Im Moment gibt es nicht viel, was Sie tun können, außer Kette addV() Anrufe auf einer einzigen Traversal. Hier ein Beispiel dafür (wenn auch in Scala): https://github.com/mpollmeier/gremlin-scala-examples/blob/master/dse-graph/src/test/scala/SimpleSpec.scala#L82-L89. Hoffentlich wird sich das mit der Zeit ändern. –