Software · Arquitetura & Engenharia de Dados

OLTP versus OLAP: Linhas Transacionais, Armazenamento Colunar e Data Warehouses

Por que bancos transacionais e analíticos operam em polos opostos e como o armazenamento colunar viabiliza consultas em bilhões de registros sem travar a produção.

Diagrama comparativo entre processamento transacional OLTP em linhas e processamento analítico OLAP colunar em Data Warehouse
Neste artigo

Um dos incidentes mais clássicos em empresas de tecnologia ocorre quando um analista de negócios ou desenvolvedor executa uma consulta pesada com múltiplos JOINs e agregações temporais diretamente no banco de dados transacional da aplicação em pleno horário comercial. Em questão de segundos, a CPU do banco atinge 100%, os bloqueios de tabelas (table locks) se multiplicam e os usuários finais começam a receber erros de tempo esgotado (timeout) na finalização de compras.

Esse conflito operacional acontece porque bancos operacionais transacionais e repositórios analíticos foram projetados para atender a propósitos computacionais diametralmente opostos: OLTP (Online Transaction Processing) e OLAP (Online Analytical Processing).

A Anatomia do Armazenamento: Linhas versus Colunas

A diferença estrutural mais importante entre OLTP e OLAP reside na forma física como as páginas de dados são gravadas no disco:

Paradigma de Armazenamento Layout Físico dos Blocos no Disco Comportamento de Leitura e Gravação Caso de Uso Ideal
Por Linhas (OLTP) (Ex: PostgreSQL, MySQL) Bloco 1: [ID: 1, Nome: "Ana", Data: "2026-01-01", Total: 150.00] · Bloco 2: [ID: 2, Nome: "Bruno", Data: "2026-01-01", Total: 89.90] Lê e grava a entidade inteira em uma única operação atômica de I/O. Inserir novo pedido ou buscar usuário específico por ID.
Por Colunas (OLAP) (Ex: ClickHouse, BigQuery) Bloco ID: [1, 2, 3, 4, 5, 6, 7, ...] · Bloco Data: ["2026-01-01", "2026-01-01", ...] · Bloco Total: [150.00, 89.90, 420.00, 15.50, ...] Lê exclusivamente as colunas necessárias para a consulta, ignorando o restante. Calcular agregações analíticas (SUM, AVG, COUNT) sobre milhões de linhas.

Bancos Orientados a Linhas (OLTP)

Bancos relacionais clássicos como PostgreSQL, MySQL e Microsoft SQL Server organizam as informações por linhas contíguas. Quando um novo pedido é cadastrado ou o status de uma fatura muda de "Pendente" para "Pago", o motor altera uma única linha em um bloco de disco específico com garantia estrita de atomicidade e consistência (ACID).

Contudo, se você executa uma consulta para somar o faturamento total do último ano (SELECT SUM(total) FROM pedidos), o motor OLTP precisa carregar do disco todos os dados de todas as colunas de cada linha (nomes, endereços, observações em texto) apenas para extrair o valor numérico, gerando um gargalo massivo de entrada e saída (I/O).

Bancos Orientados a Colunas (OLAP)

Bancos analíticos modernos e Data Warehouses (como ClickHouse, Google BigQuery e Snowflake) agrupam os valores da mesma coluna contiguamente no disco. Para calcular a soma das vendas, o motor lê exclusivamente os blocos da coluna total, ignorando solenemente os demais dados.

Além da velocidade brutal em leituras, o armazenamento colunar atinge taxas extraordinárias de compressão: como uma coluna contém exclusivamente o mesmo tipo de dado (por exemplo, milhões de datas ou números decimais sequenciais), algoritmos de compressão como Run-Length Encoding (RLE) reduzem o volume em disco em até 80% a 90%.

Comparativo Estrutural: OLTP versus OLAP

As prioridades de engenharia entre os dois universos divergem em todos os quesitos:

Característica OLTP (Transacional) OLAP (Analítico / Data Warehouse)
Operações Típicas Inserções, atualizações e exclusões pontuais rápidas. Leituras massivas, agregações (GROUP BY, SUM, AVG).
Volume de Dados por Query Dezenas a centenas de linhas por transação. Milhões a bilhões de linhas por consulta.
Modelo de Dados Normalizado (3ª Forma Normal) para evitar redundância. Desnormalizado (Esquema Estrela / Foco de Neve).
Padrão de Concorrência Milhares de usuários ou requisições simultâneas. Dezenas de analistas ou painéis de BI simultâneos.
Estado dos Dados Reflete estritamente o estado atual do negócio. Preserva o histórico completo acumulado de anos.
Indexação Principal Índices B-Tree focados em chaves primárias e estrangeiras. Particionamento por data e agrupamento (Clustering).

A Modelagem Dimensional no Data Warehouse

Para que um Data Warehouse entregue consultas analíticas intuitivas e rápidas para ferramentas de visualização, os dados são organizados no padrão de Modelagem Dimensional, popularizado por Ralph Kimball:

graph TD
    Tempo["<b>Dimensão Tempo</b><br/>(Data, Mês, Trimestre)"] --> Fato
    Cliente["<b>Dimensão Cliente</b><br/>(Nome, Região, Segmento)"] --> Fato
    Produto["<b>Dimensão Produto</b><br/>(Categoria, Marca, SKU)"] --> Fato

    Fato["<b>TABELA FATO</b><br/><i>(FatoVendas)</i><br/>[Quantidade, ValorTotal, Desconto]"]

    classDef fact fill:#0f172a,stroke:#38bdf8,stroke-width:2px,color:#f8fafc;
    classDef dim fill:#1e293b,stroke:#64748b,stroke-width:1px,color:#f8fafc;

    class Fato fact;
    class Tempo,Cliente,Produto dim;
  • Tabelas Fato (Fact Tables): Residem no centro da modelagem e contêm os eventos numéricos quantitativos do negócio (métricas mensuráveis como quantidade vendida, receita, tempo de entrega).
  • Tabelas Dimensão (Dimension Tables): Envolvem a tabela fato e fornecem o contexto descritivo e os filtros das análises (quem comprou, onde, quando e qual produto).

Essa modelagem em Esquema Estrela (Star Schema) elimina a necessidade de dezenas de junções complexas entre tabelas espalhadas, permitindo que ferramentas de inteligência de negócios gerem consultas SQL altamente performáticas e legíveis.

Separação Arquitetural Obrigatória

Projetar uma arquitetura de dados moderna exige respeitar as fronteiras entre esses ecossistemas. A regra de ouro da engenharia corporativa é clara:

  1. Os bancos OLTP operam com isolamento rigoroso, dedicados estritamente ao processamento de transações em tempo real dos clientes da aplicação.
  2. Os dados são sincronizados continuamente para o Data Warehouse por meio de esteiras automatizadas de CDC (Change Data Capture) ou fluxos assíncronos de eventos.
  3. Todas as análises estratégicas, fechamentos mensais e painéis de BI consultam com liberdade o Data Warehouse colunar, sem jamais disputar recursos de CPU com a operação principal da empresa.
Explorar este tema no Grafo de Conhecimento