'Cassandra'에 해당되는 글 1건

  1. 2016.05.12 [Cassandra & C#] 설치 및 샘플코드
2016. 5. 12. 15:22

1. 다운로드

리눅스 및 맥, 윈도우즈등 다양한 플랫폼을 지원한다.

http://www.planetcassandra.org/cassandra/


2. 설치

윈도우환경에서 개발할 것이므로 윈도우 MSI installer를 다운로드받고 설치를 한다. 설치 과정은 특별히 선택할게 없었다.

설치 후 윈도우 메뉴에서 아래의 이미지처럼 설치 결과를 확인할 수 있다.

3. 실행 및 데이터베이스 생성

Cassandra CQL Shell을 실행하면 카산드라 콘솔이 생성되며 아래의 스크립트를 추가해본다. 

(본 블로거도 카산드라 초보이므로 카산드라 웹사이트에서 참고하여 대충 만들었다.)

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
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

Posted by CoolDragon