A Dive into NoSQL Databases - Mongo, Elastic and S3
No SQL databases (interchangeably referred to as “non-relational”, “non-SQL”, and “not only SQL”) represents and approach to database design that provides flexible schemas for both the storage and retrieval of data. This contrasts with the traditional table structure found in relational databases. However, it is a misconception that non-relational databases do not store relationships between data. In NoSQL databases related data can be nested within a single data structure as opposed to split between tables.
Although NoSQL DBs have been around for many years, they have become more popular in recent years with the move from waterfall to agile, with the growth of big data and cloud storage and with a decrease in data storage costs. Their flexible schemas generally enable faster and more iterative development in contrast to the upfront planning necessary for a relational data model. With a decrease in cost for storing data, software engineers did not need to focus as closely on normalizing databases to reduce data duplication. This factor combined with the increase in Big Data (large velocity, volume and variety of data) led technologists to increasingly turn to NoSQL databases for the following advantages:
Handle large volumes of data at increased speeds and scalability (supporting auto-sharding to natively and automatically allow for scaling out),
Enabling easy updates to schemas and fields
Allowing for storage of structured, unstructured and semi-structured data.
MongoDB MongoDB is a Document type of NoSQL database. Document databases are characterized by pairs of fields and values and powerful query languages. Mongo DB is consistently ranked as the world’s most popular NoSQL database. Mongo DB is usually the best NoSQL database for you if your use case necessitates a highly scalable database with high throughput transactions.
Elastic Elastic is a NoSQL database that similarly stores data in a document form. Also known as Elasticsearch it is an open-source search engine which also offers powerful robust analytics through the ELK stack. Elastic is a good choice when your use case requires supporting full text searches or log analytics.
S3 Amazon S3 (short for Amazon Simple Storage Service) is a cloud object storage system with a web service interface. Although it allows you to collect, store and analyze data, Amazon does not classify it as a database. S3 utilizes a simple key based object store (key-value pair storage). S3 is well knows for being highly scalable, highly available (4 9s) and highly durable (11 9s of durability).