Chapter 1. Introduction

Most organizations realize that their future depends on their ability to quickly adapt to the constant changes brought on by an ever-changing and complex environment. Without this agility, an organization’s IT systems become stagnant and eventually ineffective. Because of this, enormous amounts of pressure are placed on the CIO and the organization’s technology centers to come up with innovative solutions to complex processes and problems. More and more we are seeing that the core source behind these innovative solutions is data. This is because within most organizations, there is no shortage of data.

Now that we have all of this data, we’re going to need to provide access to users so that they can start to create meaningful and relevant solutions. How we decide to enable this access will be critical. And although there are many different approaches and technologies that we can use to achieve this, each approach serves a specific purpose and use case but typically leaves gaps that need to be filled with additional technologies, tools, and integrations. For example, tabular data that we see in RDBMS-based systems require an up-front investment of time to model data. This up-front cost often results in complex data models that are to rigid to support changing data sources and requirements. Other types of data that can be helpful in meeting a system’s requirements might include document-based data (XML or JSON), semantic data, and textual data.

Having access to multiple data models might be useful when implementing different use cases, but using multiple data models comes with a cost: increased implementation time, complexity, maintenance, and so on. The cost/benefit trade-off relating to the complexity and benefit that multiple data models offers is something we no longer have to consider when using a multi-model database. In this report, we see how multi-model databases reduce the time and effort required to bring a robust and scalable system to life by allowing us to take advantage of many different types of data models (and multiple schemas) in a single backend.

What’s the Correct Approach?

With the many options we have available to us, deciding on the approach that fits your system needs can be overwhelming. Let’s take a look at some of the common requirements and issues you might face.

Here’s What We Have

A typical data-centric system will have many issues that need to be addressed. Here are some issues you will typically need to handle:

  • A large amount of data that we need to access

  • A list of users eager to access the data and start utilizing it

  • A bunch of technologies and tools to choose from, which may or may not meet all of our current and future requirements

Where do we go from here? Let’s begin by looking at how most organizations traditionally choose to move forward.

Integrating Multiple Data Stores

Most IT system implementers realize that data will need to be accessed by different users, with many different use cases, and in many different formats. So, how do they account for this complexity? They decide to bring in all of the technologies that are required to meet the use cases and worry about integrating them later on. What they end up with is something like that shown in Figure 1-1.

gamd 0101
Figure 1-1. The potential complexity involved in integrating multiple data storage technologies

Figure 1-1 shows a typical infrastructure implementation involving multiple data stores and the complexity required to make it all work together. With this type of infrastructure becoming common across enterprise systems, the term polyglot persistence has emerged. Polyglot persistence refers to the fact that because a system might contain many different types of data storage technologies, applications will be required to interface with multiple databases and data models. As polyglot persistence calls for system implementers to use the best database for the problem at hand, we can easily see how it creates additional complexity. Utilizing polyglot persistence without a multi-model database, you would need to worry about data consistency, data integrity, and system access and synchronization, among many other potential issues. This complexity ends up growing over time as more users tap into the IT system, and more use cases are discovered. Nine times out of 10, the complexity of the system grows to an unsustainable level, and the system is useless and ultimately retired. The multi-model database gives us the ability to take advantage of multiple data models without this additional layer of complexity.

We know that we don’t want to deal with the complexity of integrating multiple data stores. So, what can we do if we know we must do the following:

  • Serve a diverse set of clients

  • Provide access to an ever-changing and complex set of data

All of these issues are addressed by using a multi-model database approach.

The Multi-Model Database

First, let’s clearly define what a multi-model database is and some of the problems it solves.

A multi-model database is a platform that does the following:

  • Supports multiple data models in their natural form within a single, integrated backend, and uses data standards and query standards appropriate to each model

  • Provides seamless querying across all the supported data models

  • Supports indexing, parsing, and processing standards appropriate to the data models

  • Supports document, graph, relational, key-value models, etc.

By using a multi-model database, you maintain the advantage of being able to store and provide different data models to different users without adding the additional complexity that comes along with polyglot persistence. Using a multi-model database to create an agile data system will ensure that you are creating a system that is future proof and will continuously adapt to your needs.

Let’s take a more detailed look at the multi-model database and how it can greatly increase your organization’s data agility.

Get Gaining Data Agility with Multi-Model Databases now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.