Column (data store)

A column consists of a (unique) name, a value, and a timestamp.

A column of a distributed data store is a NoSQL object of the lowest level in a keyspace. It is a tuple (a key-value pair) consisting of three elements:[1]

Usage

The column is used as a store for the value and has a timestamp that is used to differentiate the valid content from stale ones. According to the CAP theorem, distributed data stores cannot guarantee consistency, as availability and partition tolerance are more important issues. Therefore, the data store or the application programmer will use the timestamp to find out which of the stored values in the backup nodes are up-to-date.

Some data stores, like Riak, may use the more sophisticated vector clock instead of the timestamp to resolve stale information.

Differences from a relational database

In relational databases, a column is a part of a relational table that can be seen in each row of the table. This is not the case in distributed data stores, where the concept of a table only vaguely exists. A column can be part of a ColumnFamily that resembles at most a relational row, but it may appear in one row and not in the others. Also, the number of columns may change from row to row, and new updates to the data store model may also modify the column number. So, all the work of keeping up with changes relies on the application programmer.

Examples

In JSON-like notation, three column definitions are given:

{
    street: {name: "street", value: "1234 x street", timestamp: 123456789},
    city: {name: "city", value: "san francisco", timestamp: 123456789},
    zip: {name: "zip", value: "94107", timestamp: 123456789},
}

See also

References

  1. Chaker Nakhli. "Cassandra's data model cheat sheet: Data model elements: Column". Chaker Nakhli's Blog - Yet another technical blog. Retrieved 2011-03-29. A name value pair [consisting of a name and a value] (contains also a time-stamp, not represented here for the sake of clarity).


This article is issued from Wikipedia - version of the 10/14/2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.