These buzz words seem to be floating around quite a bit and tend to get thrown into every conversation around Business Intelligence. But what do they actually mean and how do they differ from each other. Below, I try to take a 100,000 ft view to try and differentiate between the three.
Operational Data Store (ODS)
Different folks call it different names and even if they don’t realize it themselves, most organizations already have an ODS. As depicted in the diagram of a previous blog, How Data Flows in a Typical BI Stack, all sources of data for any organization are writing to some kind of database(s). This could be a collection of small data stores or it could be one big database. Regardless of how it is structured, this is what is known as the Operational Data Store for the organization.
Data in an ODS is typically unstructured and unindexed (although newer technologies are trying to change this pattern). Because data is coming in from many different sources, data formats tend to be different as well. These qualities allow for very fast write operations to the ODS. At the same time, real-time analytics tend to be pretty much impossible.
Enterprise Data Warehouse (EDW)
The first step towards creating an analytics-friendly data store is creating an Enterprise Data Warehouse. In a typical BI stack, the EDW is populated with the help of an ETL. The ETL picks up the unstructured and unindexed data from ODS, transforms it to be structured and relational in nature, and puts it in a data warehouse.
Data in an EDW is structured, indexed, consistently formatted, and all available in one place If the data size and amount of I/O is small, the EDW might be good enough for reporting.
Data Mart (DM)
In a typical organization, data warehouses are huge and are designed for efficient write operations. There is a lot of data coming in from a lot of different sources, some of which could be client-facing and simply can not be bottlenecked by internal operations. In order to optimize analytical read operations and ensure that such operations are not blocking any critical client-facing writes, data is pulled into smaller subsets that are known as Data Marts.
Data in a Data Mart is targeted towards a specific business case, is highly structured & relational, is optimized for efficient analytical read operations, and indexed. Reports are typically run on top of data marts.