Real MariaDB (2017년)
카산드라 스토리지 엔진 0 0 49,419

by 구루비스터디 MariaDB 스토리지 엔진 카산드라 스토리지 엔진 [2019.08.11]


6.6 카산드라 스토리지 엔진

  • 원격의 카산드라 서버로 접속하여 SQL 문법으로 데이터 조회 기능 제공


6.6.1 카산드라

  • 카산드라 : NoSQL 데이터베이스, P2P 방식으로 노드간 통신 하는 클러스터
  • 클러스상 자신의 위치가 정해져 있고 좌/우/임의 노드와 통신을 유지 하면서 전체 노드 상태 관리
  • Gossip : 다른 노드들의 상태를 전파하는 프로토콜
  • 클러스터 내 Ring 형태로 노드 존재, 데이터를 1/N 로 나누고 자신의 데이터에 대해서 서비스, 다른 노드 데이터에 대한 Proxy 서비스
  • 다차원 Key/Value 로 정보 관리 - (Key(Key/Value))
    • 테이블이나 레코드 개념 데이터 조립 가능.



오브젝트
오브젝트설명비고
키 스페이스MariaDB 의 데이터베이스(Schema)
칼럼 패밀리(CF)MariaDB 의 테이블, 데이터 집합 정의함께 자주 사용하는 데이터를 모아서 정의
로우 키RDBMS의 Row 의 Primary Key
칼럼이름-값 쌍으로 관리, 정의 후 사용하는 구조 아님


CQL(Cassandra Query Language)

  • 조인, 서브쿼리 미지원
  • 집합, 정렬은 로우키 + 컬럼이름 만 가능
  • 로우키, 컬럼이름 만 WHERE 절 조건 가능


6.6.2 카산드라 스토리지 엔진

  • 원격 서버에 있는 카산드라 클러스터 데이터에 대한 뷰 제공

INSTALL PLUGIN cassandra SONAME 'ha_cassandra.so';

-- my.cnf [mysqld]
plugin-load = ha_cassandra.so


$ cqlsh

create keyspace cassandra_se
... with strategy_class = 'org.apache.cassandra.locator.SimpleStrategy'
... and strategy_options:replication_factor='1';

use cassandra_se;

create columnfamily cf_friends (
... uid varchar primary key,
... friend_uid varchar) with compact storage;

insert into cf_friends (uid, friend_uid) values ('matt', 'pitt');
insert into cf_friends (uid, friend_uid) values ('matt', 'pott');

select * from cf_friends;

-- 카산드라 컬럼 패밀리와 컬럼 이름 및 데이터 타입 일치 필요
$ mysql

create table cass_friends (
  uid varchar(64) primary key,
  friend_uid varchar(64)
) ENGINE = cassandra THRIFT_HOST = '192.168.0.1' KEYSPACE='cassandra_se' COLUMN_FAMILY='CF_FRIENDS';

-- thrift_host : 테이블 별 접속 카산드라 클러스터 설정
-- cassandra_default_thrift_host : 전체 테이블 공통 카산드라 클러스터 설정||

insert into cass_friend (uid, friend_uid) values ('toto', 'pitt');
insert into cass_friend (uid, friend_uid) values ('toto', 'pott');

select * from cass_friends where uid = 'toto';


"구루비 데이터베이스 스터디모임" 에서 2017년에 "Real MariaDB" 도서를 스터디하면서 정리한 내용 입니다.

- 강좌 URL : http://www.gurubee.net/lecture/4205

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입