본문 바로가기

NoSQL/Cassandra

(6)
[Cassandra] RDBMS vs Cassandra 쿼리 차이 카산드라의 모델과 RDBMS에서 사용할 수 있는 쿼리 메서드에서는 몇가지 차이가 있으며, 이 차이는 중요하므로 기억하고 있어야 한다. 업데이트 쿼리 부재 - 카산드라는 "업데이트"라는 클라이언트 쿼리아 아에 없다. - 로우 키를 사용해서 삽입을 수행하는 방법으로 업데이트와 같은 효과를 볼 수는 있다. - 이미 있는 키에 대해 삽입 구문을 실행한다면 카산드라가 키와 일치하는 컬럼의 값을 덮어쓰게 된다. - 쿼리에 로우 키에 없는 컬럼이 있다면 이 추가 컬럼도 삽입된다. 쓰기에서 레코드 레벨 원자성 - 모든 쓰기 연산에 대해 자동으로 레코드 레벨 원자성을 제공 - RDBMS에서는 이를 위해 로우 레벨 락을 지정해야 할 것이다. - 격리성은 보장하지 않는다. 서버측 트랜잭션 지원 부재 - 카산다르는 트랜잭션을..
[Cassandra] Cassandra Data Model [Column] - 이름과 값으로 이루어진 데이터 구조체 - {name:"age", value:"29"} [Column Family] - 컬럼들의 집합 - 하나의 row를 식별하기 위한 key를 갖는다. [KeySpace] - 논리적으로 Column Family를 묶어주는 개념 - 데이터 구조나 관계에는 별다른 영향을 주지 않는다. [Super Column] - 이름과 값으로 이루어진 데이터 구조체 - 여기서 값에는 무한의 컬럼들을 포함할 수 있다. - 컬럼의 이름은 각각의 key가 된다.
[Cassandra] 누가 Cassandra를 사용하는가? Cassandra는 여러 면에서 아직 초기 단계에 머무르고 있으며, 관리를 쉽게 해주는 그래픽 도구도 거의 없다.그러나 초기 단계임에도 잘 알려진 대기업에서 제품으로 사용하고 있다는 점에서 데이터 저장소의 안정성, 유용성, 장래성이 있다고 말할 수 있지 않을까? Cassandra를 사용하는 기업은 계속 늘어나고 있으며, 다음과 같은 기업이 사용하고 있다. Twitter : 분석 용도로 사용Mahalo : 실시간에 가까운 데이터 저장소로 사용Facebook : 받은 편지함 검색에 사용Digg : 거의 실시간에 가까운 데이터 저장소로 사용Rackspace : 클라우드 서비스, 모니터링, 로깅에 사용Reddit : 영속적인 캐시로 사용Cloudkick : 통계 및 분석 모니터링에 사용Ooyala : 거의 실시..
[Cassandra] Cassandra 특징 [분산화] - 여러 머신에서 동작하지만, 사용자에게는 통합된 하나로 보인다. - 물리적으로 떨어져 있는 데이터 센터 간에도 단일 카산드라 클러스터를 운영할 수 있다. - 클러스터의 어디에라도 데이터를 쓸 수 있고, 카산드라는 데이터를 받아들인다. [비집중화] - 마스터 / 슬레이브 구조보다 사용하기 간단하고, 서비스 중단을 피하게 해준다. - 모든 복제본이 완벽하게 같으므로 노드 하나가 실패했다고 서비스가 중단되는 일은 발생하지 않는다. [탄력적인 확장성] - 클러스터의 중단 없이 규모를 확대하거나 축소할 수 있다. - 새로운 머신을 추가하면 카산드라가 새로 추가된 머신을 찾아내고 작업을 할당한다. [고가용성 결함 허용] - 클러스터에서 시스템을 중단하지 않고도 장애가 발생한 노드를 교체할 수 있다. -..
[Cassandra] Cassandra 설치 1. Cassandra 다운로드 (http://cassandra.apache.org/) 2. Cassandra 압축풀기 - 리눅스라면 gzip 추출 유틸리티가 미리 설치되어 있어야 한다. - 윈도우라면 상용인 WinZip이나 무료인 7-Zip 등이 설치되어 있어야 한다. (http://7-zip.org/) 3. JDK 설치 (http://www.oracle.com/technetwork/java/javase/downloads/jdk-7-netbeans-download-432126.html) - Cassandra는 JDK 6 이상의 버전이 필요하다. 4. 환경변수 설정 - 컴퓨터 우클릭 후 속성 선탱 - 고급 시스템 설정 ▶ 환경 변수 ▶ 새로 만들기... - 변수 이름 : JAVA_HOME, 변수 값 : ..
[Cassandra] Cassandra 란? [Cassandra 란?] - 오픈소스 분산 데이터베이스 관리 시스템 - 아마존 다이나모 분산 디자인과 구글 빅테이블의 데이터 모델을 기반으로 2008년 페이스북에서 개발 [Cassandra 이름의 유래] - 그리스 신화에서 카산드라는 트로이의 프리아모스 왕과 헤카베 여왕의 딸을 말한다. 카산드라가 매우 아름다웠으므로 아폴로 신이 그녀에게 예언 능력을 주었다. 그러나 카산드라가 아폴로 신의 구애를 거부하자 아폴로는 그녀가 미래를 정확하게 예언할 수 있지만, 누구도 믿지 않는 저주를 내렸다. 카산드라는 트로이 왕국의 멸망을 예견했지만, 이를 막을 힘은 없었다. 카산드라 분산 데이터베이스는 그녀의 이름을 붙인 것이다. 추측하건데 데이터베이스 이름에 또 다른 예언자의 이름을 붙은 델포이의 오라클을 빗댄 농담으..