대량 데이터를 다루기 위한 NoSQL로는 가장 대표적인 두 가지가 HBase와 Cassandra 입니다.
이 두 데이터베이스의 특징과 차이점을 간단하게 정리해 보았습니다.

1. 공통점
 : 둘 다 Bigtable을 모태로 하고 있고 분산형이며, 대량 데이터 용으로 만들어진 Column based 데이터베이스 입니다.
   replication을 통해 데이터 정합성을 보장합니다. linear scalability를 가지고 있습니다.
   자바를 바탕으로 만들어졌고 둘다 현재는 Apache 소속 오픈소스 프로젝트입니다.

2. 차이점
 2-1. 종류
     Cassandra는 column형 데이터베이스지만 row key를 인덱스로 갖는 key-value 형 데이터베이스이기도 합니다.
     영속성 + 휘발성 key-value 형 데이터베이스로 다른 key-value 형 메모리 데이터베이스와 마찬가지로 빠른 성능을 
     자랑합니다.
  
 2-2. 구조
     Cassandra의 각 노드는 동일한 역할이지만 HBase는 master-region으로 이루어진 구조입니다.
     따라서 Cassandra는 확장성이 뛰어나며 일부 노드에 문제가 생기더라도 가용성이 보장되는 반면, 중앙에서 관리하는 서버가
     별도로 존재하지 않기 때문에 데이터 정합성에 이슈가 있을 수 있습니다. 해당 이슈는 설정값을 통해 보완할 수 있기는 합니다.
     (속도 이슈 있을 수 있음)
      HBase는 마스터 노드가 별도로 있어 마스터노드를 통해 데이터 정합성을 보장하고 있습니다.

 2-3. 난이도
      Cassandra를 사용하기 위해서는 Cassandra만 다운로드 받아서 설치하면 됩니다만 HBase를 여러 대로 사용하기 위해서는
     HDFS와 ZooKeeper를 설치해야 합니다. HDFS에서는 Namenode의 가용성 문제도 있을 수 있습니다만 최신 버전에서도
    그러한지는 확인하지 못했습니다.;; Hadoop군의 NoSQL 데이터베이스로 다양하게 사용되지만 진입장벽은 HBase가 조금 더
    높은 것 같습니다.
    
 2-4. 트랜잭션 지원
     기존에는 HBase에서만 row-level의 트랜잭션 성 처리를 지원했습니다만, 2.0 버전부터는 Cassandra에서도 row-level의
     정합성을 보장한다고 합니다.

 2-5. index
     Cassandra와 HBase 모두 row-key를 기본 인덱스 값으로 처리합니다만, Cassandra에서는 다른 column에 대해 2nd
    인덱스를 지정할 수 있습니다.

 2-6. 사용
     Cassandra는 CQL(Cassandra Query Language)라는 SQL 비슷한 쿼리 형식을 제공하고 있습니다.
     HBase에서는 CQL같은 쿼리형식은 없지만 여러가지 filter를 통해 다양한 기능을 제공하고 있습니다.