1. cassandra DB란?

• 분산 대용량 저장소(NoSQL)

아파치 라이센스: Facebook에서  개발 시작, 이후 오픈 소스 화

상용 구글의 BigTable이나 아마존의 Dynamo과 목표는 비슷함

WriteRead보다 빠르고, ReadRDB보다 빠름

P2P처럼 인터넷 상의 IDC를 커버하는 망 구성 가능

서비스 중에 노드를 추가하여 용량 확장 가능

Key-Value 구조에 RDBTable과 비슷한 스키마 지원

SQL과 유사한 CQL 지원

2. 논리적 데이터 구조
• Column
- 가장 최소단위
- name, value, timestamp로 구성 (name은 column 의 name)
• Columns
- 하나 이상의 column의 집합 (RDB의 Row)
• Super Column
- Column혹은 Super Column을 value로 가질 수 있는 Column
- name, value로 구성
• Column Family
- RDB의 Table에 해당
- key와 value의 데이터들로 구성
- value는 Columns혹은 Super Column이 올 수 있음
• Keyspace
- RDB의 Database에 해당
- Column Family의 집합

3. 물리적 구조
• Node
- 하나의 cassandra db 프로세스
- 하나의 서버(H/W)에 여러개의 cassandra db 프로세스가 실행 될 수 있음(여러개의 Node가 됨)
• Rack
- IDC내의 서버(H/W)가 장착되는 장비
• DataCenter
- 인터넷에 있는 IDC
• TokenRing
- 각각의 Node를 하나의 Ring으로 구성
- Key를 해쉬하여 나온 값을 token으로 보고 해당 token이 속해있는 Node에 데이터 저장
- 데이터 복제본은 정책에 따라서 이웃Node에 저장하거나 임의의 Node에 분산 저장

4. 통신 보안
• 공통
- 기본적으로 TLS와 PKI를 지원
 Node와 Node간에는 설정에 따라서 DC - DC or Rack - Rack or all 구간에 암호화
 Client와 Node간에 암호화 설정 가능
• 데이터 암호화는 지원하지 않음

5. 계정
• cassandra db는 기본 생성 시 super user인 cassandra계정만 존재
• 계정 추가는 CQL로 하는게 편함
• CQL에서 권한설정 가능(grant)

+ Recent posts