DEV Community

Cover image for OLTP vs OLAP
GeraldM
GeraldM

Posted on

OLTP vs OLAP

Introduction

It's the favorite time of the year, Christmas. It's Christmas eve night and you remember that you haven't gotten your special person a gift yet. What do you do? hurriedly you get you phone and go straight to your favorite online shopping platform. You search for the product you want and you find it, only one is remaining in stock 'I am lucky' you sigh in relief and click on the buy now button. Immediately you click on the button, a popup appears saying 'Out of Stock', I guess you were not so lucky after all. But how did this happen? That is where Online Transactional Processing (OLTP) comes into play. Behind the scenes there was a system that made sure that you were able to see that your product has only one item left in stock and milliseconds later tell you that it is out of stock and at the same time sell the product to the other person who beat you to it. Next time buy your gifts early.
January is hear and the festivities are over. As data analyst working for an online shopping platform, your organization wants to go back in time ( 5 years), know what products sell best during the Christmas season, what regions have the highest sales, total revenues generated and customer trends over the period. How will these be possible? That is where Online Analytical Processing (OLAP) comes into play. With OLAP, you will have a system optimized to enalble you as an analyst perform complex queries and data analysis on these vast amount of data recorded over the past five years.

What is OLTP?

Online Transaction Processing (OLTP) is a type of database system that is designed to manage and process large numbers of short, fast and real-time transaction such as banking operations, online shopping, ATM withdrawals and point-of-sale purchases.

For example: When using an online shopping platform, you select the item you want to buy, add it to a shopping cart, enter your payment details and then click on the 'buy now' button. But what exactly happens? behind the system lies an online transactional processing system that verifies your customer account, checks the product inventory to make sure that the product you intend to buy is in stock, records the order, process the payment, updates the stock levels, generates an invoice and sends an order confirmation. Each of these actions must happen quickly and accurately within seconds and milliseconds while thousands if not millions of other users are also shopping at the same time. The OLTP database ensures that the transactions are completed reliably and preventing a situation where a product is sold twice while only one time was in stock.

What is OLAP?

Online Analytical Processing (OLAP) is a type of database system designed for analyzing large amounts of historical and business data to support decision-making, reporting, forecasting and business intelligence. They are optimized to handle complex queries and data analysis across multiple dimensions such as time, region, product or customers.

For example: A a supermarket chain with multiple stores across the country collects all its transactions data including what was sold, when, where and at what price and stores it a data warehouse. Managers and analysts can perform analysis on these data and gather insights such as; comparing total sales across different regions, finding out which products sell the most during weekends vs weekdays and perhaps identifying the best and least performing stores.

So what is the difference between OLTP and OLAP?
OLTP is optimized for executing online database transactions helping you to reliably and efficiently collect and store high volumes of transactional data while OLAP on the other hand is optimized for complex data analysis aiding you in analyzing the stored data and get insights that lead to business decisions and strategies.

Key differences between OLTP and OLAP

The primary purpose of Online Transactional Processing is to process (OLTP) is to process database transactions while Online Analytical Processing (OLAP) is to analyze aggregated data.

1. Data formatting

  • OLPT systems are unidimensional and focus on one data aspect. They use relational databases to organize data into tables with each raw representing an entity instance and each column representing an entity attribute.
  • OLAP systems store data in multidimensional data models so you can view data from different angles. OLAP databases store data in a cube format where each dimension represents a different data attribute and each of the cell in the cube represents a value or measure for the intersection of the dimensions.

2. Data architecture

  • OLTP database architecture prioritizes data write operations. It is optimized for write-heavy workloads and can update high-frequency, high-volume transactional data without compromising data integrity.
  • OLAP database architecture prioritizes data read over data write operations allowing analysts to perform complex queries on large volumes of data. Also, availability is low concern as the primary use case is analytics.

3. Performance

  • OLTP processing times are in milliseconds or less. OLPT databases manage databases updates in realtime. Updates are fast, short and triggered by you or your users. Stream processing is often used over batch processing.
  • With OLAP, processing times can vary from minutes to hours depending on the type and volume of data being analyzed. To update OLAP databases, you periodically process data in large batches then upload the batch to the system all at once. Data update frequency also varies between systems from daily, weekly or even monthly.

4. Requirements

  • OLTP requires high amounts of compute power and storage space. This is because of their nature of performing high amounts of transactions and at high speeds. They also store high volumes of data thus requiring a good amount of storage space ranging to gigabytes(GB). OLPT database can be cleared once the data has been moved to a data warehouse.
  • OLAP systems act like centralized data storage pulling data from data warehouses, relational databases and other systems. Storage requirements measure from terabytes(TB) to petabytes(PB). Data reads can also be compute intensive thus requiring high performing servers.

When to use OLPT vs OLAP

pick OLTP when your application processes individual transactions that need immediate consistency and fast response times. For example an e-commerce application or banking application that performs high volumes of transactions, has strict requirements where it cannot tolerate temporary inconsistencies and has low-latency point lookups such as user authentications and balance checks.

Choose OLAP when you need to analyze historical data through complex queries that aggregate millions of rows. For example huge multinational organizations that need to perform complex aggregations at scale, analyze historical trend analysis and has dashboard need for visualization and reporting needs for management.

Can OLPT and OLAP be used together?

The answer is yes. OLTP and OLAP systems are often used together in modern data systems where OLTP handles day-to-day business operations while OLAP supports analysis and decision making. For example, a business using OLTP to record customer transactional data in real time an using technologies such as change data capture (CDC) and tools such as Apache Kafka and Debezium they can stream database changes to OLAP systems.

Conclusion

OLTP and OLAP serve complementary but distinct roles in modern data-driven systems. OLTP is optimized for speed,accuracy and reliability while handling real-time transactional operations while OLAP is optimized for complex analysis enabling organizations to explore historical data and gather insights.

"Online Transactional Processing (OLTP) enables you to purchase products online and bank reliably while Online Analytical Processing (OLAP) enables the online shopping platform and banking institutions to perform analysis of you other millions of customers data and provide better services."

Top comments (0)