O que são OLTP e OLAP. Qual a diferença entre eles?

294

Na verdade, o que eles significam? Todos os artigos que encontro sobre eles não me dão uma idéia ou meu conhecimento é insuficiente para entendê-lo.

Alguém me dará alguns recursos com os quais posso aprender isso do zero.

Amarnath R Shenoy
fonte
8
Consulte datawarehouse4u.info/OLTP-vs-OLAP.html para começar e, em seguida, apenas o Google em torno de mais links sobre detalhes e diferenças
Incognito
1
Ok, operações simples de banco de dados estão na categoria OLTP E o processamento de dados grandes e complexos está em OLAP, esse é o conceito base, certo?
Amarnath R Shenoy
1
@AmarnathRShenoy sim insert, update, delete vai lidar com OLTP
Nagaraj S
9
@AmarnathRShenoy Você realmente deve fazer um esforço inicial para pesquisar um tópico. Os dois recursos fornecidos pela resposta de Nagaraj S foram literalmente as duas principais páginas retornadas pelo Google. Você está se enganando quando deixa alguém fazer o trabalho por você. Para obter dicas sobre como escrever melhores perguntas de SO, consulte a página de ajuda do SO: Como fazer? .
Austin A

Respostas:

363

Aqui você encontrará uma solução melhor OLTP vs. OLAP

  • O OLTP (Processamento de transações on-line) está envolvido na operação de um sistema específico. O OLTP é caracterizado por um grande número de transações on-line curtas (INSERT, UPDATE, DELETE). A ênfase principal dos sistemas OLTP é colocada no processamento de consultas muito rápido, mantendo a integridade dos dados em ambientes de acesso múltiplo e uma eficácia medida pelo número de transações por segundo. No banco de dados OLTP, existem dados detalhados e atuais, e o esquema usado para armazenar bancos de dados transacionais é o modelo de entidade (geralmente 3NF). Envolve Consultas acessando registros individuais como Atualize seu E-mail no banco de dados da Empresa.

  • O OLAP (processamento analítico on-line) lida com dados históricos ou dados de arquivo. OLAP é caracterizado por um volume relativamente baixo de transações. As consultas geralmente são muito complexas e envolvem agregações. Para sistemas OLAP, o tempo de resposta é uma medida de eficácia. Os aplicativos OLAP são amplamente utilizados pelas técnicas de mineração de dados. No banco de dados OLAP, existem dados históricos agregados, armazenados em esquemas multidimensionais (geralmente esquema em estrela). Em algum momento, a consulta precisa acessar uma grande quantidade de dados nos registros de gerenciamento, como qual foi o lucro da sua empresa no ano passado.

Nagaraj S
fonte
7
Informação muito clara. Obrigado por compartilhar isso me ajudou a tirar minhas dúvidas.
CapturedTree
A que se refere o "OL"?
Zach Smith
Se outros precisam de uma reciclagem bem: 3NF é uma forma normal que é usado em normalizar um projeto de banco de dados para reduzir a duplicação de dados e garantir a integridade referencial
Martin Thoma
1
OL refere-se a "ONLINE", o que significa a conclusão do processamento de dados em tempo real e não o processamento em lote.
Ganesh Jadhav
229

Resposta muito curta:

Bancos de dados diferentes têm usos diferentes. Eu não sou um especialista em banco de dados. Regra prática:

  • se você estiver fazendo análises (por exemplo, agregando dados históricos), use OLAP
  • se você estiver realizando transações (por exemplo, adicionando / removendo pedidos em um carrinho de comércio eletrônico), use OLTP

Resposta curta:

Vamos considerar dois exemplos de cenário:

Cenário 1:

Você está construindo uma loja / site on-line e deseja:

  • armazenar dados do usuário, senhas, transações anteriores ...
  • armazenar produtos reais, seus preços associados

Você deseja encontrar dados para um usuário específico, alterar seu nome ... basicamente executar operações INSERT, UPDATE, DELETE nos dados do usuário. Mesmo com produtos, etc.

Você deseja poder fazer transações, possivelmente envolvendo um usuário que compra um produto (isso é uma relação). Então o OLTP provavelmente é um bom ajuste.

Cenário 2:

Você tem uma loja / site on-line e deseja calcular coisas como

  • o "dinheiro total gasto por todos os usuários"
  • "qual é o produto mais vendido"

Isso se enquadra no domínio de análise / inteligência de negócios e, portanto, o OLAP é provavelmente mais adequado.

Se você pensa em termos de "Seria bom saber quanto / quanto / quanto" ... e isso envolve todos os "objetos" de um ou mais tipos (por exemplo, todos os usuários e a maioria dos produtos para conhecer o total gasto), então o OLAP provavelmente é mais adequado.

Resposta mais longa:

Claro que as coisas não são tão simples. É por isso que precisamos usar tags curtas como OLTPe OLAPem primeiro lugar. Cada banco de dados deve ser avaliado de forma independente no final.

Então, qual poderia ser a diferença fundamental entre OLAP e OLTP?

Bem, os bancos de dados precisam armazenar dados em algum lugar. Não deve surpreender que a maneira como os dados sejam armazenados reflita fortemente o possível uso desses dados. Os dados geralmente são armazenados em um disco rígido. Vamos pensar em um disco rígido como uma folha de papel muito grande, onde podemos ler e escrever coisas. Existem duas maneiras de organizar nossas leituras e gravações, para que possam ser eficientes e rápidas.

