Modelado de datos
Modelado de datos
El Flujo de BI consta de
ETL
Modelado de datos
Visualización de datos
ETL se maneja con Power Query, mientras que el modelado de datos se realiza con Power Pivot
Modelado de datos: Análisis complejos entre varias tablas conectadas por un campo en común
Relaciones y filtros
Relaciones entre tablas
Primary keys (claves primarias): Se utilizan para definir la clave principal de la tabla. Las columnas que tienen este perfil no pueden contener valores nulos ni puede haber valores duplicados. Es decir, debe contener registros únicos
Foreign keys (claves foráneas): Una clave foránea es una columna o conjunto de columnas, que contiene valor que hace referencia a una fila de otra tabla
Tipos de relaciones:
1:1 (de 1 a 1): Ambas tablas se conectan por sus claves primarias. Actúa como una extensión de estas
1:n (de 1 a varios): Ocurre cuando se conecta una clave primaria con la clave foránea de otra tabla
m:n (de varios a varios): Ocurre cuando ambas tablas se relacionan por sus claves foráneas (ninguna de las columnas tiene valores únicos). Evitar este tipo de relaciones
Conflictos a resolver:
Relaciones m:n: Mediante concatenación de capos clave o mediante tablas asociativas
Relaciones inactivas:
Borrarlas porque no son necesarias
Pueden ser relaciones no resueltas m:n
Muy interesante la herramienta Model Documenter
Diseño de modelos de datos:
Existen distintos tipos (estrella, copo de nieve, etc.)
En Power BI nos enfocamos en el modelo de esquema de estrella, que es el que resulta más eficiente
Componentes del modelo en estrella:
Tablas de hechos: También conocidas como tablas transaccionales o (fact en inglés). Responden a la pregunta ¿Qué quiero obtener o buscar?
Tablas dimensión: También conocidas como tablas de búsqueda. Responden al nivel o clasificación que nos interesa, que puede ser tiempo o tipo de dato
Motor del modelo de datos
Su nombre es Vertipaq
Se encarga de todas las operaciones de análisis de datos (DAX)
Utiliza tecnología in-memory que provee un elevado almacenamiento y rendimiento en consulta de datos
Permite ciclos de desarrollo corto
Solucionar problemas de modelado
Diseño de Modelo de Datos: El Modelo de Esquema en Estrella es el más utilizado en Power Bi porque está compuesto por una tabla de dimensiones (Búsqueda) y una tabla de Hechos (transaccional) donde la integración de ambas sobresale el uno a -muchas relaciones y por lo tanto, evita la redundancia de datos
Data Model Engine: VERTIPAQ se encarga de las operaciones de análisis de datos (DAX) y utiliza tecnología (in-memory) que proporciona un alto rendimiento para almacenar y consultar datos
Necesidad del modelado de datos:
Si se carga un único dashboard, se tendrá un mal rendimiento para volúmenes de datos grandes y con redundancia de datos
Modelar adecuadamente evita estos problemas
Lenguaje DAX
DAX (Data Analysis Expression):
Lenguaje de expresiones analíticas de Power BI: Utiliza fórmulas analíticas y funciones operativas que permiten el cálculo de uno o más valores
Creado para manipular un modelo de datos tabular
Está basado en Excel; de ahí su similitud en términos de estructura de formulación. Podemos encontrar este lenguaje en Power BI, SAS Tabular y Excel en el plugin Power Query
¿Por qué DAX?:
Relaciones de Navegación
Pensado para llegar a mayor cantidad de usuarios
Cálculo dinámico de dimensiones, por ejemplo Time Intelligence
Menor curva de aprendizaje para los analistas de datos. Aprovecha el conocimiento existente de trabajar con fórmulas Excel
Por ejemplo: = IF (Ventas > 0, “GANÓ”, “PERDIÓ”)
¿Qué podemos crear con DAX?
Columnas calculadas: Permite que los métodos creen nuevas columnas en el modelo de datos. Además permite que se conecten tablas con múltiples columnas clave en una nueva columna
Tablas Calculadas: Crea una tabla derivada de otra tabla. Por ejemplo, este sistema nos permite crear tablas sin duplicados de un campo de otra tabla, para romper relaciones m:n
Medidas: Admite inteligencia de tiempo y crea cálculos dinámicos, que es lo más utilizado en Power BI
Convenciones del lenguaje (formato general):
'nombre de tabla' [nombre de columna] Ejemplo: 'Tabla productos'[Precio]
El nombre de la tabla se puede omitir cuando se usa en columnas calculadas, pero no se recomienda hacerlo.
Usar CALCULATE
Se trata de una función que solo tiene dos parámetros. Nos permite realizar una acción llamada “modificador de contexto de filtro”.
Permite crear un contexto de fila dentro de nuestros cálculos
Inteligencia del tiempo
Por Inteligencia de tiempo, hacemos referencia a las técnicas, herramientas y metodologías que nos permiten analizar nuestras medidas minuciosamente a través del tiempo
El concepto de “tiempo” está presente en todas las soluciones de inteligencia de negocios. Sirve como punto de partida para explotar la información
Tabla de fechas
Para poder utilizar este tipo de análisis dentro de Power BI, necesitaremos primero de crear una nueva dimensión
A estas tablas se les conoce como tablas de fechas o tabla calendario, y funciona como una nueva dimensión para nuestro modelo
Una tabla de fechas se identifica por tener todas las fechas existentes en nuestro modelo (o al menos las necesarias para el análisis) de manera continua. Es decir, sin que falte ni un solo día entre las fechas
Permite supervisar el crecimiento o disminución en detalle
Permite hacer proyecciones
Iteradores X
Funciones iterativas
Este tipo de funciones son especiales dentro de DAX y permiten crear operaciones a nivel de fila y calcular un resultado a partir de ellas
Las funciones iterativas también son conocidas como funciones X, por su terminación dentro de su nombre en DAX
Algunas de estas funciones son: SUMX, AVERAGEX, MAXX, MINX, STDEVX.S, PERCENTILEX.EXC y CONCATENATEX
Simulaciones de SUM y SUMX en Excel:
Necesitamos calcular la suma del importe de todos los productos. ¿Qué función debemos utilizar?. ¿Podemos usar indistintamente una u otra?
SUM:
Agrega todos los números en una columna
El parámetro es la columna que contiene los números a sumar. La función acepta valores numéricos o de fecha y devuelve como resultado un valor decimal. Las filas pueden contener valores en blanco. Los valores de la columna no se pueden filtrar.
Suma de Importe := SUM([Importe])
SUMX:
Devuelve la suma de una expresión evaluada por cada fila de una tabla
El parámetro es la tabla que contiene los valores para los cuales se evaluará la expresión. Puede ser el nombre de una tabla o una expresión que devuelve una tabla.El parámetro es una columna que contiene los números que desea sumar o una expresión que se evalúa como una columna.Solo se cuentan los números de la columna. Se omiten los espacios en blanco, los valores lógicos y el texto.
Suma de Importe 1 := SUMX(Tabla1; [Importe])
Podemos observar que las dos funciones devuelven el mismo resultado.Lo que diferencia a ambas funciones es la forma en que realizan el calculo:La función SUMX es un iterador, recorrerá cada fila evaluando una expresión mientras que la función SUM() sumará directamente los valores de la columna.Para este caso la función SUM() es la recomendada
2. Calcular la suma del Importe del modelo anterior solo para la categoría frutas
SUM:
La función SUM() no nos permite filtrar las filas de la tabla sobre la que queremos realizar el cálculo y debemos combinarla con la función CALCULATE(). Importe de frutas := CALCULATE(SUM([Importe]) ; Filter(Tabla1;[Categoría]=”frutas”))
SUMX:
En cambio, la función SUMX () sí que nos lo permite: Importe frutas := SUMX(Filter(Tabla1; [Categoría]=”vino blanco”); [Importe])
En este caso pudiera usarse cualquiera de las dos, si se aplica de la manera mencionada
3. Calcular las ventas totales. En este modelo, a diferencia del anterior, no tenemos una columna con el importe de cada fila, pero podemos calcularlo usando las columnas Precio venta y Cantidad en la expresión:[Precio venta]*[Cantidad]
SUM:
Sintaxis: SUM([Precio venta]*[Cantidad])
La función SUM() nos devuelve un error porque solo admite como parámetro una columna
SUMX:
En cambio, la función SUMX () sí que nos lo permite porque admite una expresión además de una columna:
Sintaxis: SUMX(Tabla2;[Precio venta]*[Cantidad])
En este caso la función SUMX() es la recomendada
Last updated