Let me point you to the project that Brian and I have been working on that utilizes cassandra with storm: https://github.com/hmsonline/storm-cassandra-cql
There are several examples you can look at to see how to develop a CqlTupleMapper that fits your key/column mapping. The code is still being developed but there is a suitable backing map implementation for CQL3 that works for persisting aggregations as well as just storing partition persists.
For your needs, you would want to define a trident topology that groups your incoming data (sentences) by the method:
inputStream.groupBy(new Field("sentences"))
You would then implement a CqlTupleMapper -- specifically the map(K key, V value) that would have a custom CQL insert statement that maps the keys to its passed value. Your query would be something like:
@Override
public Statement map(List<String> keys, String value) {
Insert statement = QueryBuilder.insertInto(KEYSPACE_NAME, TABLE_NAME);
statement.value("id", keys.get(0));
statement.value("name", keys.get(1));
statement.value("sentence", value);
return statement;
}
I hope that helps.