2

Ich habe eine Anwendung, die derzeit auf tinkerpop & Titan beruht. Ich möchte die von DSE 5.0 bereitgestellten Graph-Funktionen bewerten, aber ich habe keine Möglichkeit gefunden, ein Tinkerpop-Diagramm mithilfe der DSE Graph-Java-API zu instanziieren.DSE Graph mit Java Driver, wie erstellt man ein Diagramm mit Tinkerpop/Gremlin APIs wie in Titan?

Für titan, verwendete ich die tinkerpop GraphFactory Klasse:

  • org.apache.tinkerpop.gremlin.structure.Graph g = GraphFactory.open (configuration);
  • Die Konfigurationsdatei in Parametern die TITANFACTORY Klasse bezieht, die eine Implementierung der Schnittstelle tinkerpop Graph zurück (gremlin.graph = com.thinkaurelius.titan.core.TitanFactory)

Gibt es eine Entsprechung in DSE Grafik-API?

Antwort

4

28. April 2017 Update

Nun kann die grafische Darstellung fließend API-Funktionalität durch diese Abhängigkeit verwendet werden:

<dependency> 
    <groupId>com.datastax.dse</groupId> 
    <artifactId>dse-java-driver-graph</artifactId> 
    <version>1.2.3</version> 
</dependency> 

Oktober fließend

Die erste Implementierung von Gremlin 28. 2016 Update API ist verfügbar, obwohl es noch in der Betaversion ist (https://datastax-oss.atlassian.net/browse/JAVA-1250?focusedCommentId=35907&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-35907):

<dependency> 
    <groupId>com.datastax.cassandra</groupId> 
    <artifactId>dse-driver</artifactId> 
    <version>1.1.1-beta1</version> 
</dependency> 
<dependency> 
    <groupId>com.datastax.cassandra</groupId> 
    <artifactId>java-dse-graph</artifactId> 
    <version>1.0.0-beta1</version> 
</dependency> 

Dies ist, wie es heute mit einem kleinen Beispiel funktioniert:

 DseCluster dseCluster = DseCluster.builder() 
       .addContactPoint(HOST_IP) 
       .build(); 
     DseSession dseSession = dseCluster.connect(); 
     GraphTraversalSource g = DseGraph.traversal(dseSession, new GraphOptions().setGraphName(GRAPH_NAME)); 

     GraphTraversal<Vertex,Vertex> gT = g.addV("User").property("uuid","testuuid"); 

     GraphStatement graphStatement = DseGraph.statementFromTraversal(gT); 
     GraphResultSet grs = dseSession.executeGraph(graphStatement.setGraphName(GRAPH_NAME)); 
     System.out.println(grs.one().asVertex()); 

Original-Beitrag

Ich habe versucht, zu migrieren Code von Titan zu DataStax DSE..I suchte die gleiche APIs wie du warst, ich habe ein Problem in der Github-Repository von Java-dse-Treiber: https://github.com/datastax/java-driver-dse/issues/42

Es ist derzeit in Arbeit als viel Koordination zwischen differen Die Sprachplattformen und die Optimierung laufen weiter.

Wir haben Pläne für eine flüssigere API. Genau wie einige Hintergrund, die meisten der TinkerPop/Gremlin Treiber da draußen eine String-basierte Ansatz - das heißt, senden Sie die Traversal-String an den Server, der Server optimiert dann die Traversal und führt es aus. Das Ergebnis wird an den Client zurückgesendet und wird deserialisiert.

Für Titan, was Menschen häufig verwenden, ist Remote-Server-Modus, der Zugriff auf ein Graph-Objekt gibt. Dies ist von einer Entwicklungsperspektive großartig, weil es eine fließende API bietet, die kompilierte Zeit überprüft wird und Code sein kann, der abgeschlossen wird. Aus praktischer Sicht ist es tatsächlich weniger effizient, weil es ein Remote-Server ist, der viele Runden Trips zum zugrunde liegenden Datenspeicher machen muss, um das Traversal auszuführen. So ist die aktuelle String-basierte Methode tatsächlich effizienter.

Wir sehen großen Wert in einer flüssigen api obwohl. Wir arbeiten gerade an einer Lösung dafür. Es wird wahrscheinlich die Form RemoteGraph annehmen, so dass Sie ein Diagrammobjekt haben, das für Traversals ähnlich ist. Wir arbeiten auch in der Community auf TINKERPOP-1278 bis machen Traversals viel mehr Sprachen idiomatisch. Also der Grund warum es ein bisschen Zeit braucht, um diese bessere Erfahrung zu bekommen ist, dass wir versuchen, sicherzustellen, dass es 1) effizient gemacht und 2), dass es korrekt von der TinkerPop-Stiftung über DSE Graph gemacht wird.

In Verbindung mit der RemoteGraph-Schnittstelle für Traversierungen haben wir eine flüssige api Aktualisierungen zu tun.

Sie können an der kompletten Diskussion einen Blick und das Problem hier aufspüren: https://github.com/datastax/java-driver-dse/issues/42 (bewegt Jira)

https://datastax-oss.atlassian.net/browse/JAVA-1250

Leider entweder Sie mit Gremlin qraph Abfragen für alles, was als ein haften müssen Zeichne oder benutze Titan bis Datastax DSE APIs bereit sind.

+0

Problem Link ist gebrochen https://github.com/datastax/java-driver-dse/issues/42 –

+0

@Hadiaboumrad die Probleme wurden auf Jira verschoben und sind nicht mehr öffentlich .. so wurde es aus GitHub gelöscht. Hier sind die Links, die online sind: https://datastax-oss.atlassian.net/browse/JAVA-1250 https://datastax-oss.atlassian.net/browse/JAVA-1124 –