Solución:
Aquí encontrará una mejor solución OLTP frente a OLAP
-
OLTP (Procesamiento de transacciones en línea) está involucrado en el funcionamiento de un sistema en particular. OLTP se caracteriza por una gran cantidad de transacciones breves en línea (INSERT, UPDATE, DELETE). El énfasis principal para los sistemas OLTP se pone en un 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 actualizados, 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) se ocupa de datos históricos o datos de archivo. OLAP se caracteriza por un volumen de transacciones relativamente bajo. Las consultas suelen ser muy complejas e implican agregaciones. Para los sistemas OLAP, el tiempo de respuesta es una medida de eficacia. Las aplicaciones OLAP son ampliamente utilizadas por 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, la consulta necesita acceder a una gran cantidad de datos en los registros de administración, como cuál fue el beneficio de su empresa el año pasado.
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, agregando / eliminando 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 usuarios, 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 ocurre con los productos, etc.
Desea poder realizar transacciones, posiblemente involucrando a un usuario que compra un producto (eso es una relación). Entonces OLTP probablemente sea 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 pertenece al dominio de análisis / inteligencia empresarial y, por lo tanto, OLAP probablemente sea 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 que las cosas no son tan sencillas. Por eso tenemos que usar etiquetas cortas como OLTP
y OLAP
en 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 sean eficientes y rápidas.
De una sola mano es hacer un libro que sea un poco como un directorio telefónico. En cada página del libro, almacenamos la información sobre un usuario en particular. Eso es bueno, ¡podemos encontrar la información de un usuario en particular muy fácilmente! ¡Simplemente salte 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.
De otra manera utilizar nuestra gran hoja de papel es hacer una libro de contabilidad. No soy contable, pero imaginemos que tendríamos una página para “gastos”, “compras” … Eso es bueno porque ahora podemos consultar cosas como “dame los ingresos totales” muy rápidamente (solo lee la sección “compras ” página). También podemos pedir cosas más complicadas como “darme los diez productos más vendidos” y aún tener un rendimiento aceptable. Pero ahora considere lo doloroso que sería encontrar los gastos de 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” de nuevo. Esa sería una base de datos basada en columnas (OLAP).
Resulta que:
-
OLTP
Las bases de datos están diseñadas para realizar muchas transacciones pequeñas y, por lo general, sirven como una “fuente única de información”. -
OLAP
Por otro lado, las bases de datos 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 mucho mi respuesta:
- http://datawarehouse4u.info/OLTP-vs-OLAP.html
- http://www.ibmsystemsmag.com/Blogs/You-and-i/Archive/db-102-database-orientation-row-vs-column/
- http://martinfowler.com/bliki/DataLake.html
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 y requieren mucha inserción o actualización en la administració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 empresariales (BPM), elaboración de presupuestos y previsiones, informes financieros y áreas similares.
Ver más detalles OLTP y OLAP