Qué son OLTP y OLAP. ¿Cuál es la diferencia entre ellos?

294

En realidad, ¿qué significan? Todos los artículos que encuentro sobre ellos no me dan una idea, o mi conocimiento es demasiado insuficiente para entenderlo.

¿Alguien me dará algunos recursos con los que pueda aprender esto desde cero?

Amarnath R Shenoy
fuente
8
Consulte datawarehouse4u.info/OLTP-vs-OLAP.html para comenzar y luego simplemente busque en Google más enlaces sobre detalles y diferencias
Incógnito
1
Ok, entonces las operaciones simples de base de datos están en la categoría OLTP y el procesamiento de datos grandes y complejos está en OLAP, ¿ese es el concepto base correcto?
Amarnath R Shenoy
1
@AmarnathRShenoy sí insertar, actualizar, eliminar tratará de OLTP
Nagaraj S
99
@AmarnathRShenoy Realmente deberías poner más esfuerzo inicial en investigar un tema. Los dos recursos proporcionados por la respuesta de Nagaraj S fueron literalmente las dos primeras páginas devueltas por google. Te estás engañando a ti mismo por el conocimiento cuando dejas que alguien más haga el trabajo por ti. Para obtener consejos sobre cómo escribir mejores preguntas de SO, consulte la página de ayuda de SO: ¿Cómo preguntar? .
Austin A

Respuestas:

363

Aquí encontrarás una mejor solución OLTP vs. OLAP

  • OLTP (procesamiento de transacciones en línea) está involucrado en la operación de un sistema en particular. OLTP se caracteriza por una gran cantidad de transacciones cortas en línea (INSERTAR, ACTUALIZAR, ELIMINAR). El énfasis principal para los sistemas OLTP se pone en el procesamiento de consultas muy rápido, manteniendo la integridad de los datos en entornos de acceso múltiple y una efectividad medida por el número de transacciones por segundo. En la base de datos OLTP hay datos detallados y actuales, y el esquema utilizado para almacenar bases de datos transaccionales es el modelo de entidad (generalmente 3NF). Implica consultas que acceden a registros individuales como Actualizar su correo electrónico en la base de datos de la empresa.

  • OLAP (procesamiento analítico en línea) trata con datos históricos o datos de archivo. OLAP se caracteriza por un volumen relativamente bajo de transacciones. Las consultas son a menudo muy complejas e implican agregaciones. Para los sistemas OLAP, el tiempo de respuesta es una medida de efectividad. Las aplicaciones OLAP son ampliamente utilizadas por las técnicas de minería de datos. En la base de datos OLAP hay datos históricos agregados, almacenados en esquemas multidimensionales (generalmente esquema en estrella). En algún momento, las consultas necesitan acceder a una gran cantidad de datos en los registros de administración, como cuál fue el beneficio de su empresa en el año pasado.

Nagaraj S
fuente
77
Información muy clara. Gracias por compartirlo me ayudó a aclarar mis dudas.
CapturedTree
¿A qué se refiere el "OL"?
Zach Smith
Si otros también necesitan una actualización: 3NF es una forma normal que se utiliza para normalizar el diseño de una base de datos para reducir la duplicación de datos y garantizar la integridad referencial
Martin Thoma
1
OL se refiere a "EN LÍNEA", que significa completar el procesamiento de datos en tiempo real y no el procesamiento por lotes.
Ganesh Jadhav
229

Respuesta muy corta:

Las diferentes bases de datos tienen diferentes usos. No soy un experto en bases de datos. Regla de oro:

  • si está haciendo análisis (por ejemplo, agregando datos históricos) use OLAP
  • si está realizando transacciones (por ejemplo, agregar / eliminar pedidos en un carrito de comercio electrónico) use OLTP

Respuesta corta:

Consideremos dos escenarios de ejemplo:

Escenario 1:

Está creando una tienda / sitio web en línea y desea poder:

  • almacenar datos de usuario, contraseñas, transacciones anteriores ...
  • almacenar productos reales, sus precios asociados

Desea poder encontrar datos para un usuario en particular, cambiar su nombre ... básicamente realizar operaciones INSERT, UPDATE, DELETE en los datos del usuario. Lo mismo con productos, etc.

Desea poder realizar transacciones, posiblemente involucrando a un usuario que compra un producto (eso es una relación). Entonces OLTP es probablemente una buena opción.

Escenario 2:

Tiene una tienda / sitio web en línea y desea calcular cosas como

  • el "dinero total gastado por todos los usuarios"
  • "¿Cuál es el producto más vendido"

Esto cae en el dominio de análisis / inteligencia empresarial, y por lo tanto, OLAP es probablemente más adecuado.

Si piensa en términos de "Sería bueno saber cómo / qué / cuánto" ..., y eso involucra a todos los "objetos" de uno o más tipos (por ejemplo, todos los usuarios y la mayoría de los productos para conocer el total gastado), entonces OLAP probablemente sea más adecuado.

Respuesta más larga:

Por supuesto, las cosas no son tan simples. Es por eso que tenemos que usar etiquetas cortas como OLTPy OLAPen primer lugar. Cada base de datos debe evaluarse de forma independiente al final.

Entonces, ¿cuál podría ser la diferencia fundamental entre OLAP y OLTP?

Bueno, las bases de datos tienen que almacenar datos en algún lugar. No debería sorprender que la forma en que se almacenan los datos refleje en gran medida el posible uso de dichos datos. Los datos generalmente se almacenan en un disco duro. Pensemos en un disco duro como una hoja de papel realmente ancha, donde podemos leer y escribir cosas. Hay dos formas de organizar nuestras lecturas y escrituras para que puedan ser eficientes y rápidas.

