2016-07-21 20 views
2

Ich fing an, Cassandra mit Java zu lernen, nachdem ich den Winterschlaf beendet hatte. Ich bin wirklich überrascht von der Art und Weise, in der Daten von Cassandra über Java eingefügt/gezogen/gelöscht werden, während Java sich in diesen Tagen rückwärts bewegt. Da Hibernate eine sehr einfache Möglichkeit zur Kommunikation mit der Datenbank bietet, muss ein Java - Entwickler die Datenbankabfragesyntax usw. Nicht kennen. Es sind hauptsächlich methodenbasierte Operationen, die verwendet werden, um mit der Datenbank zu kommunizieren. Aber wenn ich mit Cassandra über Java kommunizieren möchte, ist alles in einem SQL-Format, ich meine, sie haben es als CQL bezeichnet, aber ich bin wirklich überrascht, wie es passiert, wenn ich es mit dem Winterschlaf vergleiche.Cassandra durch java hibernate

Meine Frage hier ist, gibt es eine Möglichkeit, CRUD-Operationen auf Cassandra über Java im O-R-Mapping-Stil zu kommunizieren/tun oder kann Hibernate Cassandra-Konnektivität unterstützt?

Antwort

3

Cassandra ist keine relationale Datenbank, die Verwendung eines relationalen Mappers wird nicht so einfach sein. Es gibt keine Joins und es unterstützt SQL nicht.

Der java drivers Objekt Mapper ist wahrscheinlich am nächsten, was Sie suchen, obwohl. Für grundlegende CRUD-Zuordnungen auf Cassandra-Tabellen. Siehe Dokumentation hier: https://docs.datastax.com/en/developer/java-driver/3.0/supplemental/manual/object_mapper

dh

@Table(name = "posts") 
public static class Post { 

    private String title; 
    private String content; 
    private InetAddress device; 

    @ClusteringColumn 
    @Column(name = "post_id") 
    private UUID postId; 

    @PartitionKey 
    @Column(name = "user_id") 
    private UUID userId; 


    private Set<String> tags; 
    ... 
} 
1

Sie können crud Betrieb mit Cassandra mit Solr oder Funkenzuführen. Example
Vergleichen Sie jetzt Cassandra nicht mit einem RDBMS. Es gibt kein Konzept von Relational in Cassandra. Also sei vorsichtig. Wenn Sie Daten von Cassandra ohne viel Wissen über Cassandra (ähnlich Hibernate) abrufen möchten, können Sie versuchen, Funken:

JavaRDD<Student> studentObj = CassandraJavaUtil.javaFunctions(sc).cassandraTable("schema", "student_table",CassandraJavaUtil.mapRowTo(Student.class)).where("id=1"); 

Denken Sie daran, Spark ist in erster Linie für Analytics Zweck. Ich fand auch einige neue OGM-Tools, die Sie versuchen können:

  1. http://hibernate.org/ogm/

  2. https://github.com/impetus-opensource/Kundera