2016-07-21 5 views
2

최대 절전 모드를 마친 후에 Java를 사용하여 Cassandra를 배우기 시작했습니다. 나는 자바가 요즘 거꾸로 이동하는 동안 데이터가 삽입/당겨 지거나/java를 통해 cassandra에서 삭제되는 방식에 정말로 놀랐다. 왜냐하면, Hibernate는 데이터베이스와 통신하는 아주 쉬운 방법을 제공하기 때문에, 자바 개발자는 데이터베이스 쿼리 문법 등을 알 필요가 없다. 대부분 데이터베이스와 통신하는 데 사용되는 메소드 기반 조작입니다. 하지만 java를 통해 cassandra와 통신하고 싶다면 모든 것이 SQL 형식입니다. CQL로 명명 된 것을 의미하지만, 최대 절전 모드와 비교할 때 어떤 일이 벌어지는 지에 놀랐습니다.Cassandra through java hibernate

여기 내 질문은 O-R 매핑 스타일로 Java를 통해 cassandra에서 CRUD 작업을 수행 할 수 있습니까? 아니면 최대 절전 모드로 cassandra 연결을 지원할 수 있습니까?

답변

3

Cassandra는 관계형 데이터베이스가 아니므로 관계형 맵퍼를 사용하면 직선적으로 진행되지 않습니다. 조인이 없으며 SQL을 지원하지 않습니다.

java drivers 개체 매퍼는 아마도 당신이 찾고있는 것에 가장 가깝습니다. Cassandra 테이블의 기본 CRUD 매핑. 여기 참조 문서 : https://docs.datastax.com/en/developer/java-driver/3.0/supplemental/manual/object_mapper

@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

당신은 카산드라 사용 SOLR 또는 스파크와 침전물 작업을 수행 할 수 있습니다. Example
이제 Cassandra와 RDBMS를 비교하지 마십시오. Cassandra에는 관계형의 개념이 없습니다. 그러니 조심해. 당신이 (최대 절전 모드와 유사) 카산드라의 많은 지식없이 카산드라의 데이터를 가져 싶은 경우에, 당신은 스파크를 시도 할 수 있습니다 :

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

가 기억 스파크는 주로 웹 로그 분석 목적을위한 것입니다. 나는 또한 당신이 시도 할 수있는 몇 가지 새로운 OGM 도구를 발견

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

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