이번 글에서는 Docker를 이용하여 Cassandra를 설치하고 활용하는 전 과정을 단계별로 정리해보겠습니다. Cassandra는 대용량 데이터를 빠르게 처리할 수 있는 고성능 NoSQL 데이터베이스로, 분산형 구조와 높은 확장성이 특징입니다.
📌 전체 설치 및 실습 워크플로우
Cassandra를 Docker로 설치하고 데이터를 조회하기까지의 흐름은 다음과 같습니다:
- Cassandra 이미지 다운로드
- 이미지 확인
- 컨테이너 실행
- 컨테이너 실행 여부 확인
- 컨테이너 내부 진입
- Cassandra Shell 실행
- Keyspace 및 테이블 생성
- 데이터 삽입 및 조회
1️⃣ Cassandra 이미지 다운로드
가장 먼저 DockerHub에서 Cassandra 이미지를 가져옵니다.
=> 먼저 Docker Desktop 실행시킬 것, 그래야 이미지 다운 가능
docker pull cassandra
2️⃣ 이미지가 제대로 다운로드됐는지 확인
docker images
cassandra 이미지가 리스트에 표시된다면 정상적으로 다운로드된 것입니다.
3️⃣ Cassandra 컨테이너 실행
docker run -p 7000:7000 -p 7001:7001 -p 7199:7199 -p 9042:9042 -p 9160:9160 --name cassandra -d cassandra:latest
- -p 옵션은 Docker 컨테이너의 포트를 로컬에 바인딩합니다.
- --name은 컨테이너 이름 설정입니다.
4️⃣ 컨테이너 실행 상태 확인
docker ps
=> cassandra 컨테이너가 Up 상태로 표시되면 실행 중입니다.
5️⃣ Cassandra 컨테이너 내부로 접속
docker exec -it cassandra bash
혹은 컨테이너 ID를 직접 입력해도 됩니다:
docker exec -it <container_id> bash
6️⃣ Cassandra Shell 실행 (cqlsh)
cqlsh
정상적으로 접속되면 cqlsh> 프롬프트가 나타납니다.
7️⃣ Keyspace 및 테이블 생성
✅ Keyspace 생성
CREATE KEYSPACE techframer WITH replication = {'class':'SimpleStrategy', 'replication_factor' : 1};
✅ Keyspace 목록 확인
DESC KEYSPACES;
✅ 테이블 생성
USE techframer;
CREATE TABLE student(
student_id int PRIMARY KEY,
student_name text,
student_city text,
student_fees varint,
student_phone varint
);
생성 전에는 해당 keyspace를 선택해야 합니다:
🔍 여기서 Keyspace란?
- Keyspace는 Cassandra에서 가장 상위의 논리적 데이터 단위입니다.
- 관계형 데이터베이스에서 데이터베이스(Database)와 비슷한 개념입니다.
- 테이블은 모두 특정 Keyspace 안에 존재합니다.
🧠 USE techframer;가 하는 일
- 이 명령을 실행하면 이후 실행되는 CREATE TABLE, SELECT, INSERT, UPDATE 등의 쿼리가 techframer라는 키스페이스 안에서 작동하게 됩니다.
- 마치 "techframer라는 데이터베이스 안에서 작업하겠다" 라고 선언하는 것과 동일합니다.
📌 예시
-- 키스페이스 설정
USE techframer;
-- 이 테이블은 techframer 안에 생성됨
CREATE TABLE student (
student_id int PRIMARY KEY,
student_name text
);
-- 이 SELECT도 techframer.student에서 조회됨
SELECT * FROM student;
🧷 정리
구문 | 설명 |
USE keyspace_name; | 이후 모든 쿼리가 해당 keyspace 기준으로 동작 |
안 쓰면? | 테이블을 지정할 때 keyspace를 함께 명시해야 함: SELECT * FROM techframer.student; |
즉, USE techframer;는 현재 컨텍스트를 지정한 키스페이스로 전환하는 명령어라고 이해하면 됩니다!
8️⃣ 데이터 삽입 및 조회
✅ 데이터 삽입
INSERT INTO student (student_id, student_fees, student_name) VALUES(1, 5000, 'Ajeet');
✅ 데이터 조회
SELECT * FROM student;
결과로는 삽입된 행이 출력됩니다.
✅ 마무리
이와 같은 방식으로 Docker를 활용하여 간편하게 Cassandra를 설치하고 데이터를 관리할 수 있습니다. 로컬 환경에서 복잡한 설치 과정을 생략하고 바로 실습에 들어갈 수 있다는 점이 Docker의 큰 장점입니다.
📎 참고 명령어 요약
목적 | 명령어 |
이미지 다운로드 | docker pull cassandra |
이미지 확인 | docker images |
컨테이너 실행 | docker run -p ... |
컨테이너 확인 | docker ps |
컨테이너 접속 | docker exec -it cassandra bash |
Cassandra Shell 실행 | cqlsh |
Keyspace 생성 | CREATE KEYSPACE ... |
테이블 생성 | CREATE TABLE ... |
데이터 삽입 | INSERT INTO ... |
데이터 조회 | SELECT * FROM ... |
'JanusGraph > JanusGraph 실습' 카테고리의 다른 글
[실습] Gremlin vs Cypher 상황별 성능 비교 실험 설계 (0) | 2025.04.21 |
---|---|
JanusGraph 실습 4 / import & export (0) | 2025.04.18 |
JanusGraph 실습 3 / Hbase 설치 및 활용 가이드 (0) | 2025.04.18 |
JanusGraph 실습 1 / 스키마와 데이터 모델링 (0) | 2025.04.17 |