Cassandra 19

[Cassandra] Import, Export csv file using CQL COPY command

카산드라에서는 Insert로 데이터를 넣는 방법 외에 csv 파일로 데이터를 한꺼번에 넣을수 있는 기능과 카산드라의 데이터를 csv 파일로 저장하는 기능을 지원한다. 이런 기능은 cql창에서 COPY 명령어를 사용하면 가능하다. # Import : Csv File -> Cassandra COPY table_name [( column_list )] FROM 'file_name'[, 'file2_name', ...] | STDIN [WITH option = 'value' [AND ...]] # Export : Cassandra -> Csv File COPY table_name [( column_list )] TO 'file_name'[, 'file2_name', ...] | STDOUT [WITH optio..

Database/Cassandra 2020.05.23

[Cassandra] 원격(remote), 로컬(local) 동시 접속

카산드라 운영시, 원격 서버에 카산드라를 설치하고 로컬에서 CQL쉘을 실행하거나 동시에 접속하고 싶은 경우가 있다. bin/cassandra.yaml 파일의 옵션을 아래와 같이 수정하면 원격에 있는 카산드라도 로컬에서 접속 가능하다. 1. 수정 항목 rpc_address: 0.0.0.0 broadcast_rpc_address: 192.168.0.2 listen_address: 192.168.0.2 seeds : 192.168.0.2 2. 추가 항목 start_rpc: true 수정 항목 및 추가 항목을 yaml에 적용 후, 카산드라를 재 실행하면 카산드라가 어디 있든, 로컬, 원격 접속 모두 가능하다. https://docs.datastax.com/en/archived/cassandra/3.0/cassa..

Database/Cassandra 2020.05.22

[Cassandra] Table, Column, Partition Key Clustering Key

