Cassandra Table
A Cassandra Table is a column family table (of Cassandra columns) within a Cassandra keyspace (within a Cassandra instance).
- AKA: Cassandra Column Family.
- Context:
- It can be queried with a Cassandra Query.
- It can be analyzed with Cassandra Nodetool, e.g.
nodetool cfstats
. - …
- Counter-Example(s):
- See: Distributed Data Store, Voldermort Data Store System, Redis Key-Value Table.
References
2015
- (Wikipedia, 2015) ⇒ http://en.wikipedia.org/wiki/Apache_Cassandra#Data_model Retrieved:2015-8-20.
- Cassandra is essentially a hybrid between a key-value and a column-oriented (or tabular) database.
:A column family (called "table" since CQL 3) resembles a table in an RDBMS. Column families contain rows and columns. Each row is uniquely identified by a row key. Each row has multiple columns, each of which has a name, value, and a timestamp. Unlike a table in an RDBMS, different rows in the same column family do not have to share the same set of columns, and a column may be added to one or multiple rows at any time.
Each key in Cassandra corresponds to a value which is an object. Each key has values as columns, and columns are grouped together into sets called column families.
Thus, each key identifies a row of a variable number of elements. These column families could be considered then as tables. A table in Cassandra is a distributed multi dimensional map indexed by a key.
Furthermore, applications can specify the sort order of columns within a Super Column or Simple Column family.
- Cassandra is essentially a hybrid between a key-value and a column-oriented (or tabular) database.
2012
- http://www.odbms.org/download/cassandra10.pdf
- … Column families can (and should) define metadata about the columns, but the actual columns that make up a row are determined by the client application. Each row can have a different set of columns. Although column families are very flexible, in practice a column family is not entirely schema-less. Each column family should be designed to contain a single type of data. There are two typical column family design patterns in Cassandra; the static and dynamic column families. …
2011
- http://en.wikipedia.org/wiki/Apache_Cassandra
- … Cassandra provides a structured key-value store with tunable consistency.[1] Keys map to multiple values, which are grouped into column families. The column families are fixed when a Cassandra database is created, but columns can be added to a family at any time. Furthermore, columns are added only to specified keys, so different keys can have different numbers of columns in any given family.
The values from a column family for each key are stored together. This makes Cassandra a hybrid data management system between a column-oriented DBMS and a row-oriented store.
- … Cassandra provides a structured key-value store with tunable consistency.[1] Keys map to multiple values, which are grouped into column families. The column families are fixed when a Cassandra database is created, but columns can be added to a family at any time. Furthermore, columns are added only to specified keys, so different keys can have different numbers of columns in any given family.
- http://wiki.apache.org/cassandra/DataModel
- The Cassandra data model is designed for distributed data on a very large scale. It trades ACID-compliant data practices for important advantages in performance, availability, and operational manageability. …
The basic concepts are:
- Cluster: the machines (nodes) in a logical Cassandra instance. Clusters can contain multiple keyspaces.
- Keyspace: a namespace for !ColumnFamilies, typically one per application.
- !ColumnFamilies contain multiple columns, each of which has a name, value, and a timestamp, and which are referenced by row keys.
- !SuperColumns can be thought of as columns that themselves have subcolumns.
- We'll start from the bottom up, moving from the leaves of Cassandra's data structure (columns) up to the root of the tree (the cluster).
- The Cassandra data model is designed for distributed data on a very large scale. It trades ACID-compliant data practices for important advantages in performance, availability, and operational manageability. …
2009
- http://www.eflorenzano.com/blog/post/my-thoughts-nosql/
- … Cassandra can be thought of as a huge 4-or-5-level associative array, where each dimension of the array gets a free index based on the keys in that level. The real power comes from that optional 5th level in the associative array, which can turn a simple key-value architecture into an architecture where you can now deal with sorted lists, based on an index of your own specification. That 5th level is called a SuperColumn, and it's one of the reasons that Cassandra stands out from the crowd.