반응형
블로그 이미지
개발자로서 현장에서 일하면서 새로 접하는 기술들이나 알게된 정보 등을 정리하기 위한 블로그입니다. 운 좋게 미국에서 큰 회사들의 프로젝트에서 컬설턴트로 일하고 있어서 새로운 기술들을 접할 기회가 많이 있습니다. 미국의 IT 프로젝트에서 사용되는 툴들에 대해 많은 분들과 정보를 공유하고 싶습니다.
솔웅

최근에 받은 트랙백

글 보관함



Getting Started with Apache Cassandra and Java (Part I)

By Rebecca Mills, Apache Cassandra Junior Evangelist (@rebccamills)




이 강좌를 따라하시려면 Cassandra instance를 이미 가동한 상태여야 합니다. 그리고 다음 10분 강좌를 마치시면 좋습니다.
http://www.PlanetCassandra.org/try-cassandra

Part 1을 이미 보셨다면 그 다음인 Part 2를 보세요. Getting Started with Apache Cassandra and Java Part II.

그리고 사용할 keyspace와 schema 를 만들어 두시고 아래 내용을 실습할 때 사용하세요.


 
Setup



우리는 이 내용을 배우기 위해 간단한 console 어플리케이션을 만들 겁니다. 텍스트 에디터를 여시고 클래스 이름이 GettingStarted 라는 single main method를 가지는 자바파일을 생성하세요.

public class GettingStarted {

        public static void main(String[] args) {

그리고 다운로드 페이지에서 driver jar 파일을 다운로드 받습니다. 다운 받으시려면 여기를 누르세요. 다운 받은 후엔 이것을 여러분의 작업 directory에 expand 하세요. 이렇게 하면 자바파일을 컴파일 할 때 classpath 에 이것을 포하게 됩니다.

For example:
javac -classpath cassandra-java-driver-2.0.2/cassandra-driver-core-2.0.2.jar:. GettingStarted.java

  이 파일을 run 할 때에는 아래와 같이 하게 됩니다.
 
java -classpath cassandra-java-driver-2.0.2/*:cassandra-java-driver-2.0.2/lib/*:. GettingStarted



Try it Out

코딩은 main method에 할 겁니다. 우선 reference들을 hold 할 cluster 와 session instance 필드들을 생성해야 합니다. session은 cluster 에 대한 connection을 관리할 겁니다.

Cluster cluster;
Session session;

instance 에 연결하는 것은 Cluster.builder 메소드를 사용합니다. 여기에 contact point를 넣고 cluster instance를 build 할 겁니다. 해당 cluster로부터 session을 받은 다음 demo 라는 keyspace에 연결합니다.

// Connect to the cluster and keyspace "demo"
cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
session = cluster.connect("demo");

이제 demo 라는 키스페이스에 연결 됐습니다. 이제 user를 users라는 테이블에 insert 해 보겠습니다.

// Insert one record into the users table
session.execute("INSERT INTO users (lastname, age, city, email, firstname) VALUES ('Jones', 35, 'Austin', 'bob@example.com', 'Bob')");

자바 드라이버를 사용해서 쉽게 그 user 정보를 다시 받아올 수 있습니다.

// Use select to get the user we just entered
ResultSet results = session.execute("SELECT * FROM users WHERE lastname='Jones'");
for (Row row : results) {
System.out.format("%s %d\n", row.getString("firstname"), row.getInt("age"));
}


Bob의 생일이니까 이제 Bob의 나이를 update 해 보겠습니다.

// Update the same user with a new age
session.execute("update users set age = 36 where lastname = 'Jones'");
// Select and show the change
results = session.execute("select * from users where lastname='Jones'");
for (Row row : results) {
System.out.format("%s %d\n", row.getString("firstname"), row.getInt("age"));

}

이제 테이블에서 Bob을 한번 지워 보겠습니다. 그리고 나서 모든 row를 print 합니다. delete 된 이후에는 Bob에 대한 정보를 볼 수 없게 될 겁니다. (이전에 정보가 입력돼 있다면 그 정보는 보실 수 있을 겁니다.)

// Delete the user from the users table
session.execute("DELETE FROM users WHERE lastname = 'Jones'");
// Show that the user is gone
results = session.execute("SELECT * FROM users");
for (Row row : results) {
System.out.format("%s %d %s %s %s\n", row.getString("lastname"), row.getInt("age"),  row.getString("city"), row.getString("email"), row.getString("firstname"));
}

모든 작업을 마치면 connection을 반드시 닫아 주세요.

// Clean up the connection by closing it
cluster.close();
    }
}




CQL은 SQL 과 아주 유사합니다. 대부분의 SQL syntax가 CQL에서도 사용됩니다. 만역 관계형 데이터베이스에 대한 사전 지식이 있다면 데이터에 대한 쿼리를 이해하시기 쉬울 겁니다.

이제 Cassandra cluster에 연결하고 데이터베이스에 대해 쿼리를 실행시키면서 관리하는 방법을 배웠습니다. 이 글을 통해 Java Driver를 사용해서 Cassandra를 사용하는 것이 얼마나 쉬운일인지 이해하셨으면 합니다. 전체 console application 에 대한 샘플 코드는 이곳에서 받으실 수 있습니다.

반응형

Comment