카산드라 테이블 생성, Partition Key와 Clustering Key 설정, 컬럼 특성에 대해서 알아보자. 1. 테이블 생성 규칙 테이블 이름은 영숫자 및 밑줄로 구성될수 있다. 반드시 문자로 시작해야한다. 2. 주요 키 카산드라의 주요 키(Primary key)는 파티션 키(Partition Key)와 클러스터링 키(Cluster Key)로 구성되어 있다. 주요 키를 설정은 테이블을 생성할 때 적용할 수 있다. RDBMS의 쿼리문과 비슷하게 사용할 수 있다. 파티션키는 필수적으로 설정되어야하고, 복합키로도 설정이 가능하다. 주요 키 설정 방법은 2가지가 있다. 방법 1. Column에 직접 설정 CREATE TABLE emp( emp_id int PRIMARY KEY, emp_name text,..

Database/Cassandra 2020.05.21

[Cassandra][java] PreparedStatement vs Statement

PreparedStatement, Staement 개념 PreparedStatement와 Statement의 가장 큰 차이점은 캐시(cache) 사용여부이다. 주요 역할 ① 쿼리 문장 분석 ② 컴파일 ③ 실행 Statement를 사용하면 매번 쿼리할때마다 3가지 주요역할을 수행한다. 하지만 PreparedStatement는 처음 한번만 3가지 주요역할을 수행하고, 캐시에 담아 재사용한다. 특징 비교 Statement PreparedStatement 어떤 SQL문을 사용하는지 파악하기 쉽다. executeQuery() 나 executeUpdate() 를 실행하는 시점에 파라미터로 SQL문을 전달 어떤 SQL문을 사용하는지 파악하기 어렵다. 보통 조건절과 함께 사용되며 재사용이 되는데, ? 부분에만 변화를 ..

Database/Cassandra 2020.05.20

[Cassandra] multi-node cassandra docker-compose.yml file

카산드라를 도커에 설치하기 위한 방법은 대표적으로 도커와 도커 컴포즈 방법이 있다. 하나씩 띄우기에는 도커로 간편하게 띄울 순 있지만, 카산드라를 멀티 노드로 구축하거나, 카산드라 외에 다른 어플리케이션과 함께 설치하고 관리해야하는 경우에는 도커 컴포즈 파일로 한꺼번에 띄우는 방법을 사용할 수 있다. 도커 컴포즈는 사전에 설치 되어 있어야한다. 도커 컴포즈를 실행시키기전에 아래 yml 파일 구성을 먼저 확인한다. version: "3.8" services: cassandra-0: image: cassandra:latest restart: always ports: - 7000:7000 - 9042:9042 volumes: - /home/cassandra-node-0/commitlog:/var/lib/cas..

Database/Cassandra 2020.05.18

[Cassandra] select 쿼리 작성시 참고사항

Cassandra 디자인 하면서 데이터를 가져오는 Select 쿼리 실행시 참고하면 좋을 내용을 정리해보았다. 1. 대소문자 구분 안함 카산드라는 대소문자를 구문 안하므로, CamelCase와 같은 문자 표기법을 사용할 수 없다. 대문자로 입력해도 무조건 소문자로 저장한다. 대문자를 사용하고 싶다면 큰따옴표를 사용하면 강제로 실행할수 있다. [공식 다큐먼트] 2. 복합키 사용 (Compund Primary key) 카산드라에서는 Primary key가 Partition key와 Clustering key로 구분된다. 이는 테이블 생성시 Primary key 항목에 , 로 구분하여 입력하면된다. 기억해야할 점은 Partition key는 필수적으로 지정해줘야하고, 복수개 설정이 가능하다. Clusterin..

Database/Cassandra 2020.05.14

[Cassandra] 테이블 설계시 확인 사항

우리는 데이터를 가지고 있기 때문에, 쿼리를 할수 있는 것일까? 정답은 No이다. SQL 을 사용할때는 간단해 보이지만, 카산드라에서는 설계할 때 매우 어렵다. 카산드라 설계시 확인해야할 사항에 대해서 알아보자. 확인 1. 카산드라의 각 row는 2개의 primary key로 구성 partition key 클러스터내에 위치를 결정한다. 파티션 키 해쉬는 파티션이 위치해 있는 카산드라 클러스터의 어느 노드에 위치할 것인지 가르킨다. clustering key 파티션 내의 row 위치를 결정한다. 파티션 키 또는 클러스터링 키를 통한 쿼리는 빠르고 효율적이다. 그러나 이는 일반적으로 동등 비교 (비평 등 비교는 클러스터링 키의 마지막 부분에서만 수행 할 수 있음)이며 차원 열은 실제로 키에 맞지 않습니다. ..

Database/Cassandra 2020.05.05

[cassandra] docker + cassandra

분산시스템 구성을 위해 docker위에 cassandra를 셋팅하는 법에 대해서 알아보자. 1. docker에 cassandra download docker pull cassandra:latest 2. 노드 0번 (seed node) 실행 docker run --name cassandra-node-0 --p 7000:7000 -p 7001:7001 -p 9042:9042 -p 9160:9160 -e CASSANDRA_CLUSTER_NAME=MyCluster -e CASSANDRA_ENDPOINT_SNITCH=GossipingPropertyFileSnitch -e CASSANDRA_DC=datacenter1 -d cassandra 3. seed 노드에 할당된 ip 확인 >docker inspect --fo..

Database/Cassandra 2020.04.22

[Cassandra][ERROR] Can't detect Python version!

CQL 쉘과 파이썬 버전 카산드라에서는 파이썬 스크립트를 이용하여 CQL쉘을 실행할 수 있다. CQL 쉘은 CQL 명령을 대화식으로 실행하는 파이썬 기반 명령 클라이언트이다. CQL 쉘을 사용할 땐, 파이썬 버전이 중요하다. 현재는 2.7.X 버전에서 안정적으로 실행되며, 3.X 버전은 지원이 안되고, 실행도 안된다! 파이썬 2.7 버전 지원은 2020년도에 종료될 예정이라서 걱정했는데, 카산드라의 4.X.X 버전에는 파이썬 3 버전이 적용된다고 하니 카산드라의 지원을 기다려 봐야겠다. 만약 파이썬 버전을 확인하지 않고, 3.X 버전에서 CQL 쉘을 실행하려고 한다면, 'Can't detect Python version!' Error가 발생할 것이다. 파이썬 에러 해결 방안 이를 해결하기 위해선 파이썬 ..

Database/Cassandra 2019.04.03