A wide-column store (or extensible record store) is a type of NoSQL database. 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. Google's Bigtable is one of the prototypical examples of a wide-column store.
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. 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. The top-level structure of a wide-column store is called a keyspace, and column families are contained within this structure. A wide-column database may also have supercolumns, which contain a map to other columns, this creating a nest column. The column families of a row may not necessarily be stored together on disk, but the columns within a column family are stored together. 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.
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.
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.
Notable examples Notable wide-column stores include:
Apache Accumulo Apache Cassandra Apache HBase Bigtable DataStax Enterprise (uses Apache Cassandra) DataStax Astra DB (uses Apache Cassandra) Hypertable Azure Tables ScyllaDB
References
