## Page 1

# Online Analytical Processing (OLAP)

---

Gestión de la Información
Grado en Ingeniería Informática
Universidad de Burgos

&lt;img&gt;Universidad de Burgos logo&lt;/img&gt;

José Ignacio Santos, José Manuel Galán
jisantos@ ubu.es, jmgalan@ ubu.es

---


## Page 2

# OLTP vs OLAP

<table>
  <thead>
    <tr>
      <th></th>
      <th>Online Transaction Processing (OLTP)</th>
      <th>Online Analytical Processing (OLAP)</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Finalidad</td>
      <td>Procesamiento transaccional</td>
      <td>Análisis y reporting</td>
    </tr>
    <tr>
      <td>Tipo de datos</td>
      <td>Detallados, en tiempo real</td>
      <td>Agregados, históricos</td>
    </tr>
    <tr>
      <td>Consultas</td>
      <td>Rápidas y cortas</td>
      <td>Complejas y multidimensionales</td>
    </tr>
    <tr>
      <td>Base de datos</td>
      <td>Relacional (SQL)</td>
      <td>Multidimensional (cubos)</td>
    </tr>
    <tr>
      <td>Ejemplo</td>
      <td>Pedido de un cliente hoy</td>
      <td>Ventas por región y año</td>
    </tr>
  </tbody>
</table>

ERP BI

---


## Page 3

# Ciclo de datos

<mermaid>
graph TD
    subgraph Data Warehouse
        DW(DW)
    end

    subgraph OLTP
        OLTP(OLTP)
    end

    subgraph Business Intelligence
        BI(BI Tools)
    end

    subgraph Machine Learning & Artificial Intelligence
        ML_AI(ML AI)
    end

    subgraph Data Multidimensionales
        Cubos_CubosOLAP(Cubos OLAP)
    end

    OLTP --> DW
    DW --> Cubos_CubosOLAP
    Cubos_CubosOLAP --> BI
    BI --> ML_AI
    ML_AI --> DW
    DW --> OLTP
</mermaid>

**Sistemas transaccionales**
ERP, SCM, CRM

**Data Warehouse**

**Datos multidimensionales**

**Herramientas de visualización e informes**

**Machine Learning & Artificial Intelligence**

**Business Intelligence**

---


## Page 4

# Ciclo de datos (ejemplo)

<mermaid>
graph LR
    A[OLTP] --> B[OLTP gestion]
    B[OLTP gestion] --> C[DW]
    C[DW] --> D[Cubos OLAP]
    D[Cubos OLAP] --> E[Periódicamente se calculan/actualizan los cubos]
    E --> F[Los cubos alimentan objetos de visualización (tablas dinámicas, gráficos, scorecards, ...)]
</mermaid>

**OLTP gestion**
*   OLTP gestiona la bases de datos ERP (e.j. tiendas donde se registran todas las operaciones de venta diarias)

**DW**
*   Los datos transaccionales (y de otras fuentes) se consolidan en bases de datos independientes (data warehouse /data lake)

**Cubos OLAP**
*   Un modelador define previamente la estructura de los cubos:
    *   qué dimensiones (para segmentar los datos)
    *   qué métricas (campos calculados mediante una función de agregación)
*   Periódicamente se calculan/actualizan los cubos
*   Los cubos alimentan objetos de visualización (tablas dinámicas, gráficos, scorecards, ...)

---


## Page 5

# Cubo OLAP

Un cubo OLAP es una estructura de datos multidimensional:
*   Dimensiones: año, región, cliente
*   Métricas: ventas, costes, margen

Cada celda del cubo es una métrica indexada por los diferentes valores de las dimensiones del cubo

Los cubos OLAP son óptimos para consultas multidimensionales. Los informes y consultas deben ser **coherentes** con la estructura del cubo. Ejemplo de consulta OLAP:

```sql
SELECT SUM(ventas) FROM fact_ventas WHERE año=2024 AND region='Norte'
```

En el ejemplo el cubo OLAP fact_ventas tiene como dimensiones año y región y como métrica agregada ventas

---


## Page 6

# Google Looker como metáfora de OLAP

El diseño de Google Looker puede ayudarnos a comprender los cubos OLAP

En un conector de Looker definimos campos de tipo dimensión (que permiten segmentar los datos) y campos de tipo métrica (que se muestran calculados mediante alguna función de agregación), al igual que hacemos con la estructura de un cubo OLAP

La tabla extendida de dimensiones y métricas de Looker representaría un cubo multidimensional OLAP

<table>
  <thead>
    <tr>
      <th>Año</th>
      <th>Región</th>
      <th>Nproducto</th>
      <th>Importe venta</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>2018</td>
      <td>Europe</td>
      <td>botellín 500cc</td>
      <td>2,112.5</td>
    </tr>
    <tr>
      <td>2018</td>
      <td>Australia and Ocea...</td>
      <td>botella 5l</td>
      <td>3,132</td>
    </tr>
    <tr>
      <td>2018</td>
      <td>Central America an...</td>
      <td>botellín 300cc</td>
      <td>438.9</td>
    </tr>
    <tr>
      <td>2018</td>
      <td>Australia and Ocea...</td>
      <td>garrafa 8l</td>
      <td>1,058.5</td>
    </tr>
    <tr>
      <td>2018</td>
      <td>Middle East and N...</td>
      <td>botella 0.5l</td>
      <td>426</td>
    </tr>
    <tr>
      <td>2018</td>
      <td>Asia</td>
      <td>garrafa 8l</td>
      <td>6,597.5</td>
    </tr>
    <tr>
      <td>2018</td>
      <td>Central America an...</td>
      <td>botella 0.5l</td>
      <td>1,296</td>
    </tr>
  </tbody>
</table>

&lt;img&gt;Diagram showing a cube with dimensions "Time" and "Cities" on two axes, and a metric "Products" along the third axis. The dimensions are represented by arrows pointing to the left and right, and the metric by an arrow pointing forward.&lt;/img&gt;

dimensiones → métrica →

---


## Page 7

# Google Looker como metáfora de OLAP

Pero Looker y OLAP son diferentes:

Looker no genera cubos, sólo traduce las selecciones del usuario en queries SQL contra las tablas subyacentes

Las agregaciones en Looker se calculan en tiempo de ejecución, no son precalculadas

En Looker tenemos más flexibilidad para construir las queries SQL, en cambio en OLAP las consultas son limitadas a la estructura multidimensional de los cubos:

*   **drill-down** (bajar al detalle)
*   **roll-up** (agrupar)
*   **slice** (filtrar una dimensión)
*   **dice** (cruzar varias dimensiones)

---


## Page 8

# Machine Learning /AI

Las herramientas de ML/AI trabajan sobre datos detallados del Data Warehouse o Data Lake, no sobre cubos OLAP

**OLAP** sigue siendo óptimo para análisis descriptivo

ML/AI complementa el BI con analítica predictiva, no supervisada, etc.