Power bi SSIS y T-SQL todo en un proyecto

¡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

Imagen 2

 

Ahora ejecutamos y vemos el resultado

Imagen 3

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»

Imagen 7

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»

Imagen  8

 

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

 

Imagen 16

 

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.

Imagen 21

 

A por la medidaaaaaaas!!!

Recuerda en las buenas practicas crear una tabla para las medidas

Imagen 22

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.

Loading

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *