We already discussed the fundamentals of Apache Cassandra in a previous article. We also discussed how to configure Apache Cassandra database in local computer.We discussed the operations like insertion into Apache Cassandra and reading into Apache Cassandra database. In this chapter we are discussing how a column from a column family is deleting from Cassandra using Java program . The program explains here is using Hector API.So we should include the libraries listed in the configuration page to the workspace.
Deleting a column from Apache Cassandra using Java
We are using the same ‘USERKEYSPACE‘ created using the Cassandra command line client as explained in the configuration page.We are using the same column family ‘userColumnFamily‘ created earlier.We are trying to delete one column among the three we inserted there.So our column family structure before deletion is:
So ‘names‘ is the row key . ‘1‘ , ‘2‘ and ‘3‘ are the column names.We are going to delete the column with column name ‘3‘. Now lets see the Java code.
DeleteSample.java
import me.prettyprint.cassandra.model.HColumnImpl;
import me.prettyprint.cassandra.serializers.StringSerializer;
import me.prettyprint.cassandra.service.ColumnSliceIterator;
import me.prettyprint.hector.api.Cluster;
import me.prettyprint.hector.api.Keyspace;
import me.prettyprint.hector.api.factory.HFactory;
import me.prettyprint.hector.api.mutation.Mutator;
import me.prettyprint.hector.api.query.SliceQuery;
public class DeleteSample {
Cluster cluster = null;
Keyspace keySpace = null;
public DeleteSample() {
}
public void getConfig() {
cluster = HFactory.getOrCreateCluster("Test Cluster", "localHost:9160");
keySpace = HFactory.createKeyspace("USERKEYSPACE", cluster);
}
public void readDetails() {
if (null != cluster && null != keySpace) {
SliceQuery
.createSliceQuery(keySpace, StringSerializer.get(),
StringSerializer.get(), StringSerializer.get())
.setKey("names").setColumnFamily("userColumnFamily");
ColumnSliceIterator
query, null, "\u00FFF", false);
while (iterator.hasNext()) {
HColumnImpl
.next();
System.out.println("Column name = " + column.getName()
+ "; Column value = " + column.getValue());
}
}
}
public void deleteColumn() {
if (null != cluster && null != keySpace) {
StringSerializer stringSerializer = StringSerializer.get();
Mutator
stringSerializer);
mutator.delete("names", "userColumnFamily", "3", stringSerializer);
}
}
public static void main(String[] args) {
DeleteSample sample = new DeleteSample();
sample.getConfig();
System.out.println("Before Deleting a column ...");
sample.readDetails();
System.out.println("Deleting....");
sample.deleteColumn();
System.out.println("After deletion....");
sample.readDetails();
System.out.println("Done......");
}
}
Output
Before running the code the libraries listed in the configuration page should be added as dependency and Apache Cassandra should be started as discussed there. Then run the code.
Before Deleting a column …
Column name = 1; Column value = Bijoy
Column name = 2; Column value = Karthik
Column name = 3; Column value = JayaKrishnan
Deleting….
After deletion….
Column name = 1; Column value = Bijoy
Column name = 2; Column value = Karthik
Done……
See Related Posts:
Configuring Apache Cassandra in local computer
Inserting data into Apache Cassandra using Java
Reading data from Apache Cassandra using Java
Listing columns in a column family using Java