쓸만한 cassandra java client api를 찾아보았다. (2013.11월 기준이고 내 맘대로 선택한 내용이다.)

현재는 spring data에서 cassandra는 지원하고 있지 않다. 



name

feature 

consistency

level

connection

pool

cql support 

spring 

integration

license

active  

issue 

my choice 

 cql

jdbc driver,

datasax 

 Δ

(read=write)

 Δ (simple)

 O

 ?

 apache

X

no more update jdbc driver 

 X

 thrift

 

 O

 X

 O

 ?

 apache

 O

 

 O

 hector

thrift based

 O

 O

 O

 O

 mit

 O

 

 O

 Astyanax

thrift based, netflix 

 O

 O

 O

 O

 apache

 O

 

 O

 Kundera

jpa 2.0, multiple nosql support 

 O

 O

 O

 O

 apache

 O

 use  pelops?

 X

 Easy Cassandra

jap 2.0

 O

X 

 O

 apache

  O

 latest version not support, 1 man coding

 X


1) jdbc-driver, data sax cql

cql을 편하게 쓰려고 했는데, code google에 있는 jdbc driver는 더이상 업데이트가 되지 않는다. 

consistency level을 jdbc driver에서 지원하지만 read/write별로 되지는 않는다.


2) Thrift

cassandra의 날(?) thrfit를 쓰는 방식은 좀이 많이 간다. 하지만 정말 괜찮은 라이브러리가 없다면 선택해야 한다.connection pool은 구현해야 한다. 


3) Hector

좋다. connection pool도 있고, cql도 마음대로 쓸 수 있다. consistent level또한 마음대로 할 수 있다. 


4) Astyanax

Hector의 refactoring 버전이라고 하더니. 정말 괜찮은 api다.netflix에서 밀고 있으니 AWS에서 계속 쓰는 한 계속 지원할 것 같다. 


5) Kundera

JPA 2.0 지원해서 좋은데, pelops가 기본 값이다. 신뢰도가 확 떨어진다. (2013년 2월 부터 pelops는 운영되고 있지 않는다.) 그리고, Kundera를 쓰기는 아직 시기상조일듯, reference 자료가 그리 많지 않다.


6) Easy cassandra 

connection pool을 지원하지 않는 점이 아쉽다. 그러나 JPA 2.0 을 지원한다.

그리고 현재 cassandra 2.0을 지원하고 있지 않다. (lib dependent) 그리고 한사람 혼자서 개발하고 있다..


간단하게 코딩해보니 hector나 astyanax쪽으로 하는 게 맘 편한 듯 하다.







Posted by '김용환'
,