Database Reference
In-Depth Information
10.3 NoSQL
NoSQL (Not only Structured Query Language) is a term used to describe those data
stores that are applied to unstructured data. As described earlier, HBase is such a
tool that is ideal for storing key/values in column families. In general, the power of
NoSQL data stores is that as the size of the data grows, the implemented solution
can scale by simply adding additional machines to the distributed system. Four
major categories of NoSQL tools and a few examples are provided next [40].
Key/value stores contain data (the value) that can be simply accessed by a given
identifier (the key). As described in the MapReduce discussion, the values can be
complex. In a key/value store, there is no stored structure of how to use the data;
the client that reads and writes to a key/value store needs to maintain and utilize the
logic of how to meaningfully extract the useful elements from the key and the value.
Here are some uses for key/value stores:
• Using a customer's login ID as the key, the value contains the customer's
preferences.
• Using a web session ID as the key, the value contains everything that was
captured during the session.
Document stores are useful when the value of the key/value pair is a file and the
file itself is self-describing (for example, JSON or XML). The underlying structure
of the documents can be used to query and customize the display of the documents'
content. Because the document is self-describing, the document store can provide
additional functionality over a key/value store. For example, a document store
may provide the ability to create indexes to speed the searching of the documents.
Otherwise, every document in the data store would have to be examined. Document
stores may be useful for the following:
• Content management of web pages
• Web analytics of stored log data
Column family stores are useful for sparse datasets, records with thousands of
columns but only a few columns have entries. The key/value concept still applies,
but in this case a key is associated with a collection of columns. In this collection,
related columns are grouped into column families. For example, columns for age,
gender, income, and education may be grouped into a demographic family. Column
family data stores are useful in the following instances:
• To store and render blog entries, tags, and viewers' feedback
Search WWH ::




Custom Search