본문 바로가기
Tip

Cassandra 란

by "뭉치" 2021. 8. 30.
728x90

Introduction of Cassandra
카산드라 구글의 BigTable 컬럼 기반의 데이터 모델과 FaceBook에서 만든 Dynamo의 분산 모델을 기반으로 하여 제작되어 FaceBook에 의해 2008년에 아파치 오픈소스로 공개된 분산 데이터 베이스 이다.  SQL을 사용하지 않는 NoSQL의 제품중 하나이며, 대용량의 데이터 트렌젝션에 대해서 고성능 처리가 가능한 시스템이다.(High-Scale).
노드를 추가함으로써 성능을 낮추지 않고 횡적으로 용량을 확장할 수 있다.

#지원 언어
Ruby, Perl, Phtyon, Scala, Java, PHP, C#

#장점
데이터간의 복잡한 관계 정의(Foreign Key)가 필요없다.
대용량과 고성능 트렌젝션을 요구하는 SNS(Social Networking Service)에 많이 사용된다.
성능과 안정성이 뛰어남!

#단점
Global Scale(여러 국가에 데이터 센터를 분리 배치하여 배포하고, 데이터센터간 데이터를 동기화 하는 요구사항)를 지원하지 않음.
Global Scale - MySQL기반의 geo replication , sharding(샤딩) 이 아직까지 가장 널리 쓰이는 아키텍처 임.

#Column
컬럼은 name 값은 value
{ name : "obj" ,value: "val" }

#Column Family
Obj = { obj1: "val1" ,obj2: "val2" }
Obj가 해당 Row의 Key가 되고, obj1 ,obj2라는 이름의 두개의 컬럼을 가지고 있는 것이드아.

여러개의 Row를 가지고 있는 List라는 컬럼 패밀리는 보면
List = {
   LObj = { Lobj1 : "val1" , Lobj2 : "val2" }
    RObj = { Robj1 : "val1" , def : "20" }
    CObj = { Cobj1 : "val1" , Cobj2 : "val2" , Cobj3 : "val3" , Cobj4 : "val4" }
}
와 같이 표현할 수 있다. 여기서 주목할만한 점이 각 Row의 데이터 스키마가 다르다는 것이다.
이러한 특징을 Schemeless라고 한다.( 키에 바인딩되는 데이타 구조는 같은 컬럼 패밀리라도 각 키별로 다를 수 있다. )

#KeySpace
keySpace는 논리적으로 ColumnFamily를 묶어주는 개념이다. 단지 묶어만 줄뿐 데이터 구조나 관계에서는 별다른 영향도가 없음.

#Super Column & Supper Column Family
컬럼에서 컬럼의 Value는 String이나 Integer와 같은 Primitive형 뿐만 아니라 컬럼 자체가 다시 들어갈 수 있다.
{name: "username"
 value: firstname { name: "firstname" , value:"Terry"}
 value: lastname{ name: "lastname" , value:"Cho"}
}
username이라는 컬럼 안에 firstname과 lastname이라는 두개의 컬럼이 들어가 있는 구조이다.

마찬가지 형태로 ColumnFamily안에도 Column Family가 들어가는 Super 구조가 가능하다.
UserList ={
   Cath:{
       username:{firstname:"Cath",lastname:"Yoon"}
        address:{city:"Seoul",postcode:"1234"}
    }
    Terry:{
       username:{firstname:"Terry",lastname:"Cho"}
        account{bank:"hana",accounted"1234"}
    }
}

지금 2017년인데 2010년도 자료를 참조하고 있다.. ㅠㅠ

참조... : http://bcho.tistory.com/440

 

아파치 분산 데이타 베이스 Cassandra 소개

Introduction of Cassandra 카산드라는 구글의 BigTable 컬럼 기반의 데이타 모델과 FaceBook에서 만든 Dynamo의 분산 모델을 기반으로 하여 제작되어 Facebook에 의해 2008년에 아파치 오픈소스로 공개된 분산 데

bcho.tistory.com

 

728x90

'Tip' 카테고리의 다른 글

spring boot에 관하여  (0) 2021.09.01
클라우드 컴퓨팅 구현 기술  (0) 2021.08.31
hazelcast 란  (0) 2021.08.28
spring 개념  (0) 2021.08.14
MariaDB 란  (0) 2021.08.14

댓글