Una forma es hacer un libro que sea un poco como una guía telefónica . En cada página del libro, almacenamos la información sobre un usuario en particular. Ahora que está bien, ¡podemos encontrar la información para un usuario en particular muy fácilmente! ¡Solo salta a la página! Incluso podemos tener una página especial al principio para decirnos en qué página están los usuarios si queremos. Pero, por otro lado, si queremos encontrar, digamos, cuánto dinero gastaron todos nuestros usuarios, entonces tendríamos que leer cada página, ¡es decir, todo el libro! Eso sería un libro / base de datos basado en filas (OLTP). La página opcional al principio sería el índice.

Otra forma de utilizar nuestra gran hoja de papel es hacer un libro de contabilidad . No soy contador, pero imaginemos que tendríamos una página para "gastos", "compras" ... Eso es bueno porque ahora podemos consultar cosas como "darme los ingresos totales" muy rápidamente (solo lea las "compras" " página). También podemos pedir cosas más complicadas como "darme los diez mejores productos vendidos" y seguir teniendo un rendimiento aceptable. Pero ahora considere lo doloroso que sería encontrar los gastos para un usuario en particular. Tendría que revisar la lista completa de los gastos de todos y filtrar los de ese usuario en particular, luego sumarlos. Lo que básicamente equivale a "leer todo el libro" nuevamente. Esa sería una base de datos basada en columnas (OLAP).

Se sigue que :

  • OLTP Las bases de datos están destinadas a ser utilizadas para realizar muchas transacciones pequeñas, y generalmente sirven como una "fuente única de verdad".

  • OLAP las bases de datos, por otro lado, son más adecuadas para análisis, minería de datos, menos consultas, pero generalmente son más grandes (operan con más datos).

Es un poco más complicado que eso, por supuesto, y es una descripción general de 20 000 pies de cómo difieren las bases de datos, pero me permite no perderme en un mar de siglas.

Hablando de siglas:

  • OLTP = procesamiento de transacciones en línea
  • OLAP = procesamiento analítico en línea

Para leer un poco más, aquí hay algunos enlaces relevantes que inspiraron fuertemente mi respuesta:

nha
fuente
39
Enfoque agradable utilizando diferentes niveles de explicación, lenguaje accesible y con ejemplos concretos. Un modelo para las personas que responden preguntas en stackoverflow.
ribamar
2
¡Impresionante, increíble respuesta! ¡El mejor que he encontrado en SO hasta ahora! ¡Dale una medalla a este hombre!
Pedro Gordo
1
¡Me resultó muy fácil de entender!
The One
3
"En caso de duda, solo uso SQL". - SQL es un lenguaje y esto no responde la pregunta. Hay todo tipo de sistemas de gestión de datos que saben cómo interpretar SQL y traducirlo para trabajar con todo tipo de fuentes de datos detrás del capó. Uno puede hacer consultas sql incluso en marcos de datos de chispa. Es como decir "cuando tengo dudas, solo uso html". Ok, es la respuesta corta pero es una tontería
Radu Simionescu
1
Sí, lo que propones sería una mejora, en ambos aspectos. Por supuesto, no le haría justicia al tema, pero eso no viene al caso. Salud !
Cbhihe
24

La diferencia es bastante simple:

OLTP (procesamiento de transacciones en línea)

OLTP es una clase de sistemas de información que facilitan y administran aplicaciones orientadas a transacciones. OLTP también se ha utilizado para referirse al procesamiento en el que el sistema responde inmediatamente a las solicitudes de los usuarios. Las aplicaciones de procesamiento de transacciones en línea son de alto rendimiento e inserción o actualización intensiva en la gestión de bases de datos. Algunos ejemplos de sistemas OLTP incluyen entrada de pedidos, ventas minoristas y sistemas de transacciones financieras.

OLAP (procesamiento analítico en línea)

OLAP es parte de la categoría más amplia de inteligencia empresarial, que también abarca bases de datos relacionales, redacción de informes y minería de datos. Las aplicaciones típicas de OLAP incluyen informes comerciales para ventas, marketing, informes de gestión, gestión de procesos comerciales (BPM), presupuestos y pronósticos, informes financieros y áreas similares.

Ver más detalles OLTP y OLAP

Serhii Burkovskyi
fuente
6

OLTP-: el oltp significa procesamientos de transacciones en línea que se utilizan para administrar la información de datos del día a día actual. OLAP-: la olap representa el procesamiento analítico en línea que se utiliza para mantener el historial pasado de los datos y se utiliza principalmente para el análisis de datos y también se puede llamar como almacén.

Rakesh Singh
fuente
-6

oltp: se usa principalmente para transacciones comerciales. se usa para recopilar datos comerciales. En sql usamos el comando insertar, actualizar y eliminar para recuperar una pequeña fuente de datos. De manera similar, están altamente normalizados ... OLTP Se usa principalmente para mantener la integridad de los datos.

olap: se utiliza principalmente para informes, minería de datos y fines analíticos comerciales. para los datos grandes o masivos. deliberadamente se desnormaliza. Almacena datos históricos.

Vikrant Solanke
fuente
¿Por qué se rechazó esto? Parece ser lo mismo que se ha dicho en otras respuestas: oltp para CRUD, olap para agregados?
Ychaouche
1
@ychaouche probablemente porque ya hay más de 3 respuestas con un significado similar. Por fecha, esta es la respuesta más nueva y, sin embargo , ni siquiera ayuda ni admite las respuestas existentes. Sin embargo, el usuario decidió agregar su propia versión de respuesta de todos modos, que todavía está incompleto y carece de explicaciones.
Irfandy Jip