Está en la página 1de 103

Intensivo Power BI

INTRODUCCIÓN
La Inteligencia de Negocios (BI)
• Un conjunto de herramientas y técnicas
basadas en el procesamiento de datos, para
generar información útil para la toma de
decisiones
Big Picture del BI
Sistemas
Transaccionales y Reportería
otras fuentes Repositorio
Distribución
Analítico de
Contabilidad Información

Ventas
ETL Data Warehouse / Explotación OLAP
Data Mart

RRHH

Excel Data
Mining
csv

Datos Información Conocimiento


Big Picture del BI
Sistemas
Transaccionales y Reportería
otras fuentes Repositorio
Distribución
Analítico de
Contabilidad Información

Ventas
ETL Data Warehouse / Explotación OLAP
Data Mart
OPERACIÓN DEL
ANÁLISIS PARA TOMA DE DECISIONES
NEGOCIO
RRHH

Excel Data
Mining
csv

Datos Información Conocimiento


Cómo Agilizar el BI
• Proyectos de BI toman tiempo
– ¿Pero qué pasa cuando necesitamos más
agilidad analítica que la que el avance de los
proyectos nos permite?
– Queremos agilizar el proceso de generar
información
Cómo agilizar el BI
• Self Service BI
– Darle más herramientas a los usuarios de
negocio para desarrollar soluciones
– Principalmente de explotación
• Visualización y Distribución de información
¿Que es Power BI?

“Power BI es una colección de servicios de Software, aplicaciones y


conectores que trabajan juntos para transformar sus fuentes de
datos no relacionadas en visualizaciones coherentes, absorbentes e
interactivas.“
Fuente: https://powerbi.microsoft.com/en-us/guided-learning/powerbi-learning-0-0-what-is-power-bi/
Qué es Power BI
• Power BI viene a atacar 2 objetivos:
– Visualización de información para toma de
decisiones
– Distribución de información
Ecosistema de Power BI
Power BI Desktop
Power BI Service (SaaS)

Power BI Mobile
Roles de aplicaciones
Power BI Desktop
Importar los datos y crear reportes.

Publicar a Power BI service, donde se pueden crear


nuevas visualizaciones o bien construir Dashboards.

Compartir los Dashboards con otras personas, Power BI Mobile

Power BI Service (SaaS)


especialmente personas que están en constante
movimiento.

Ver e interactuar con los Dashboards compartidos y


