체인의정석

카산드라 DB mac에서 사용해보기 본문

개발/database

카산드라 DB mac에서 사용해보기

체인의정석 2023. 11. 13. 17:23
728x90
반응형

명령어

1. brew 로 카산드라 설치

brew install cassandra

2. cassandra 시작

brew services start cassandra

3. 카산드라의 쿼리 언어인 CQL 사용

Cassandra Query Language (CQL): Cassandra uses CQL for queries. You can interact with Cassandra using the CQL shell (cqlsh).

cqlsh

Connected to Test Cluster at 127.0.0.1:9042
[cqlsh 6.1.0 | Cassandra 4.1.3 | CQL spec 3.4.6 | Native protocol v5]
Use HELP for help.
cqlsh>

4. 콘솔에 들어가졌다면 Keyspace 생성 후 테이블 생성

cqlsh> CREATE KEYSPACE mykeyspace WITH replication = {'class':'SimpleStrategy', 'replication_factor' : 3};

USE mykeyspace;

CREATE TABLE users (
    user_id int PRIMARY KEY,
    name text,
    email text
);

5. Insert후 select해서 확인

cqlsh:mykeyspace> INSERT INTO users (user_id, name, email) VALUES (123, 'John Doe', 'john@example.com');
cqlsh:mykeyspace> SELECT * FROM users;

 user_id | email            | name
---------+------------------+----------
     123 | john@example.com | John Doe

구조

아파치 카산드라에서 키스페이스와 테이블은 관계형 데이터베이스 관리 시스템(RDBMS)의 데이터베이스 및 테이블과 어느 정도 유사한 기본 개념이지만, 분산 데이터베이스라는 카산드라의 특성으로 인해 몇 가지 주요 차이점이 있습니다. 


Keyspace
Cassandra의 키스페이스는 데이터를 위한 가장 바깥쪽 컨테이너로, RDBMS의 데이터베이스와 유사합니다. 클러스터의 노드에서 데이터가 복제되는 방식을 정의합니다. 키스페이스의 주요 측면은 다음과 같습니다:

Replication Strategy

- Replication Factor: 데이터 사본이 저장될 노드 수를 결정합니다. 복제 계수가 높을수록 데이터 가용성과 내결함성이 증가합니다.

- SimpleStrategy: 단일 데이터 센터에 적합합니다. 파티셔너가 계산한 노드에 첫 번째 복제본을 배치하고 토폴로지를 고려하지 않고 링의 다음 노드에 시계 방향으로 추가 복제본을 배치합니다.

NetworkTopologyStrategy :
여러 데이터 센터 배포에 사용됩니다. 각 데이터 센터에서 원하는 복제본 수를 지정할 수 있습니다.

Durable Writes:
이 설정은 키스페이스에 기록된 데이터를 커밋 로그에 기록할지 여부를 지정합니다. 지속 쓰기를 비활성화하면 데이터가 손실될 수 있습니다.

=> 카산드라는 분산 DB이기 때문에 복제할 개수를 먼저 지정합니다.

 

Table


열 제품군이라고도 하는 Cassandra의 테이블은 데이터가 저장되는 곳입니다. 테이블은 키 스페이스 내에 정의되며 열로 정의된 스키마를 갖습니다. 주요 기능은 다음과 같습니다:

Primary Key: 기본 키는 Cassandra에서 필수이며 파티션 키와 클러스터링 열로 구성됩니다.

Partition Key: 노드 간에 데이터의 분포를 결정합니다. 동일한 파티션 키를 가진 행은 함께 저장됩니다.

Clustering Columns: 파티션 내에서 데이터를 정렬하는 데 사용되며 하위 키로 생각할 수 있습니다.

Columns: 각 테이블에는 각각 지정된 데이터 유형을 가진 열 집합이 있습니다. Cassandra는 다양한 데이터 유형을 지원합니다.

Data Modeling: RDBMS와 달리 Cassandra의 데이터 모델링은 쿼리 중심이어야 합니다. 실행하려는 쿼리를 기반으로 테이블 스키마를 설계하는 경우가 많습니다.

=> 카산드라 DB의 경우 클러스터링 키에 포함되거나 단일 프라이머리 키에 포함이 되어야지만 쿼리에서 조건절 검색이 가능하다. 따라서 실행하려는 쿼리를 먼저 설계한 후에 스키마를 설계해야 한다.

Data

counter : 숫자형태로 계속 업데이트 되는값. mysql의 Auto Increment와는 다르다.

uuid: uuid를 나타내는 자료형. 카산드라 DB는 병렬 처리되므로 Auto Increment가 존재하지 않기 때문에 고유값으로서 자주 사용한다.

int:숫자형

string:문자형

 

https://docs.datastax.com/en/cql-oss/3.3/cql/cql_using/useCounters.html

 

Using a counter

A counter is a special column for storing a number that is changed in increments. To load data into a counter column, or to increase or decrease the value of the counter, use the UPDATE command. Cassandra rejects USING TIMESTAMP or USING TTL in the command

docs.datastax.com

 

728x90
반응형
Comments