본문 바로가기

NoSQL

(16)
[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 이름의 유래] - 그리스 신화에서 카산드라는 트로이의 프리아모스 왕과 헤카베 여왕의 딸을 말한다. 카산드라가 매우 아름다웠으므로 아폴로 신이 그녀에게 예언 능력을 주었다. 그러나 카산드라가 아폴로 신의 구애를 거부하자 아폴로는 그녀가 미래를 정확하게 예언할 수 있지만, 누구도 믿지 않는 저주를 내렸다. 카산드라는 트로이 왕국의 멸망을 예견했지만, 이를 막을 힘은 없었다. 카산드라 분산 데이터베이스는 그녀의 이름을 붙인 것이다. 추측하건데 데이터베이스 이름에 또 다른 예언자의 이름을 붙은 델포이의 오라클을 빗댄 농담으..
[MongoDB] MongoDB 사용자 생성 & 인증 관계형 데이터베이스에서 스키마(SCHEMA)는 데이터베이스 내에 생성되는 테이블과 인덱스와 같은 객체의 이름을 결정하는 기준이 되기도 한다. 예를 들어, SALES.EMPLOYEES는 SALES 사용자가 생성한 EMPLOYEES 테이블을 의미한다. 하지만, MongoDB는 기본적으로 스키마 구조를 제공하지 않는다. 즉, 사용자 계정은 데이터베이스에 접속한 사용자가 인가된 사용자인지 아닌지 여부를 판단하는 기준으로만 사용될 뿐 객체의 이름과는 전혀 상관 없이 사용된다. MongoDB는 2가지 인증 방법을 사용한다. 1. MongoDB 인스턴스가 시작된 후 DB에 접속할 때 인증 여부를 확인하는 방법 2. MongoDB 인스턴스를 시작할 때 인증 여부를 확인하는 방법 [사용자 생성] - 암호 변경 시에도 a..
[MongoDB] MongoDB vs SQL Server 성능 분석 결과 NoSQL 기술은 대부분 Memory Mapping 기술로 구현되기 때문에 일반적인 관계형 데이터베이스 보다빅 데이터에 대한 읽기/쓰기 작업이 빠르며 무엇보다도 기존의 OS와 HW에 그대로 구현할 수 있기 때문에유연성과 확장성이 좋은 것이 특징이다. MongoDB vs SQL Server 성능 분석 결과는 다음과 같다. [테스트 환경] - Hardware : Lenovo T61 - Windows 7 64 bit / Dual Core 2.8 Ghz - SQL Server 2008 Standard & MongoDB 1.4.1 [테스트 결과] 1. 쓰기 작업 성능 비교 - MongoDB가 SQL Server에 비해 100배 이상 빠른 성능을 보여주고 있다. 2. 읽기 작업 성능 비교 - 쓰기 작업 만큼의 빠른..