본문 바로가기
2021-1/RDA

NoSQL | Cassandra

by 이망고_ 2021. 10. 5.

Cassandra

Facebook에서 개발하여 현재는 Apache 프로젝트로 진행되고 있는 오픈소스 소프트웨어 

NoSQL 데이터베이스에서는 key-value  형으로 분류된다

Google 의 BigTable 을 바탕으로 개발되고 컬럼 단위로 관리되어 컬럼형으로 분류하기도 한다~

Cassandra 사용하는 이유

대량 데이터를 다루는 데에 효과적 

특징 

  • Row key 를 인덱스로 가지는 key-value형 스토어
  • 컬럼을 기본으로 데이터를 다루는 컬럼형 NoSQL 데이터베이스 :
    • 행Row 중심인 관계형 데이터베이스와 다름
    • 디스크에 데이터를 컬럼 단위로 연속하여 저장
        데이터 저장 방식
      행(Row) 중심 컬럼 값이 NULL 인 경우도 해당 컬럼 저장 필요
      열(Column) 중심 NULL 값인 컬럼은 저장하지 않음

장점

대량 데이터를 다수의 분산된 서버에서 관리해야 할 경우 적합!

약점

  • 컬럼형 데이터베이스로 진입장벽이 높다!

많은 사용자를 대상으로 대량 데이터를 다루는 서비스가 아닐 경우 굳이 Cassandra 를 고집할 필요가 없다~

  • 복잡한 조건의 검색 불가능  

Row key 와 컬럼 두 가지에 대한 인덱스만 가능, 데이터는 대량이지만 검색 조건은 단순한 서비스에 적합하다~

  • 데이터에 대한 갱신 및 입력시 Atomict 한 처리가 어렵다

데이터에 대한 Lock 을 사용하려면 Zookeeper 와 같은 전체 분산 서버를 관리하는 프로그램을 추가해서 별도로 설정 

도입 사례

Facebook, Twitter, Digg 

사용 케이스 

  • 사용자가 많으며 사용자에 의한 데이터 입력이 빈번하게 발생하는 대량 데이터를 다루는 시스템 
  • 빈번하게 변경되는 데이터에 대한 실시간 분석용 시스템
  • 대량 데이터를 다루며 신뢰성보다 가용성이 중요한 시스템

다른 key-value 형 NoSQL 데이터베이스와는 달리 Casandra는 관계형 데이터베이스를 대체하는 대량 데이터용 스토어로 사용되는 경우가 많다