1. 다운로드
리눅스 및 맥, 윈도우즈등 다양한 플랫폼을 지원한다.
http://www.planetcassandra.org/cassandra/
2. 설치
윈도우환경에서 개발할 것이므로 윈도우 MSI installer를 다운로드받고 설치를 한다. 설치 과정은 특별히 선택할게 없었다.
설치 후 윈도우 메뉴에서 아래의 이미지처럼 설치 결과를 확인할 수 있다.
3. 실행 및 데이터베이스 생성
Cassandra CQL Shell을 실행하면 카산드라 콘솔이 생성되며 아래의 스크립트를 추가해본다.
(본 블로거도 카산드라 초보이므로 카산드라 웹사이트에서 참고하여 대충 만들었다.)
1 2 3 4 5 6 7 8 9 10 11 12 | CREATE KEYSPACE demo WITH REPLICATION = { 'class' : 'SimpleStrategy' , 'replication_factor' : 3 }; CREATE TABLE demo.users ( lastname text PRIMARY KEY , age int , city text, email text, firstname text ); DROP TABLE demo.users; |
4. C# 프로젝트
Nu-Get을 통하여 driver를 설치
Install-Package CassandraCSharpDriver
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Cassandra; namespace CassandraSample { class Program { static void Main( string [] args) { Cluster cluster = Cluster.Builder().AddContactPoint( "127.0.0.1" ).Build(); ISession session = cluster.Connect( "demo" ); session.Execute( "insert into users (lastname, age, city, email, firstname) values ('Jones', 35, 'Austin', 'bob@example.com', 'Bob')" ); Row result = session.Execute( "select * from users where lastname = 'Jones'" ).First(); Console.WriteLine( "{0} {1}" , result[ "firstname" ], result[ "age" ]); Console.ReadLine(); session.Execute( "update users set age = 36 where lastname = 'Jones'" ); Row result2 = session.Execute( "select * from users where lastname = 'Jones'" ).First(); Console.WriteLine( "{0} {1}" , result2[ "firstname" ], result2[ "age" ]); Console.ReadLine(); session.Execute( "delete from users where lastname = 'Jones'" ); RowSet rows = session.Execute( "select * from users" ); foreach (Row row in rows) Console.WriteLine( "{0} {1}" , result2[ "firstname" ], result2[ "age" ]); Console.ReadLine(); } } } |
5. 결론
그냥 실행만 해보는 수준이다 보니 카산드라가 다른 NoSQL이나 MSSQL과 같은 DB에서 지원하는 기능을 얼마나 지원해주고 더 나은 부분을 확인은 할 수 없었다. 다만, 위에 보는 거와 같이 쉽게 연동이 가능해 보이며 ANSI SQL을 지원하기에 이미 MSSQL, ORACLE, MYSQL의 DB를 사용해본 사람이라면 쉽게 접근할 수 있지 않을까 싶다.
Reference: https://academy.datastax.com/resources/getting-started-apache-cassandra-and-c-net