Problem Statement:-
I am trying to insert data into Cassandra database. I am using Netflix/Astyanax client
for this.
Below is the code which will upsert
data into Cassandra database
using Astyanax client
.
In my below method, it accepts two parameter. One is the userId
which I will be using as the RowKey
and attributes
map which will contain, column name
as the key and it's column value
as the value in the map.
Now how can I use Astyanax client
to upsert data
into Cassandra database using the below method which accepts those two parameters?
I am mainly concern about attributes
Map. How should I use that map to upsert
data into Cassandra database?
/**
* Performs an upsert of the specified attributes for the specified id.
*/
public void upsertAttributes(final String userId, final Map<String, String> attributes) {
MutationBatch m = CassandraAstyanaxConnection.getInstance().getKeyspace().prepareMutationBatch();
m.withRow(CassandraAstyanaxConnection.getInstance().getEmp_cf(), userId)
.putColumn(attributeName from attributesMap, attributeValue from attributesMap, null)
;
try {
m.execute();
} catch (ConnectionException e) {
StringBuilder message = new StringBuilder();
message.append("Failed to read from C* = '").append(e).append("'. ");
LOG.error("Failed to write data to C*", e);
throw new RuntimeException("failed to write data to C*", e);
}
}