Wide-column store

From HandWiki
Short description: Type of database

A wide-column store (or extensible record store) is a type of NoSQL database.[1] It uses tables, rows, and columns, but unlike a relational database, the names and format of the columns can vary from row to row in the same table. A wide-column store can be interpreted as a two-dimensional key–value store.[1] Google's Bigtable is one of the prototypical examples of a wide-column store.[2]

Definition

The name column-store historicaly referred to databases like C-Store, which was a column-oriented relational database. It eventually came to refer to Bigtable, Apache Cassandra, and similar systems, which also store groups of columns ("column families") together, but ditch the relational model.[3]

A wide-column store is a 2-level structure where each value is identified by 2 keys: the first key acts as a row identifier and the second acts as a column identifier. Columns are grouped together into column-families, which are physically stored together on disk.[4][3] The top-level structure of a wide-column store is called a keyspace, and column families are contained within this structure.[4] A wide-column database may also have supercolumns, which contain a map to other columns, this creating a nest column.[3][4]

The column families of a row may not necessarily be stored together on disk, but the columns within a column family are stored together.[4] A row is made up of a set of keys and values, which may span several column families, a column family is often likened to a table in a relational database.[4][3]

Versus document databases

Compared to a document databases, wide-column databases divide each record into column families that the database recognizes as separate units. This additional structure allows the database to organize into a two-dimensional structure, whereas document databases generally treat the entire document as the unit of storage and optimization despite allowing queries and partial retrievals of individual fields.[3]

Versus relational databases

Besides being denormalized, a wide-column database's structure is not as fixed as relational database, allowing dynamically adding columns, as well as allowing rows to have varying columns.[4]

Notable examples

Notable wide-column stores [5] include:

References