Cassandra is a structured store. It has a rich data model that goes beyond a simple key-value model. This is a good thing as some of the complexity can be pushed to Cassandra, leading to simpler and more efficient applications. This post walks through the different data model elements.

Data model elements

You can also download a PDF version.

Column

A name value pair (contains also a time-stamp, not represented here for the sake of clarity).
Cassandra Column

Column

Super Column

A sorted associative array of columns.

Super Column

Super Column

Column Family

A container for columns sorted by their names. Column Families are referenced and sorted by row keys.

Column Family

Column Family

Super Column Family

A container for super columns sorted by their names. Like Column Families,  Super Column Families are referenced and sorted by row keys.

Super Column Family

Super Column Family

Keyspace

Top level element of a schema. Container for column families.

Examples

These examples are extracted from the model of a simple twitter clone discussed here.  I picked the statuses column family and the user relationships super column family.

Statuses Column Family

Statuses Column Family

User Relationships Super Column Family

User Relationships Super Column Family