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 에 대한 샘플 코드는 이곳에서 받으실 수 있습니다.
'etc. > Cassandra' 카테고리의 다른 글
JAVA 에서 APACHE Cassandra 에 연결하기 Part 2 (0) | 2016.01.08 |
---|---|
아파치 카산드라 - CQL 실습 - Creating Table 2 (0) | 2015.12.25 |
아파치 카산드라 - CQL 실습 - Createing a table - Simple primary key (0) | 2015.12.22 |
아파치 카산드라 - CQL 실습 1 keyspace (0) | 2015.12.21 |
CQL Data Modeling - 카산드라에서 데이터 모델링 하기 (0) | 2015.12.19 |
CQL (Cassandra Query Language) (0) | 2015.12.18 |
Key concepts and data model (0) | 2015.12.11 |
Install Cassandra 2 - Maven 설치하기 (0) | 2015.12.10 |
Install Cassandra 카산드라 설치하기 (0) | 2015.12.09 |