- Column (data store)
-
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]
- Unique name: Used to reference the column
- Value: The content of the column. It can have different types, like
AsciiType
,LongType
,TimeUUIDType
,UTF8Type
among others. - Timestamp: The system timestamp used to determine the valid content.
Contents
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 is a more important issue. 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 Apache Cassandra 0.7, may use the more sophisticated vector clock instead of the timestamp to resolve stale information.[2]
Differences to 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
- Super column
References
- ^ Chaker Nakhli. "Cassandra’s data model cheat sheet: Data model elements: Column". Chaker Nakhli's Blog - Yet another technical blog.. http://www.javageneration.com/?p=70. 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)."
- ^ "Apache Cassandra Glossary: Terms: Vector Clock". http://io.typepad.com/: Eben Hewitt's Cassandra Guide. http://io.typepad.com/glossary.html. Retrieved 2011-03-29. "A Vector Clock event synchronization strategy will likely be introduced in Cassandra 0.7."
External links
Categories:
Wikimedia Foundation. 2010.