Análisis del precio de las criptomonedas en tiempo real con Microsoft Fabric – Parte 3: Visualización de datos

Autor

Kilian Baccaro Salinas

Categoría

Real-Time Intelligence

Tiempo de lectura

02 min de lectura

Fecha de publicación

06 nov, 2025

En esta sección abordaremos la fase de análisis y visualización de nuestro proyecto en tiempo real. El objetivo es transformar los datos procesados en la arquitectura Medallion en insights visuales que faciliten la toma de decisiones rápidas y basadas en datos.


Objetivo

Crear un dashboard en tiempo real que muestre métricas clave del mercado de criptomonedas, aprovechando las consultas KQL y las capacidades de visualización de Microsoft Fabric.


Estructura del Dashboard en Tiempo Real

Nuestro dashboard estará compuesto por dos páginas principales:

PáginaDescripciónTipo de análisis
PrincipalMétricas globales del mercado de criptomonedasAgregaciones generales y KPIs
DetallesProfundiza en una criptomoneda específicaAnálisis individual, histórico y variaciones

Creando un Dashboard en Tiempo Real

Crear el dashboard

  1. En el workspace de Microsoft Fabric, selecciona New > Real-Time Dashboard.

  2. Asigna un nombre y crea el dashboard.

  3. Renombra la página como Principal y haz clic en Add tile.

Conectar el origen de datos

  1. Haz clic en Data source y selecciona Eventhouse / KQL Database.

  2. Selecciona la base de datos KQL creada previamente (por ejemplo: eh_Crypto).

Visual 1: Última fecha de actualización

vwCrypto
| top 1 by serverTime
| project serverTime

Configura el visual como Stat con serverTime como value column.

Visual 2: Número total de criptomonedas

materialized_view('mvCryptoGoldLatest')
| summarize Cryptocurrencies = count_distinct(symbol)

Visual 3: Top 5 criptomonedas por precio (EUR)

materialized_view('mvCryptoGoldLatest')
| where symbol endswith "EUR"
| top 5 by price

Configura como Column chart con symbol en X y price en Y.

Visual 4: Distribución por rango de precios

materialized_view('mvCryptoGoldLatest')
| extend priceRange = case(
    price < 1, "< 1€",
    price < 100, "1€ - 100€",
    price < 1000, "100€ - 1000€",
    "> 1000€"
)
| summarize count() by priceRange

Configura como Pie chart.


Página de Detalles por criptomoneda

Creando un parámetro de filtrado

  1. En el menú superior, selecciona Manage > Parameters.

  2. Configura el parámetro:

    • Label: Criptomoneda

    • Parameter type: Single selection

    • Variable name: Criptomoneda

    • Source: Query — materialized_view('mvCryptoGoldLatest') | distinct symbol

    • Default value: BTCEUR

Visuales de la página Detalles

Precio actual

mvCryptoGoldLatest
| where symbol == Criptomoneda
| top 1 by serverTime desc
| project current_price = price

Precio máximo del rango

vwCrypto
| where symbol == Criptomoneda
| where serverTime between (_startTime .. _endTime)
| summarize max(price)

Variación % (Máx vs Mín)

vwCrypto
| where symbol == Criptomoneda
| where serverTime between (_startTime.._endTime)
| summarize 
   max_price = max(price),
   min_price = min(price)
| extend variation_pct = ((max_price - min_price) / min_price) * 100
| project variation_pct

Variación % (Actual vs Último)

let current_price = 
   mvCryptoGoldLatest
   | where symbol == Criptomoneda;
let last_historical = 
   vwCrypto
   | where symbol == Criptomoneda
   | where serverTime between (_startTime .. _endTime)
   | top 1 by serverTime asc
   | project lh_symbol = symbol, lh_serverTime = serverTime, lh_price = price;
current_price
| join kind=inner last_historical on $left.symbol == $right.lh_symbol
| extend variation_pct = ((price - lh_price) / price) * 100
| project variation_pct


Formato Condicional y Auto Refresh

Aplica formato condicional a los visuales de variación (verde si > 0, rojo si < 0, azul si = 0) para facilitar la interpretación inmediata del dashboard.

Para el Auto Refresh, en Manage > Auto refresh activa la opción y configura el Default refresh rate como Continuous.

Una vez configurado, todos los visuales del dashboard se actualizarán automáticamente con los últimos datos disponibles.