DataSkills Hub

Microsoft Power BI

Microsoft Power BI es la herramienta de Business Intelligence para crear dashboards interactivos y reportes ejecutivos. Conecta directamente con Trino, PostgreSQL y otras fuentes del Data Platform para reportería empresarial y análisis interactivo de KPIs.

#Getting Started

#Acceder a Power BI

Power BI Desktop (para desarrollo local)

https://www.microsoft.com/en-us/download/details.aspx?id=58494

Descargar e instalar. Acceder con credenciales corporativas.

Power BI Service (web, para publicación)

https://app.powerbi.com

Acceder con SSO corporativo. Seleccionar el workspace de tu equipo.

#Conexiones principales

Fuente de datos Tipo Endpoint
Trino JDBC/ODBC <tu-url>
PostgreSQL ODBC <tu-url>
Ceph S3 (CSV) <tu-url>
Google Drive OAuth Archivos compartidos
Excel / CSV File Cargar localmente en Power BI

#Verificar conexión (Health Check)

  1. Power BI DesktopGet Data
  2. Buscar Trino o PostgreSQL
  3. Ingresar credenciales
  4. Si aparece el listado de bases de datos → OK

#Conectando a Trino desde Power BI

#Paso 1: Instalar JDBC Driver para Trino

Power BI requiere ODBC v17.7+ compatible con Trino. Descargar:

https://trino.io/download.html

Seguir las instrucciones de instalación para tu SO.

#Paso 2: Crear conexión a Trino

  1. Power BI DesktopGet DataMore...ODBC
  2. Seleccionar el DSN de Trino configurado
  3. Ingresar:
Driver:   Trino ODBC Driver
Server:   <tu-url>
Port:     <puerto>
Database: hive
Schema:   analytics
Username: <tu-usuario>
Password: <token-personal-trino>
  1. Clic en OK

#Paso 3: Seleccionar tablas

Se abre el navegador de tablas. Seleccionar:

hive.analytics.ventas
hive.analytics.clientes
hive.analytics.campanas

Clic en Load


#Data Modeling

#Crear relaciones (Relationships)

Después de cargar tablas, configurar relaciones:

  1. HomeManage RelationshipsNew
  2. Arrastrar la columna de clave foránea desde una tabla a la clave primaria de otra

Ejemplo:

Tabla: ventas
Columna: cliente_id
    ↓ (relaciona con)
Tabla: clientes
Columna: id

#Definir medidas con DAX

Medida = cálculo agregado (SUM, COUNT, AVG, etc.) reutilizable en reportes.

Medida simple: Total de Ventas

Total Ventas = SUM(ventas[monto])

Medida condicional: Ventas por período

Ventas Q1 =
CALCULATE(
    SUM(ventas[monto]),
    MONTH(ventas[fecha]) >= 1,
    MONTH(ventas[fecha]) <= 3
)

Medida con contexto de filtro: Clientes únicos

Clientes Unicos = DISTINCTCOUNT(ventas[cliente_id])

#Columnas calculadas

Para transformar datos directamente en el modelo:

Año = YEAR(ventas[fecha])
Mes = FORMAT(ventas[fecha], "MMMM")
Trimestre = CEILING(MONTH(ventas[fecha]) / 3)
Monto_USD = ventas[monto] * 0.98   -- Conversión ficticia

#Creación de Reportes

#Tipos de visualizaciones más usados

Tipo Uso recomendado
Table Datos detallados, listados
Matrix Cruces de dimensiones (pivot)
Clustered Bar Comparativa entre categorías
Line Chart Evolución temporal de KPIs
Card / KPI Indicadores clave en número grande
Gauge Progreso hacia objetivo
Pie / Donut Distribución porcentual
Map Datos geográficos por país/región
Slicer Filtro visual interactivo

#Construir un reporte paso a paso

  1. Power BI DesktopNew Report
  2. Arrastrar campos del panel Fields a la zona de visualización
  3. Seleccionar una visualización (ej: Bar Chart)

Ejemplo: Ventas por país y mes

Visual Type:  Clustered Bar Chart
Axis Y:       pais
Axis X:       SUM(ventas[monto])
Legend:       YEAR(ventas[fecha])
Filters:      fecha >= 2025-01-01
  1. Personalizar:
    • Format → Colores, fuentes, etiquetas
    • Analytics → Añadir línea de tendencia, promedio

#Interactividad con Slicers

Agregar filtros interactivos al reporte:

  1. InsertSlicer
  2. Seleccionar campo (ej: pais)
  3. Arrastrar al reporte
  4. El slicer se conecta automáticamente a todos los visuals que usen pais

#Publicar y Compartir en Power BI Service

#Publicar desde Desktop

  1. HomePublish
  2. Seleccionar workspace de tu equipo
  3. Esperar a que se complete la carga
  4. El reporte está online en app.powerbi.com

#Compartir un reporte

  1. En Power BI Service, abrir el reporte
  2. Share (arriba derecha)
  3. Ingresar emails de usuarios
  4. Asignar rol: Viewer (solo lectura) o Editor (puede modificar)

#Configurar Refresh automático

Datos en Power BI no se actualizan automáticamente. Configurar refresh:

  1. En Power BI Service, abrir el dataset
  2. ⋮ MoreSettingsRefresh Schedule
  3. Habilitar Scheduled Refresh
  4. Seleccionar frecuencia (horaria, diaria, etc.) y zona horaria
Example:
Frequency:  Diaria
Time:       09:00 UTC-5
Run on:     Monday to Friday

#Seguridad y Row-Level Security (RLS)

#Roles de acceso

Rol Permisos
Admin Crear workspaces, publicar reportes, gestionar RLS
Editor Crear/editar reportes y datasets
Viewer Solo ver reportes publicados

#Implementar Row-Level Security (RLS)

Mostrar datos filtrados por usuario (ej: cada gerente ve solo su país).

Paso 1: Crear tabla de mapeo de usuarios

| Usuario              | Pais |
|----------------------|------|
| [email protected]   | CO   |
| [email protected]    | PE   |
| [email protected]     | CL   |

Paso 2: Crear rol con filtro DAX

  1. ModelingManage Roles
  2. New Role → Nombrar: Colombia_User
  3. Sobre la tabla ventas, escribir:
[pais] = "CO"
  1. Save

Paso 3: Mapear usuarios a roles

En Power BI Service:

  1. Abrir dataset → ⋮ MoreSecurity
  2. Asignar usuarios a roles

#Troubleshooting y Performance

#Problemas comunes

Problema Causa probable Solución
"No se carga el reporte" Refresh fallido, credenciales vencidas Verificar credenciales en Dataset Settings
"Query muy lenta" Datos sin filtro, relaciones rotas Agregar slicer, revisar relaciones
"Error de autenticación" Token expirado, credenciales vencidas Re-ingresar credenciales corporativas
"Memoria agotada" Dataset muy grande Limitar datos con filtro en Trino directamente

#Limpiar caché y reload

Power BI Desktop:
File → Options → Global → Data Load
Enable → Always refresh

Luego cerrar y volver a abrir.


#Mejores Prácticas

Práctica Descripción
Nomenclatura Reportes: <Area>_<Métrica>_<Versión> (ej: Ventas_KPI_v2)
Modelos separados Un dataset por área (Ventas, Marketing, Ops)
Medidas reutilizables Crear medidas estándar en el dataset, no en reportes
Documentación Añadir descripciones a medidas y campos
Versionado Mantener versión anterior publicada hasta validar nueva
Filtros a nivel dataset Filtrar en Trino antes de cargar, no en Power BI