Friday, May 28, 2010

Read and Write with Cassandra in Vb.Net

This is a first example of application in vb.net that write and read datas using Cassandra and HectorSharp interface(http://hectorsharp.com/). Just download HectorSharp and compile it to create libraries for your project. Obviously, we need to create a referenco to the HectorSharp library in our project before we can use it.

In this example we use the default keyspace of Cassandra (Keyspace1) and also a default Cassandta column family (Standard1).

We'll create a column called "MyColumn" in the column family and we'll put in a value.

For this purpose, we'll use a Web Application with label, called “lbltest”, where we'll show data picked from Cassandra.

Imports HectorSharp

[…]

'db connection
Dim cf As New KeyedCassandraClientFactory(New CassandraClientPoolFactory().Create(), _
New KeyedCassandraClientFactory.Config())
Dim client = cf.Make(New Endpoint("localhost", 9160))

'db definition (keyspace)
Dim keyspace = client.GetKeyspace("Keyspace1")

'Dim path = New ColumnPath(columnfamily name, supercolumn name (if present), column name)
Dim path = New ColumnPath("Standard1", "", "MyColumn")

'insert a value in db
keyspace.Insert("0", path, "My new value")

'get the value
Dim column As Column = keyspace.GetColumn("0", path)

lbltest.Text = column.Value


How you can see, working with Cassandra using HectorSharp is really simple.

Installing Cassandra in Windows

Installing Cassandra Project (http://cassandra.apache.org/)on Windows is really simple, maybe more the do it on Linux.

Cassandra is a BD engine written in Java, the only requirements to install it is Java 1.6 (Is better to use the most up-to-date version).

After installing Java, download the tar.gz archive for the official site and then untar it in the chosen folder (For this example we use "C:\Cassandra").

Well, now just do a bit of configuration. Open "C:\Cassandra\conf\storage-conf.xml" and change default value of the nodes below to:

<commitlogdirectory>C:\Cassandra\commitlog</commitlogdirectory>
<datafiledirectories>
<datafiledirectory>C:\Cassandra\data</datafiledirectory>
</datafiledirectories>

Note: normally is better to use two different disks for commit logs and datas.


Finally, we have to set "CASSANDRA_HOME" as system variable with value "C:\Cassandra"

So, now we can launch "C:\Cassandra\bin\cassandra.bat" to start the Cassandra Server.

Ok, at this point the Cassandra server will be "up-n-running".


To test it, we can launch "C:\Cassandra\bin\cassandra-cli.bat" and then give the command:

connect localhost/9160

If all works, we'll have this answer: "Connected to: "Test Cluster" in localhost/9160"

Enjoy :)