티스토리 뷰

오픈 소스의 No SQL 데이터베이스 Cassandra


Cassandra는 오픈 소스의 No SQL 데이터베이스입니다.


분산 데이터베이스의 대량의 구조화 데이터, 반구조화 데이터 및 비구조화 데이터를 관리하는 시스템입니다.


2008년에 페이스북에서 SNS(소셜네트워킹서비스)의 대규모 데이터 처리를 위해 개발되었다.그 후 오픈소스가 되어 현재는 Apache Software Foundation 프로젝트로 개발되고 있습니다.



분산 데이터베이스는 복수의 데이터센터나 클라우드에 걸친 네트워크상에 복수 존재하는 데이터베이스를 하나의 데이터베이스인 것처럼 이용하는 구조를 말합니다.


Cassandra는 몇 페타바이트의 거대한 데이터베이스를 운용할 수 있는 분산 데이터베이스입니다.


지리적으로 다른 데이터센터에 서버를 분산 배치하고, 장애가 발생한 경우에도 다른 데이터센터에서 처리를 계속합니다.


또한 여러 노드로 분산되어 데이터를 유지하며 모든 노드가 동일한 기능을 갖습니다.


하나의 데이터는 복제되어 같은 클러스터(노드의 모임) 내의 복수의 노드에 저장되기 때문에 장애가 발생했을 경우에 데이터가 상실될 리스크를 억제할 수 있습니다.



일반적인 데이터 저장 형식의 Keyvalue store는 1개의 key에 1개의 값(value)을 관리하지만 Cassandra는 key를 키스페이스, 컬럼 패밀리, 키, 컬럼의 4계층으로 계층화하여 관리합니다.


키와 컬럼 사이에 슈퍼 컬럼을 삽입하여 최대 5계층의 관리도 가능해.테이블에 데이터를 저장하고, CQL이라는 SQL과 같은 쿼리 언어를 이용하여 데이터를 주고받을 수 있습니다.


그렇기 때문에 직관적으로는 RDB(릴레이셔널 데이터베이스)를 사용하고 있는 것처럼 조작할 수 있으며, 다수의 어플리케이션 고속 및 대량 수신 데이터에 대응할 수 있습니다.


미니 블로그 서비스를 제공하는 Twitter, 소셜 뉴스 사이트를 운영하는 Digg이나 Reddit 등이 자사 서비스의 인프라로서 채용하고 있습니다.

댓글