¡Bienvenidos, muy buenos días tardes o noches , según donde me leas !
En el vasto mundo de la analítica de datos, cada proyecto es una oportunidad única para explorar, aprender y crear. En este artículo, te invito a sumergirte en un emocionante viaje de descubrimiento mientras creamos juntos un proyecto desde cero, enfocado en el poderoso e innovador entorno de Power BI.
Imagina que tienes ante ti un lienzo en blanco, listo para ser llenado con datos y transformado en una narrativa visualmente cautivadora. En este viaje, serás el arquitecto de tu propia experiencia, desde la preparación meticulosa de los datos hasta la creación de visualizaciones impactantes que revelan historias ocultas.
Nos sumergiremos en un escenario específico: el ámbito de Recursos Humanos. Aquí, exploraremos la dinámica de datos relacionados con la rotación de empleados, la satisfacción laboral y otros aspectos fundamentales que impactan en la gestión del talento.
A lo largo de este proceso, aprenderemos juntos a utilizar herramientas como SQL para limpiar y preparar datos, Integration Services para facilitar la integración de datos, y por supuesto, Power BI para dar vida a nuestros hallazgos a través de visualizaciones dinámicas y medidas inteligentes.
Además, exploraremos técnicas avanzadas de diseño y presentación para asegurarnos de que nuestras visualizaciones no solo sean informativas, sino también impactantes y estéticamente agradables.
Este artículo no solo será una guía práctica, sino también una fuente de inspiración y creatividad. Así que prepárate para embarcarte en un viaje emocionante hacia el mundo de la analítica de datos con Power BI. ¡El lienzo está listo, es hora de comenzar a crear!
Proyecto Power BI. Desde cero crear un modelo de datos en SQL y conectarnos a Power BI
En un caso de Recursos humanos el cual el dato necesita ser limpiado y estandarizado para crear un simple modelo en estrella
Lo primero es analizar específicamente las columnas que deseamos o necesitamos para poder trabajar con ellas.
Para seleccionarlas con integración servicies
Para crear las categorías necesarias con SSIS, pero no cargar todos los datos sin ser necesarios para el análisis final.
Acá te comparto las columnas usadas y sus categorías creadas
Columnas usadas
Gender
Attrition
Se usa la columan distance from home para crear otra
y se crea la columna Ditance status
Ctegorias si es <=10 es near by si es <=20 Far
else very far
Ahora la columna total working years:
Para crear otra columna llamada working year group
<=10 btw 0-10
<=20 btw 11-20
<=30 btw 21-30
else
31 plus
Otra columna es job satisfaction
La cual se crea otra columna llamada
Job Satisfaction Status
=1 Very Satisfied
=2 Satisfied
=3 Dissatisfied
else Very Dissatisfied
Utilizamos la columna Age
Creando la columna Age bucket
<= 25 18-25
<= 35 26-35
<= 45 36-45
<= 55 46-55
56 plus
Entonces en base a esas columnas hacemos la selección en nuestra conexión , seleccionando las columnas deseadas. Imagen 1
Posterior a ello lo que realizamos con la propiedad agregación , hacemos un count all para evidencia que no perdemos información al quitar las columnas no deseadas
Ahora ejecutamos y vemos el resultado
Ahora hacemos las columnas creadas con la propiedad columna calculada, empecemos con la columna
Distance from home la cual se creará una categorización de esta
Se usa la columna distance from home para crear otra
y se crea la columna Ditance status
Categorías si es <=10 es near by si es <=20 Far
else very far
Para esto usaremos la propiedad columna derivada, la cual debemos colocar los siguientes criterios :
([Distance From Home] <= 10) ? «Near By» : ([Distance From Home] <= 20) ? «Far» : «Very far»
Te explico que es esto , la columna evaluada en este caso Distance From Home, se evaluara si es menor o igual a 10 recuerda dentro de los paréntesis siempre, y si es así validamos con el signo de interrogación de cierre seguido del resultado que deseamos que devuelva cuando consulta los registros con esa condición , ahora bien para el segundo bloque realizamos lo mismo , colocamos los : para validar la segunda condición para los criterios que no cumpla con lo que estamos creando , así sucesivamente hasta que llegamos al else de un condcional if, y colocamos : mas el dato que deseamos devuelto o que deseamos que devuelva. Imagen 4 y 5
Seguimos y ahora creamos el resto de los criterios con esta misma lógica , para la siguiente columna que debemos crear que será
Ahora la columna total working years:
Para crear otra columna llamada working year group
<=10 btw 0-10
<=20 btw 11-20
<=30 btw 21-30
else
31 plus
Creamos los siguientes condicionales para este paso a paso
([Total Working Years]<= 10) ?»btw 0-10″ :([Total Working Years]<= 20) ?»btw 11-20″ :([Total Working Years]<= 30) ?»btw 21-30″:»31 plus»
Continuamos con la columna
Otra columna es job satisfaction
La cual se crea otra columna llamada
Job Satisfaction Status
=1 Very Satisfied
=2 Satisfied
=3 Dissatisfied
else Very Dissatisfied
Esta columna seguimos replicando estos procesos
([Job Satisfaction] == 1 ) ? «Very Satisfied» : ([Job Satisfaction] ==2 ) ? «Satisfied» : ([Job Satisfaction] == 3 )? «Dissatisfied» :»Very Dissatisfied»
La siguiente columna es crear y manejar es edad, la cual es la ultima para poder realizar y continuar el análisis
Utilizamos la columna Age
Creando la columna Age bucket
<= 25 18-25
<= 35 26-35
<= 45 36-45
<= 55 46-55
56 plus
Para crear esta columna ([Age]<= 25 ) ? «18-25» : ([Age]<= 35 ) ? «26-35» : ([Age]<=45 ) ? «36-45» : ([Age]<=55 ) ? «46-55»: «56 plus” manejamos
Imagen 9 y la 10
Podemos a partir de este proceso un modelo de datos en estrella, para que así practiques
Creamos una pequeña tabla de aterrizaje en nuestra base de datos prueba, y así manejamos el proceso de carga y transformación , para luego crear las dimensiones en el modelo T-SQL, las transformaciones en SSIS imágenes
Creamos una tabla fácil de aterrizaje donde estará la información alojada para luego ser distribuida en las dimensiones y tabla de hechos
12, 13 y 14
Ejecutamos el proceso ETL y tenemos nuestro fichero importado con las columnas creadas y seleccionadas en una tabla de aterrizaje en SQL SERVER CON INTEGRATION SERVCIES imagen 15
Ahora pasamos a crea nuestro pequeño modelo de datos en estrella , será sencillo unificar las tablas de tipo dimensión que son creadas y solo tendremos datos aditivo es decir numéricos en la tabla de hechos.
Acá existen dos maneras bueno más de dos maneras para normalizar estar tabla, me explico podemos crear una tabla de hechos única, y otra de dimensiones con todas las dimensiones des normalizadas y un único campo clave.
O podemos crear una dimensión por categoría como se realizará en este ejemplo.
O ya enfocado con Type 1 Slowly Changing Dimensions y tipo 2 que debe ser los mas correcto para dejarlo alimentado en el DWH y luego pasarlo de esa manera que se consuma la data desde BI.
Continuando con ello, creamos específicamente, creamos la dimensiones aparte y una sola combinada para que noten ambas diferencias, es decir tablas dimensiones en las cuales, todo separado que no es lo mas remendable es para practicar y entender como crear dimensiones , siguiendo si o si quitando los categórico de la de hechos OJITOOOO, ahora bien pasamos.
Para uno de los casos anteriores en los cuales podemos realizar es esta
Create table DimAttriotionGender
(
IdAttriotionGender int identity (1,1),
Attriotion varchar (100),
Gender varchar (100)
)
Para estos casos , cuando deseamos agrupar datos categórico que no van muy de la mano o no son dependientes uno de otro no existen relación de herencia o vinculación por modificacion, podemos crear combinaciones únicas, para tener un ID único de estas posibles combinaciones , y asi no crear tantas dimensiones sin necesidad (Recuerda este fue el paso anterior que te explique )
Vamos ahora a crear el insert como vemos tenemos el ID único creado y la combinación especifica sin perder datos para ninguno de los casos luego con un left join cruzamos por categorías y creamos nuestra tabla de hechos final , sin datos categóricos recuerda categóricos para las dimensiones
Ahora procedemos a crear el resto de inserts para cada tabla de dimensión creada.
Las consultas la dejare en el Github personal para que las descargues y utilices
Imagen 17
Ahora pasamos a crear la tabla de hechos , la lógica acá es crear una temporal donde pasaremos lo que esta en el stage a la temporal m luego hacemos los left join para crear las columnas deseadas , para luego crear la tabla de hechos
Imagen 18
Creamos la tabla de hechos una clave subrogada auto incrementable imagen 19
Ahora a insertar los datoooooos imagen 20
Con este proceso Nos vamoooos claro que siii a power BI a conectarnos
Cargamos los datos y vemos nuestro hermoso modelo en estrella creado para power bi cumpliendo con los requisitos que necesitamos claves subrogadas todo bonitos y arreglado un modelo de datos COOOOOL.
A por la medidaaaaaaas!!!
Recuerda en las buenas practicas crear una tabla para las medidas
La primera medida que vamos a crear es Total de empleado
Total Employees =COUNTROWS(Fact_HR)
Luego crearemos el total de retención
Total attrition = CALCULATE([Total Employees],DimAttriotionGender[Attriotion]=»Yes»)
Ahora en base a la segunda medida podremos crear muchos más gráficos seleccionaremos dos de barras , uno horizontal y otro vertical , con diseños interesantes , para recrear me attrition por las categorías que creamos anteriormente
Ahora para condicionar nuestras medidas , lo que realizaremos es modificar específicamente , para condiconar los colores que aparecen en la barra de desgaste de empleado por la satisfacción de los empleados, idenficando el mínimo y el maximo en una sola medida y asignando tres colores para cada caso
Imagen 23 , 24.
Ahora lo que hacemos en este caso , lo que podemos realizar es el cambio y modificación de cada proceso en el cual si es menor a la media sera de un color y si es mayor a la media sera de otro color
Imagen 25 y 26
Ahora para hacerlo mas bonito y dinámico , crearemos dos SVG y según su % de representación se represente el color específicamente, para ambos géneros , empezamos con el masculino(Lo cool de esto es que solo con la código svg puedes jugar con los colores para modificar el relleno de la imagen en color , dentro de una tabla) tip importante la medida que contiene el código SVG debe estar en formato URL imagen .
Para empezar a organizar nuestras medidas , debemos crear carpetas donde estarán cada bloque de medidas distribuidas.
Hasta acá hemos terminado la fase de back-end del BI del proyecto que estamos haciendo ahora empieza el front-end (Bueno ya llevamos rato en ello jajajaja)
Crear lo visual, y los gráficos
La paleta de colores utilizada es esta
#818081 MAXIMO
#656785 fuera de los rangos
#F32768 Minimo
Tambien los colores #282833 y #EE7639. Recuerda es importante saber la paleta de colores que se esta utilizando en el diseño .
También que tipografia estas utilizando , yo esta ves Comic San (Me gusta!!!) tanto para las etiquetas como para los números
Ahora hacemos unos ajustes de colores y visuales de gráficos para que quede de la siguiente manera
Imagen 28 y 29
Vamos a crear un menú de filtrado estilo emergente para personalizar mas nuestras paginas del informe, acá es combinar un poco de creatividad combinación de los colores seleccionados y los pasos de modificación, es decir todo lo que deseamos realizar, acá el trabajo es organizar los bookmarks que serán nuestros aliados POR FAVOOOOOR DE BUENAS PRACTICAS, Nombrea los bookmarks que utilices para crear el menú de filtrado. Imagen 30
Ahora organizaremos específicamente los filtros con colores que combinen, y los campos que deseábamos para la interactividad Agregamos 4 filtros mas por los grupos de dimensiones que creamos imagen 31
Ahora procedemos a ingresar el titulo y a agrupar todo el bloque tanto los botones del comportamiento como lo que contiene los filtros
Para que funcione el botón de aplicar debemos realizar específicamente , los siguiente cambios , al que solo la modificación se aplique a los objetos visuales seleccionaos y que no afecte los datos ojitos para que al dar aplicar funcione la interacción 😉 imágenes 31, 32 y 33
Ahora ingresamos el botón de filtrado un logo creado con power point le cambiamos el color a blanco , para el botón de filtro hacemos la misma combinación para que mantenga el filtrad que esta previamente seleccionado.
Imagen 34 y 35
Ahora es de asignar a cada botón si correspondiente caso de marcador o bookmarks imagen 36
Ahora para cerra solo crearemos específicamente , una tarjeta de KPI más llamada Total employees todal de empleados que es un countrowws de nuestra tabla de hechos imagen 37
Lo tenemoooos!!! Todo un proceso completo desde creación de tablas de hechos y dimensiones transformación con SSIS trabajado con T-SQL creación de medidas y cálculos , uso de SVG para personalización de objetos , control de colores y uso letras todo el proceso completo , manejo de medidas para el comportamiento visual y resaltar los datos mas importante con los gráficos de barras.
LINK DE YOUTUBE: https://youtu.be/wM1ka6brfjQ
LINK GITHUB: https://github.com/vicente2121/Proyecto-HR.git
LINK DEL CUADRO DE MANDO: https://app.powerbi.com/view?r=eyJrIjoiZDllMzkwOTgtYWZjNC00ZjNkLThjMDgtNzI1MmJmYzc5MDg2IiwidCI6IjkxMTVmY2FmLWE5NGQtNDBiMS1hM2JhLWIwNjJjODA1NTVlMCIsImMiOjl9
Vicente Antonio Juan Magallanes.