본문 바로가기

전체 글

Cassandra - Set, List, Map 사용하기 카산드라는 collection 을 column 값(value)으로 입력 할 수 있다. collection의 종류 로는 set, list, map 이 있다. 생성과 사용 법은 아래 글을 보자 CREATE TABLE users (user_id text PRIMARY KEY,emails set,groups list,option map); INSERT INTO users (user_id, emails, groups, option)VALUES ('doubleP', {'purepleya@gmail.com'}, ['home', 'company'], {'java' : 3, 'python' : 2}); SETUPDATE usersSET emails = emails + {'ma-pd@nate.com'}WHERE user_.. 더보기
Cassandra - Pycassa에서 CQL3 사용하기!!!! Python에서 Cassandra db를 사용하기 위한 도구로 Pycassa (https://github.com/pycassa/pycassa) 와 cassandra-dbapi2(https://code.google.com/a/apache-extras.org/p/cassandra-dbapi2/) 가 대표적이다. Pycassa 는 커넥션 풀기능이 좋으나 cql3를 사용하기가 번거롭고 cassandra-dbapi2는 cql3를 사용하기 쉬우나 커넥션 풀 기능이 약하다. java로 프로그래밍한다면 jdbc가 있으니까 다운받아서 사용하면 좋지만 python을 포기하기 싫어서 이래저래 알아보던중, cassandra-dbapi2 코드 중 일부를 가져와 Pycassa에서 쉽게 cql3를 사용 할 수 있도록 플러그인(?).. 더보기
Cassandra - Table(Column Family) 생성, 수정 (CQL) 예제로 보자생성CREATE TABLE emp ( empID int, deptID int, first_name varchar, last_name varchar, PRIMARY KEY (empID, deptID)); 칼럼을 추가하고 싶을때ALTER TABLE users ADD coupon_code varchar; 칼럼의 데이터 타입을 변경하고 싶을때 ALTER TABLE users ALTER coupon_code TYPE int; 테이블 삭제(Drop)DROP TABLE users; 특정 로우의 칼럼 삭제 DELETE session_token FROM users where pk = 'jsmith'; 특정 로우 삭제 DELETE FROM users where pk = 'jsmith'; 데이터를 입력할때는INS.. 더보기
Cassandra - Keyspace 에 생성된 column family(table) 조회 Keyspace 조회 방법SELECT * FROM system.schema_keyspaces;또는DESC KEYSPACES; Column Family 조회 방법SELECT columnfamily_name, commentFROM system.schema_columnfamiliesWHERE keyspace_name = 'test'; 더보기
Cassandra - CQL 데이터 타입 출처 : http://www.datastax.com/docs/1.2/cql_cli/cql_data_types CQL TypeConstantsDescriptionasciistringsUS-ASCII character stringbigintintegers64-bit signed longblobblobsArbitrary bytes (no validation), expressed as hexadecimalbooleanbooleanstrue or falsecounterintegersDistributed counter value (64-bit long)decimalintegers, floatsVariable-precision decimaldoubleintegers64-bit IEEE-754 floating poin.. 더보기
Cassandra - Keyspace 생성, 관리 (CQL) keyspace : RDB에서 database와 같은 개념 생성CREATE KEYSPACE demodb WITH REPLICATION = {'class' : 'SimpleStrategy', 'replication_factor': 3}; 삭제DROP KEYSPACE demodb; 사용USE demodb; 수정ALTER KEYSPACE "Excalibur" WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 3 }; ※ REPLICATION 옵션 중 "SimpleStrategy" 는 단일 데이터 센터일 경우, 멀티 데이터 센터일 경우 "NetworkTopologyStrategy"를 사용. 더보기
Cassandra - USER 관리 (CQL) ALTER USERALTER USER user_name WITH PASSWORD 'password' NOSUPERUSER | SUPERUSER; CREATE USERCREATE USER user_name WITH PASSWORD 'password' NOSUPERUSER | SUPERUSER; DROP USERDROP USER user_name; LIST USERSLIST USERS; 더보기
Cassandra - 로그인 설정 다른 DBMS (oracle, ms-sql 등..)들은 db에 접속하려면 등록된 사용자 아이디와 패스워드로 로그인을 해야 했다. 하지만 cassandra 는 그런 과정 없이 아무나 다 접속 할수 있게 되어 있다. cassandra 접속시 사용자 id / pw를 이용하기 위해서는 아래와 같은 순서로 설정을 변경하면 된다. 1. cassandra.yaml 설정 파일 수정파일 중간 즘(65행 즘) 에 보면authenticator: org.apache.cassandra.auth.AllowAllAuthenticator 라는 설정을authenticator: org.apache.cassandra.auth.PasswordAuthenticator 이렇게 바꿔준다. 2. cqlsh -u cassandra -p cassan.. 더보기