Databases like MongoDB, a NoSQL document database, are commonly used in environments where flexibility is required with big, unstructured data with ever-changing schemas. This post explains what a NoSQL database is, and provides an overview of MongoDB, its use cases and a solution for running an open source MongoDB database at scale.
What is a NoSQL database?
A NoSQL database which stands for ‘not only SQL,’ is a way of storing and retrieving data in means other than the traditional table structures used in relational databases (RDBMS). NoSQL databases support a variety of data models for storing and accessing data. Although NoSQL databases have existed for many years, they have become more popular in the era of cloud, big data and high volume web and mobile applications. Most NoSQL databases are designed to be scaled across multiple data centers and run as distributed systems, which enables them to take advantage of cloud computing infrastructure—and its higher availability—out of the box.
NoSQL databases are a better choice than RDBMS when one needs to store large amounts of unstructured data with changing schemas. NoSQL databases usually have horizontal scaling properties that allow them to store and process large amounts of data. NoSQL is often the data store of choice for agile software development methods, which require very short sprint cycles. Unlike relational databases, data prep is not required with NoSQL.
What is a NoSQL document database?
What is MongoDB?
One of the most commonly used open source NoSQL document databases is MongoDB. MongoDB is sometimes referred to as a ‘schemaless’ database as it does not enforce a particular structure on documents in a collection. Documents are a superset of all other data models and as such data can be structured based on application needs. This allows for a huge degree of versatility in storing various data types and accessing them on the fly.
MongoDB stores data in JSON-like documents that allow the data structure to be changed over time. If a new field needs to be added, it can be added without affecting all other documents in the collection and without taking the database offline. MongoDB supports various popular programming languages. It also provides a huge degree of operational flexibility as it scales very well horizontally i.e. the data can be spread or ‘sharded’ over multiple commodity servers, with the option to easily add more servers as necessary. MongoDB can be run anywhere – from developer laptops to private and public clouds.
MongoDB use cases
One of MongoDB’s most prominent possible use cases is big data. For organisations of all sizes, data management has shifted from being an important competency to a critical differentiator. The term big data refers to mass volumes of data that are too large, fast-moving and computationally complex to be processed by traditional, hierarchy-based data processing software.
Big data can help businesses build new applications to adapt and develop competitive advantages, improve customer satisfaction by providing a single view of the customer by aggregating customer and product information. As cloud computing, apps and online services become more ubiquitous, massive volumes of data is being accumulated that has analytics potential in a wide range of fields including finance, meteorology, aviation, online retail, genetic research, demographic studies and more. MongoDB’s NoSQL and non-relational structure is perfectly suited for handling big data. Organisations today are defining new initiatives and re-evaluating existing strategies to examine how they can transform their businesses using big data.
Some of the other use cases where MongoDB offers a robust database platform – content management systems, product data management, customer analytics, real-time data integration that requires large volumes of high-speed data logging and aggregation. With MongoDB, data from multiple sources can be effectively aggregated into a central repository to create a single view of anything – from a single view of the customer to creating a single view of exposure across asset classes or counter parties in financial trading.
Managed open source databases – for when scalability becomes a challenge
Open source databases can be deployed and integrated in the environment of choice based on business requirements or current infrastructure – cloud (public or private), on-premise, containers. These databases can be cost effective – projects can start as prototypes and develop quickly into production deployments. With no vendor lock-in, enterprises will be able to choose the provider that is best for them at any point in time and avoid expensive licensing.
As with any application running at scale, production databases and analytics applications require constant monitoring and maintenance. Engaging enterprise support for open source production databases minimises risk for business and can optimise internal efficiency. Canonical offers Managed Apps – a scalable and cost-effective solution for companies of all sizes and provides access to Canonical’s experts for open source databases.
Canonical’s managed open source apps portfolio is constantly evolving and expanding. Canonical manages applications at both the host and the guest level. Reach out to Canonical about your specific requirements and application needs›