los reportes en Power BI Mobile.
A quién está dirigido
• Usuarios de negocio
– Personas que usarían Excel
• Tablas dinámicas
• Gráficos dinámicos
• Gráficos en general
– No es necesario tener conocimientos técnicos de
desarrollo de aplicaciones ni de SQL
• Aunque de todas maneras servirá saber más.
– La herramienta permite desde lo simple a lo complejo
A quién está dirigido
• … desde lo simple a lo complejo…
– Lo simple:
• Un par de clicks y tenemos una visualización
– Lo complejo:
• Extracciones y transformaciones complejas de datos con
“Power Query Formula Language” (o más conocido como
“M”)
• Lenguaje DAX para fórmulas en Power BI, muy poderoso.
A quién está dirigido
• Extracciones y transformaciones complejas
de datos con “Power Query Formula
Language” (o más conocido como “M”)
let
Source = Csv.Document(File.Contents("D:\temp\Penta Vida\datos\poblacionPaises.txt"),[Delimiter="
", Columns=3, Encoding=1252, QuoteStyle=QuoteStyle.None]),
#"Promoted Headers" = Table.PromoteHeaders(Source),
#"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"Rank", type text}, {"Country
(or dependent territory)", type text}, {"Population", Int64.Type}})
in
#"Changed Type"
Capacitación Power BI

OBTENCIÓN Y PREPARACIÓN DE
DATOS
Orígenes de Datos
• Orígenes de datos variados: Siempre aumentan
• Algunas clasificaciones:
– Archivo
– Base de datos
– Servicios Azure
– Servicios Online
– Otros
Carga de datos
• Orígenes posibles
– Azure
• Azure SQL Server
• Azure SQL Datawarehouse
– La versión Azure de APS
• Cuentas de Storage
• Azure Marketplace
• DocumentDB (NoSQL)
• etc
Carga de datos
• Archivos de texto
– Deben estar bien estructurados
• Mismo número de elementos por cada fila
– Idealmente, sólo contenido tabular
• Sin encabezados como un título del archivo o algo así
• Encabezados de columnas son bienvenidos
Carga de datos
• Otras fuentes
– Odata feeds
– Web
• Páginas HTML con tablas
• Hadoop
– Lee archivos de HDFS
• Facebook
• Google Analytics
• Salesforce
• Y más
– ODBC
Carga de datos
• Otras fuentes
– Scripts en R!
Orígenes SQL Server
Servidor (no browseable)

BD: Opcional. Browseable una vez establecida la


conexión

Modo de conexión:
Import: Copia los datos al modelo de datos en
Power BI
DirectQuery: Se trae la metadata del modelo,
pero no los datos. Al momento de necesitarlos,
los consulta.

SQL Statement: Consulta SQL específica


Si se ocupa, la entidad de datos creada tiene la estructura
de la consulta, no de las tablas subyacentes. Un join
genera 1 entidad en el modelo Power BI. También se
pueden invocar procedimientos almacenados
Orígenes SQL Server
Modo de Obtención de datos
• Import
– Power BI genera extracción de datos y los almacena
en un modelo tabular optimizado para su
procesamiento en memoria.
– Se aplican transformaciones y filtros de los datos
extraídos (preparación).
– Los datos, la lógica relacional y la forma de reportes
son almacenados en un archivo .pbix
– Límite máximo de .pbix, 1 GB.
Import Data
• Orígenes soportados
– En general todos
– Excepciones:
• Cubos multidimensionales
• Modelos tabulares
Modo de Obtención de datos
• DirectQuery
– No se importan o copian datos hacia Power BI Desktop
– Se utiliza el motor de datos de origen para procesar
cada consulta.
– Se genera archivo .pbix con el modelo de datos tabular y
la definición de los reportes. Los datos se almacenan en
el origen.
• Cada interacción del usuario implica una consulta
– Orígenes de datos Multidimensional o tabular sólo
pueden usar este tipo de conexión.
DirectQuery
• Desde SQL Server
• Desde Analysis Services
• Desde SQL Datawarehouse
• SAP HANA
• BD Oracle
• BD Teradata
• Amazon Redshift (preview)
• Impala (preview)
• Snowflake (preview)
DirectQuery
• Beneficios:
– Permite construir visualizaciones sobre datasets
muy grandes que no se podrían importar
– Latencia de datos prácticamente cero. Siempre
se consultan datos frescos.
– La limitación de dataset de 1 GB no aplica a
Direct Query
DirectQuery
• Limitaciones
– Todas las tablas deben provenir de una sola BD
– No soporta Cross Filter bidireccional.
– Capacidades de Time intelligence no son soportadas
– Limitaciones en las expresiones DAX que se pueden utilizar
– Límite de 1 millón de filas leidas en una consulta
– El performance depende de la red y del performance del
origen de datos
– Limitaciones en transformaciones en el editor de consultas
• Cambio de tipo de dato, por ejemplo
Limpieza y Transformación de datos
• Editor de consultas
– Poderosa herramienta para dar forma y transformar datos.
– Cumple la función de Extracción, transformación y carga
(proceso ETL).
• Funciones destacables:
– Nuevo Origen.
– Tipo de dato.
– Filtro de fila
– Nueva Columna.
– Combinar Query.
Editor de Consultas
Transformaciones
• Varias…
– De tipos de datos
• Reinterpretar un tipo de dato por otro
– Split
– Manipulaciones de fechas
• Duplicar fechas y generar partes de fecha
– Replace de valores
– Replace de errores
– Extract de texto
Transformaciones
• Varias…
– Aplicar cálculos
• Statistic, Standard Scientific
– Merge y Append
– Add Column
– Pivot
– Unpivot
Merge y Append
• Merge
– Juntar 2 o más columnas en una
– Juntar 2 queries (como un join)
• Append
– Equivalente al Union de SQL , para queries
• Se juntan los filas de ambas queries, considerando
que
Add Column
• Agregar columna
– En dos modalidades
• La columna agregada es resultado de otra
transformación (merge, Parse, Extract, Format)
– Útil para que las columnas originales no desaparezcan con
dichas operaciones
• La columna agregada es definida explícitamente
Transformaciones
• Unpivot
– Convertir una tabla de doble entrada en una
tabla normal
• Un set de columnas se convierte en valores de una
columna que las viene a reemplazar
• Los valores de cada columna ahora se asocian a las
filas con los nombres de las columnas a las que
pertenecían
Transformaciones
• Pivot
– Convertir datos de una columna en nombres de
columnas nuevas
• Cada valor distinto se convierte en el título de una
columna nueva
• Por ej: Si la columna contenía 12 valores distintos (los
12 meses del año), el efecto del pivot es generar 12
columnas que reemplazan a la seleccionada
Transformaciones
• Pivot
– De las columnas que no son pivoteadas, se debe
seleccionar una
• A esta se le aplicará una función de agregación a
gusto del cliente.
• Los valores de la(s) otra(s) columnas(s) no pivoteadas
serán criterios de agrupación, al igual que los valores
de la pivoteada
Nombres de columnas que
queremos pivotear

UNPIVOT
Ahora estos nombres son valores de
una columna nueva
Transformaciones
• Para cálculos complejos
– Hacerlos sobre el modelo de datos (posterior al
editor de queries)
• Se puede utilizar lenguaje DAX
Intensivo Power BI

MODELAMIENTO DE DATOS
Tablas y Relaciones

Una tabla en Power BI es el


Tablas resultado de una query

Responden a vínculos predefinidos


o a nombres de campos en común
Relaciones
Creación de relación

Drag and Drop


Cardinalidad de relaciones
• Indica el número máximo de
entidades relacionadas por cada lado
de la relación
• Esto determina cómo Power BI
vinculará los datos de las tablas
Many to One
One to One
Relación circular
• Cuando hay muchos
caminos para resolver una Tabla 1 Tabla 2
consulta

• Es necesario realizar un
“quiebre” en la relación
Tabla 3
Relación Circular
Deshabilitar Relación
Una de las entidades no es necesaria para el
análisis del negocio

Auto Dueño
Tiene

Ciudad
Relación Circular
Crear Tabla “Clon”
Se crea una réplica de la tabla que menos afecte
al modelo

Auto Dueño
Tiene

Ciudad Ciudad
(clon)
Desarrollo recomendado
1. Importar datos para crear tablas
2. Definir relaciones entre tablas
• Poderoso! Puedo relacionar datos de orígenes diversos
3. Mejorar el diseño del modelo de datos con jerarquías,
columnas calculadas y KPIs
4. Preparar el modelo de datos para que sea usable por
usuarios
5. Producir reportes basados en el modelo de datos
6. Publicar el reporte al servicio Power BI
Mejorando el Modelo de Datos
• Un buen modelo de datos debería
– Tener relaciones creadas
– Tener jerarquías relevantes
– Tener escondidos los campos que no tienen
utilidad analítica
– Tener escondidas tablas que no tienen utilidad
analítica
Mejorando el Modelo de datos
• Jerarquías
– Asociaciones de columnas de una tabla, que
representan cadenas de relaciones 1:n entre ellas
– Por ejemplo:
• Categoría  Sub Categoría  Producto
• Año  Quarter  Mes  Fecha
Mejorando el Modelo de datos
• Jerarquías
– Visualizaciones que pueden hacer drill down
aprovechan las jerarquías
• Gráficos de barra, de línea

– Drill Down
• Navegación hacia niveles crecientes de detalle
Mejorando el Modelo de datos
• Creando jerarquías
– Condición necesaria:
• Las columnas qe participen deben estar ubicadas en
la misma tabla
Mejorando el Modelo de datos
• Creando jerarquías
– Tenemos 3 tablas relacionadas
con columnas que forman una
jerarquía:
• EnglishProductName
• EnglishProductSubcategoryname
• EnglishProductCateboryName
– ¿qué hacemos en este caso
entonces?
Invocamos el poder de DAX
• Creamos columnas calculadas que traigan
los valores a la tabla que necesitamos
– A la tabla DimProduct nos traemos:
• EnglishProductSubcategoryname
• EnglishProductCategoryName
Invocamos el poder de DAX
• Creamos columnas calculadas que traigan
los valores a la tabla que necesitamos
– A la tabla DimProduct nos traemos:
• EnglishProductSubcategoryname
• EnglishProductCategoryName
Invocamos el poder de DAX
Invocamos el poder de DAX
• Columna “catprod”:
SubCat =
RELATED ( DimProductSubcategory[EnglishProductSubcategoryName] )

Categoria =
RELATED ( DimProductCategory[EnglishProductCategoryName] )
Invocamos el poder de DAX
• ¿Intrigad@?
– Todo esto y mucho más en una clase exclusiva
para hablar de DAX
Mejorando el Modelo de datos
• Creando jerarquías
– Seleccionamos la columna de
mayor nivel jerárquico
• En este caso, Categoria
– Hacemos click derecho y “New
Hierarchy”
Mejorando el Modelo de datos
• Creando jerarquías
– Arrastramos los demás campos
en orden jerárquico a la jerarquía
Mejorando el Modelo de Datos
• Eliminar columnas y tablas que no tengan
valor analítico
– Un monto, una cantidad, un ratio, etc.  Tienen
valor analítico
– Una llave (un rut, un ID, número de boleta,
folio,…)  (generalmente) no tienen valor
analítico
Mejorando el Modelo de Datos
• Si no tiene valor analítico
– Igual puede tener valor para la construcción del
modelo.
• Llaves participan en relaciones!!
– ¿Entonces?
• No podemos eliminarlas, pero sí ocultarlas del usuario
Mejorando el Modelo de Datos
• El usuario debe tener a la vista sólo lo que le
reporta valor directamente
– Escondemos columnas y tablas.

• Así logramos un modelo “limpio”.


Mejorando el Modelo de Datos
• Sobre las relaciones, 2
temas importantes:
– Cardinalidad
– Cross filtering bien
definido
Mejorando el Modelo de Datos
• Cardinalidad de relación
– Concepto análogo al de un modelo de BD relacional
• Power BI lo deduce de las restricciones de integridad de
llave foránea en las BD
• Power BI se da cuenta si nos estamos equivocando al
definir la cardinalidad
– Tabla de ventas tiene llave foránea de IdVendedor
– Tabla de vendedores tiene llave primaria IdVendedor
Relación no puede ser 1:1 entre ambas.
Mejorando el Modelo de Datos
• Cross Filter Direction
– Indica la dirección en que
se propaga el efecto de
aplicar un filtro
– Ej:
• Si filtro productos de
DimProduct, se filtran
ventas en FactOnlineSales.
• ¿Pero quiero que pase lo
contrario?
Mejorando el Modelo de Datos
• Cross Filtering: 2
posibilidades
– Single
• El efecto del filtrado se
difunde desde tabla en
lado 1 a tabla del lado n
de la relación
– Both
• El efecto del filtrado se
difunde en ambas
direcciones.
Cross Filter Direction
Single

Aaaaah… eso
significaban esos
monitos…

Both
Ejercicio Columnas Calculadas vs
Medidas
• Columnas calculadas – Reflexione
versus Medidas • Qué diferencias hay
entre el MargenBrutoPct
– Solución a pregunta: como columna calculada
– Crear una medida: y el MargenBrutoPctM
MargenBrutoPctM := SUM (Ventas[MargenBruto]) / como medida?
SUM(ventas[SalesAmount])
DAX
• Cuándo usar columnas • Cuándo usar medidas
calculadas – Cuando se necesita desplegar
– Para definir expresiones cálculos que reflejen los filtros
estrictamente atadas a la fila de usuario o los filtros
para la cual se calculan definidos por la visualización
• Ej: Precio * Cantidad • Ej: En tabla matriz, una celda de
datos está gobernada por el
– Categorizar texto o números filtro dado por la fila y la
• Tramificaciones columna a la que pertenecen
– Usar los resultados como • Ej: Los datos de un mapa están
valores no agregados, o usar filtrados por el área geográfica
el resultado como condición en donde están siendo
desplegados
de filtro en consultas DAX
DAX
• Errores
– De Conversión
– De Operaciones Aritméticas
– Valores vacíos o faltantes
DAX
• Errores
– De Conversión
“1 + 1” + 0
DATEVALUE (“25/14/2010”)
DAX
• Errores
– De Operaciones Aritméticas
• 10 / 0 Infinity
• 0 / 0 NaN (Not a Number)
– Ojo que Infinity y NaN no son errores, sino que valores
especiales
SQRT( -1 )
DAX
• Errores
– Valores vacíos o faltantes
• No es en sí error, pero indicador de una situación que
podría resultar en retornos inesperados o errores de
cálculo.
• DAX los maneja utilizando el valor BLANK, el cual
podemos obtener invocando BLANK()
– Pruébelo creando una columna calculada con BLANK()
DAX
• BLANK() + BLANK() = BLANK() • 18 + BLANK() = 18
• 10 * BLANK() = BLANK() • 4 / BLANK() = Infinity
• BLANK() / 3 = BLANK() • 0 / BLANK() = NaN
• BLANK() / BLANK() = BLANK() • FALSE || BLANK() = FALSE
• BLANK() || BLANK() = FALSE • FALSE && BLANK() = FALSE
• BLANK() && BLANK() = FALSE • TRUE || BLANK() = TRUE
• BLANK() - 10 = -10 • TRUE && BLANK() = FALSE

Cómo es evaluado BLANK() bajo


distintas condiciones
DAX
• BLANK()
– En sí mismo es inútil
• Pero es útil cuando queremos retornar un vacío en
vez de, p. ej., un 0:
IF (
venta[UnitPriceDiscountPct] = 0;
BLANK();
venta[UnitPriceDiscountPct] * venta[SalesAmount]
)
DAX
• Interceptando errores
– Funciones
• ISERROR() Retorna TRUE si la expresión es de error
• IFERROR() Es un IF (ISERROR() … ) abreviado
• ISBLANK() Retorna TRUE si la expresión resulta en un
valor vacío (Valor BLANK)
DAX
• Condicionales
– Como en Excel, las instrucciones condicionales
están disponibles como funciones.
– IF ( 20 < 30, "second", "third" ) = "second"
– IF ( 20 < 15, "second", BLANK() ) = BLANK()
– IF ( 20 < 15, "second" ) = BLANK()
DAX
• Condicionales (IF)
IF ( Customer[Status] = "A", "Platinum",
IF ( Customer[Status] = "B", "Gold",
IF ( Customer[Status] = "C", "Silver",
IF ( Customer[Status] = "D", "White", "None" )
)
)
)
DAX
• Condicionales (SWITCH)
SWITCH (
Customer[Status],
"A", "Platinum",
"B", "Gold",
"C", "Silver",
"D", "White",
"None"
)
DAX
• Condicionales (SWITCH con variación de
sintaxis)
SWITCH (
TRUE (),
Products[UnitPrice] < 10, "LOW",
Products[UnitPrice] < 50, "MEDIUM",
Products[UnitPrice] < 100, "HIGH",
"VERY HIGH"
)
DAX
• Funciones de agregación
MIN, MAX, SUM, AVERAGE, STDEV, VAR (TÍPICAS)
COUNT Cuenta filas para columnas numéricas
COUNTA Cuenta filas con cualquier tipo de dato
COUNTBLANK Cuenta filas con BLANK
COUNTROWS Retorna el número de filas de una tabla
DISTINCTCOUNT Cuenta valores distintos en una columna
DAX
• Funciones con sufijo X
– SUMX, MINX, MAXX, AVERAGEX, PRODUCTX,
COUNTX, COUNTAX, CONCATENATEX

– Cómo funcionan Para cada fila de “Tabla”, se calcula la


FUNCIONX(Tabla, Expresión) “Expresión” y se aplica la agregación
correspondiente.
DAX
• Expresiones de tabla
– En el fondo ,tablas… reales o calculadas

• Ej: Aquí venta es una expresión de tabla (la


más simple posible, que es nombrar la
[Monto Venta] = tabla misma)
SUMX (
venta,
venta[OrderQuantity] * venta[UnitPrice]
)
DAX
• Funciones de Tabla
– Retornan una tabla

– FILTER(): Recibe una tabla y retorna una tabla


filtrada de acuerdo a la expresión
FILTER( <tabla>, <condición>)
DAX
• FILTER()
– Ejemplo:
Aquí todo lo que está en rojo es una
[MontoGrandesVentas] = expresión de tabla retornada por FILTER(), la
SUMX ( cual toma la tabla venta y la devuelve
FILTER( filtrada de acuerdo a la condición
venta
venta[OrderQuantity] > 5
),
venta[OrderQuantity] * venta[UnitPrice]
)
Intensivo Power BI

VISUALIZACIONES EN POWER BI
Opciones en Visualización

Analytics:
Lineas de tendencia,
proyecciones, lineas de
promedio y otros valores de
interés.

Formato:
Aquí se escoge el tamaño de
letra, color, posición.
Campos:
Aquí se arrastran las columnas
que serán utilizadas.
Construcción de Visualizaciones Arrastrar
valores aquí
Valor

Eje
Construcción de Visualizaciones
Valor
La mayor parte de las
visualizaciones se
compone de dos Punto de Comparación
elementos principales

Valor: El tamaño de las


barras, o los angúlos que
usa un gráfico de torta

Comparación: Categorías
en la cual se dividen
estos valores (Los meses
en el caso de la
izquierda)
Otros Detalles Interesantes.
Es possible importar
visuales personalizadas a
Power BI, descargandolas
de la Office Store
Cuando en el gráfico
de línea se tiene un
solo dato, es possible
agregar una línea de
tendencia en la
opción de analytics.
Intensivo Power BI

POWER BI EN LA NUBE
Power BI en la nube
• Para distribuir la
información Power BI
Desktop no es efectivo
• Lo que haremos es
Publicar nuestros
reportes
Power BI en la nube
• Si no lo hemos hecho
antes, debemos
identificarnos con una
cuenta Power BI
– Es gratuito crear una
Tipos de cuenta Power BI
• Power BI gratuita • Power BI Pro
– Gratis ☺ – Costo mensual (aprox
10 USD)
– 1 GB de datos como – 10 GB datos como
máximo máximo
– Conexión a datos on
premise con Power BI
Gateway
Distintos objetos
• Datasets
– Representan los datos de origen de un reporte
• Reportes
– Son nuestras creaciones
– Publicados desde Power BI Desktop
– Editables en la nube!
– No se pueden compartir directamente
• Dashboards
– Son visualizaciones de alto nivel
• Tienen elementos de uno o más reportes
• Se pueden compartir con otros usuarios, lo que
implícitamente permite compartir reportes.
Dashboards (paneles)
• Elementos
1. Barra de navegación
2. Panel con iconos
3. Cuadro de pregunta de
Preguntas y respuestas
4. Botones de ayuda y comentarios
5. Título del panel
6. Iniciador de aplicaciones de
Office 365
7. Botones de la página principal de
Power BI
8. Acciones adicionales del panel
Q&A
• En un dashboard podemos visualizaciones
creadas a partir de preguntas
– En pseudo-inglés
Q&A
• En un dashboard podemos visualizaciones
creadas a partir de preguntas
– En pseudo-inglés
Q&A
Accediendo a datos locales
• Armé un reporte conectado a datos de
nuestra base de datos
– Cuando lo publique ¿podré actualizar los datos
o tendré que publicarlo nuevamente cada vez
que necesite actualizarlo?
– ¡¡¡Power BI puede acceder a datos dentro de mi
red!!!
Accediendo a datos locales
• La solución: On premises data Gateway
– Un puente que permite transferencia rápida y
segura (encriptada) de datos entre una fuente
local y servicios como Power BI
– (Sólo una cuenta Pro puede configurarlo)
Power BI Gateway
El Gateway se instala
localmente y envía los
datos a la nube a través de
canales seguros
encriptados

Credenciales de
acceso son
almacenadas de
manera segura
localmente

Fuentes de datos
corporativos

También podría gustarte