In today’s cloud computing Key value Pair data-stores are more preferred than the traditional database. Key-value model is simple non-trivial data model.
The database supporting key-value pair supports REST-ful API’s for data access.The widely support some of the important features like
- Search – Distributed, full search engine with query language
- Secondary Index – Tag the stored objects with extra value for faster and wider search
- MapReduce – Non-Key based query for large data set
The data modeling process of KV is based on AccessPattern. In KV databases the modelling happens in the application layer.
Type of data suitable for storing in a key-value pair data-store
- Data of indeterminate form. For example each HTML page is different. Defining a schema for such page is complex. Since relational database expects schema, it is not possible to store the HTML page. Key-value data-store does not require a schema and it would be a best fit for such data.
- Data of huge size and quantity. RDBMS are optimized for small rows that supports table fitting within a single server. In contrary Key-value data-stores supports storing large objects with huge quantity spread across multiple servers.
- Unrelated Data. Application might require storing unrelated data which is not suitable to be stored in RDBMS. Since Key-value pair data stores are not based on relations, storing such unrelated data is supported.
Most KV databases does not support query engine. The lookup-path can be directly to the objects in memory or on disk. This helps in scaling.
KV does not restrict on the type of data to be stored. The application code is responsible for parsing the data. This helps the KV database to scale irrespective of the data being stored.