Uma maneira é fazer um livro parecido com um catálogo telefônico . Em cada página do livro, armazenamos as informações sobre um usuário específico. Agora isso é legal, podemos encontrar as informações de um usuário específico com muita facilidade! Basta pular para a página! Podemos até ter uma página especial no início para nos dizer em que página os usuários estão, se quisermos. Mas, por outro lado, se quisermos descobrir, digamos, quanto dinheiro todos os nossos usuários gastaram, teríamos que ler todas as páginas, ou seja, o livro inteiro! Isso seria um livro / banco de dados baseado em linhas (OLTP). A página opcional no início seria o índice.

Outra maneira de usar nossa grande folha de papel é fazer um livro de contabilidade . Não sou contador, mas vamos imaginar que teríamos uma página para "despesas", "compras" ... Isso é legal porque agora podemos consultar coisas como "me dê a receita total" muito rapidamente (basta ler as "compras " página). Também podemos pedir coisas mais envolvidas, como "dê-me os dez melhores produtos vendidos" e ainda temos desempenho aceitável. Mas agora considere o quão doloroso seria encontrar as despesas para um usuário em particular. Você teria que percorrer toda a lista de despesas de todos e filtrar as despesas desse usuário em particular e depois somar. O que basicamente significa "ler o livro inteiro" novamente. Isso seria um banco de dados baseado em coluna (OLAP).

Daqui resulta que :

  • OLTP os bancos de dados devem ser usados ​​para fazer muitas transações pequenas e geralmente servem como uma "fonte única de verdade".

  • OLAP os bancos de dados, por outro lado, são mais adequados para análises, mineração de dados, menos consultas, mas geralmente são maiores (eles operam com mais dados).

É um pouco mais envolvente do que isso, é claro, e é uma visão geral de 20.000 pés de como os bancos de dados diferem, mas me permite não me perder em um mar de siglas.

Falando de acrônimos:

  • OLTP = Processamento de transação online
  • OLAP = processamento analítico online

Para ler um pouco mais, aqui estão alguns links relevantes que inspiraram fortemente minha resposta:

nha
fonte
39
abordagem agradável usando diferentes níveis de explicação, linguagem acessível e com exemplos concretos. um modelo para pessoas que respondem a perguntas no stackoverflow.
Ribamar # 19/16
2
Impressionante, resposta incrível! Melhor de longe que eu encontrei no SO até agora! Dê a este homem uma medalha!
Pedro Gordo
1
Eu achei muito fácil de entender!
Aquele
3
"Em caso de dúvida, eu apenas uso SQL." - SQL é uma linguagem e isso não responde à pergunta. Existem todos os tipos de sistemas de gerenciamento de dados que sabem como interpretar o SQL e traduzi-lo para trabalhar com todos os tipos de fontes de dados por trás do capô. Pode-se fazer consultas sql mesmo em quadros de dados spark. É como dizer "em caso de dúvida, eu apenas uso html". Ok, é a resposta curta, mas é bobagem #
Radu Simionescu 17/05/1918
1
Sim, o que você propõe seria uma melhoria, em ambos os aspectos. Não faria justiça ao tópico, é claro, mas isso não vem ao caso. Felicidades !
Cbhihe
24

A diferença é bastante simples:

OLTP (Processamento de transações on-line)

OLTP é uma classe de sistemas de informação que facilitam e gerenciam aplicativos orientados a transações. O OLTP também foi usado para se referir ao processamento no qual o sistema responde imediatamente às solicitações do usuário. Os aplicativos de processamento de transações on-line são de alto rendimento e exigem muita atualização ou atualização no gerenciamento de banco de dados. Alguns exemplos de sistemas OLTP incluem entrada de pedidos, vendas no varejo e sistemas de transações financeiras.

OLAP (processamento analítico online)

O OLAP faz parte da categoria mais ampla de inteligência de negócios, que também abrange banco de dados relacional, elaboração de relatórios e mineração de dados. As aplicações típicas do OLAP incluem relatórios de negócios para vendas, marketing, relatórios de gerenciamento, gerenciamento de processos de negócios (BPM), orçamento e previsão, relatórios financeiros e áreas semelhantes.

Veja mais detalhes OLTP e OLAP

Serhii Burkovskyi
fonte
6

OLTP-: O oltp significa processamento de transações on-line que é usado para gerenciar as informações atuais dos dados do dia a dia. OLAP-: o olap significa processamento analítico online, usado para manter o histórico dos dados e principalmente usado para análise de dados, e também pode ser chamado de armazém.

rakesh singh
fonte
-6

oltp - usado principalmente para transações comerciais. usado para coletar dados comerciais. No sql, usamos o comando insert, update e delete para recuperar pequenas fontes de dados. assim como eles são altamente normalizados.

olap- principalmente usado para geração de relatórios, mineração de dados e análise de negócios. para dados grandes ou em massa., deliberadamente, é desnormalizada. armazena dados históricos ..

Vikrant Solanke
fonte
Por que isso foi rebaixado, parece ser o mesmo que foi dito em outras respostas: oltp para CRUD, olap para agregados?
ychaouche 19/05/19
1
@ ychaouche provavelmente porque já existem mais de 3 respostas com significado semelhante. Até a data, essa é a resposta mais recente e, no entanto, nem ajuda nem suporta as respostas existentes. No entanto, o usuário decidiu adicionar sua própria versão da resposta de qualquer maneira, que ainda está incompleta e com falta de explicações.
Irfandy Jip