Introducción 💡
En el mundo del desarrollo de productos de datos, la calidad de los mismos es un aspecto fundamental que no puede pasarse por alto. En este artículo, exploraré cómo llevar a cabo chequeos de calidad de datos desde una perspectiva de modelado dimensional en Power BI.
Es esencial documentar y, en la medida de lo posible, automatizar estos chequeos para garantizar la fiabilidad de los datos que se utilizan en la toma de decisiones. Como desarrollador@s de productos de datos, tenemos la responsabilidad de proporcionar visibilidad a los consumidores sobre la calidad de los datos que ofrecemos, incluyendo los procesos de calidad aplicados y los resultados obtenidos tras las transformaciones realizadas. Al final del proceso, el objetivo es proporcionar un perfil de calidad claro para que los usuarios puedan evaluar la utilidad de los datos.
Estos análisis se pueden realizar en distintas herramientas y luenguajes de programación y de base de datos. El enfoque que se dará aquí, es realizar el análisis con Power BI.
Cajón de herramientas 🧰
Origenes de datos.
Un dataset (modelo semántico) de Power BI, es decir, un fichero .pbix que incluya tablas de hechos y dimensiones, con sus respectivas relaciones (comprobando los tipos de relaciones y la cardinalidad), asumiendo que se ha realizado el trabajo previo de entendimiento de la casuística de negocio.
Crear páginas en el fichero .pbix, en la vista de reportes, donde puedas ir creando las validaciones. Recuerda dar una contexto claro a las validaciones que realices: nombre de la página del .pbix, títulos sobre el lienzo, títulos sobre los objetos (controles) que utilices y la mayor claridad posible sobre el proceso, para que sea útil, gráfico, auditables y entendible por terceras personas interesadas.
Power Query Online (dataflows, Datamarts) o Power Query Desktop.
Herramientas y funciones de visualización de Power BI.
Conocimientos de SQL.
Una herramienta de documentación.
Y las que prefieras.
Exploración y transformación de datos 🔍
El primer objetivo será encontrar patrones de alto nivel (high-level patterns).
Análisis de patrones de alto nivel:
Crear medidas para los atributos cuantificables utilizando funciones como : SUM, MIN, MAX, AVERAGE, STDDEV, entre otras.
Calcular el número de registros, valores únicos y valores distintos en las tablas importantes.
Validaciones en Tablas de Hechos:
Revisar columnas de IDs, fechas, importes y cantidades, asegurando la coherencia en formatos y la ausencia de valores nulos.
En fechas evaluar que el formato en el que llega el dato concuerde con el culture (timezone) configurado. Tambien, verificar la existencia de fechas futuras y entender si tiene sentido o no.
En números decimales o monedas (currency), evaluar que el sepadaror decimal y también evaluar el impacto del culture (timezone).
En los atributos que contienen los identificadores de tablas (Fk), es necesario evaluar que no existan valores null y blank.
Si tuvieras identificadores (ID, Pk) de la tablas de hechos (mejor si no es así 😉, pero dependerá las casuísticas que tengas), evaluar que sean únicos.
Evaluar la existencia de cantidades negativas, en tablas que no deberían tenerlas (por ejemplo, cantidad fabricada).
Validaciones en Tablas de Dimensiones:
Garantizar la integridad de los identificadores de tablas y su unicidad. Es decir, evaluar los atributos que contienen los identificadores de tablas (Pk), para que no existan valores nully blank, y que sean únicos.
Detectar y eliminar valores extraños en atributos.
Detección y Corrección de Errores:
Identificar y abordar errores (Errors) en tablas o columnas.
Eliminar registros (filas) duplicados y columnas redundantes.
Eliminar filas y columnas vacías.
Optimización de Tipos de Datos:
Asegurarse de que los tipos de datos sean coherentes y evitar tipos indefinidos.
Verificar la consistencia entre los tipos de datos de claves primarias y foráneas.
Limpieza de Datos:
Eliminar caracteres no imprimibles (Tabulación, Espacios especiales, Enter, etcétera) y espacios en blanco innecesarios (por delante y por detrás).
Descartar filas totalizadoras que puedan distorsionar el análisis.
Visualización y Análisis en Power BI:
Utilizar diversas herramientas de visualización para identificar patrones o anomalías en los datos.
Crear páginas con diferentes perspectivas de los chequeos y utilizar el Drill Through para explorar detalles.
Perspectiva estadística 🧮
Para complementar el análisis de calidad de datos, es esencial adoptar una perspectiva estadística para comprender mejor la distribución y comportamiento de los datos. Algunas consideraciones clave incluyen:
Tendencias Centrales y Valores Típicos: Determinar la moda, media y mediana de las variables en análisis proporciona una visión clara de la tendencia central de los datos y ayuda a identificar posibles valores atípicos.
Identificación de Outliers: La divergencia significativa entre la media y la mediana sugiere la presencia de outliers. Es recomendable investigar y, si es necesario, eliminar estos valores atípicos para mantener la integridad del análisis.
Anomalías y Distribución Normal: Evaluar si los valores de las columnas se encuentran dentro de un rango esperado y examinar la distribución de los datos para identificar posibles anomalías. La comprensión de la distribución normal de los datos proporciona información valiosa sobre su comportamiento general.
Dispersión de los Datos: Analizar la dispersión de los datos para comprender qué tan separados están los puntos de datos entre sí. Esto puede ayudar a identificar la variabilidad en los datos y proporcionar información sobre su consistencia.
Distribución Temporal: Examinar la distribución temporal de los datos, especialmente en términos de años y meses. Utilizar matrices, gráficos de barras y histogramas puede ayudar a visualizar patrones temporales y evaluar la consistencia de las medidas creadas previamente.
Análisis de Tablas desde una Perspectiva Estadística: Realizar un análisis detallado de las tablas desde una perspectiva estadística, utilizando las medidas mencionadas anteriormente. Esto permite identificar valores aceptables, especialmente en las tablas que representan variables cuantificables, y visualizar la curva de distribución de los datos para una comprensión más profunda de su comportamiento.
Al adoptar esta perspectiva estadística, como desarrollador/a puedobtener información valiosa sobre la calidad y consistencia de los datos, lo que contribuye a la toma de decisiones más informada y precisa. Sería ideal poder encontrar la curva de distribución de los datos.
Gestión de Datos Faltantes 🕵️♂️
La problemática de los datos faltantes, comúnmente conocida como "missing data", es una preocupación importante en el análisis de datos que requiere una atención cuidadosa. La presencia de valores nulos (nulls) o en blanco (blanks) puede afectar significativamente la integridad y la precisión del análisis. Aquí algunas consideraciones para abordar esta problemática:
Identificación y Tratamiento de Datos Faltantes: La primera tarea es identificar los campos que contienen valores nulos o en blanco. Sin abordar estos datos faltantes, el análisis resultante puede ser incompleto y potencialmente sesgado.
Estrategias de Gestión: Dependiendo del volumen de datos faltantes, existen varias estrategias para abordar este problema:
Eliminación/Filtrado de Filas: Si el porcentaje de filas con datos faltantes es bajo (por ejemplo, menos del 5%), eliminar o filtrar estas filas puede ser una opción viable para preservar la integridad del análisis. (filas faltantes < 5%)
Reemplazo de Valores: Para un porcentaje moderado de datos faltantes (entre el 5% y el 25%), se puede optar por reemplazar los valores nulos utilizando medidas como la media, la mediana o la moda de la variable en cuestión. Este enfoque ayuda a preservar la integridad del conjunto de datos sin perder una cantidad significativa de información.(Filas faltantes entre 5% y 25%).
Regresión: Compleja, dajemos para otras edición ;)
Eliminación de Variables: Cuando hay una cantidad considerable de datos faltantes para una variable específica, puede ser preferible eliminar esa variable del análisis. Sin embargo, esta decisión debe tomarse con precaución, ya que puede afectar la calidad y la utilidad del conjunto de datos en su conjunto.
Gestión en Tablas de Dimensiones: Es especialmente importante asegurar la integridad de los datos en las tablas de dimensiones, donde los valores nulos o en blanco pueden tener un impacto significativo en la experiencia del usuario final. En lugar de dejar estos campos vacíos, se recomienda reemplazarlos con valores entendibles y coherentes, como Undefined , SinNombre, después de comprender las causas subyacentes de los datos faltantes.
Abordar eficazmente la problemática de los datos faltantes es crucial para garantizar la precisión y la confiabilidad de los resultados del análisis de datos. Al implementar estrategias adecuadas de gestión de datos faltantes, los analistas pueden mitigar los posibles sesgos y asegurar que los resultados sean representativos y útiles para la toma de decisiones.
Integridad referencial 🔂
La integridad referencial es un aspecto fundamental en el modelado de datos relacional, ya que garantiza la coherencia y consistencia entre las tablas del modelo. Este control verifica si todos los valores de la clave foránea (FK) en una tabla están presentes en la clave primaria (PK) de la tabla relacionada.
Verificación de Integridad Referencial: El proceso de verificación de integridad referencial implica asegurarse de que todos los valores de la clave foránea en las tablas de hechos estén presentes en las tablas de dimensiones relacionadas. Esto garantiza que no haya valores huérfanos o referencias a datos inexistentes en el modelo. Puedes crear una matriz ubicando en las filas la dimensión que quieres evaluar y medidas en valores, si salen valores con dimensión lineas de la dimensión en blanco, es porque tienes problemas.
Auditoría y Mantenimiento: Es importante realizar auditorías periódicas para verificar la integridad referencial y realizar los ajustes necesarios en caso de discrepancias. Además, se deben implementar medidas de mantenimiento para garantizar que la integridad referencial se mantenga a lo largo del tiempo, especialmente en entornos dinámicos donde los datos pueden cambiar con frecuencia.
Propagación de filtros: La propagación de filtros está estrechamente relacionada con la integridad referencial, ya que ambos procesos aseguran que los datos se mantengan consistentes y precisos en todo el modelo. Al propagar los filtros, se evita la inclusión de datos no relacionados y se mantiene la coherencia en las relaciones entre las tablas.
El control de la integridad referencial es un aspecto crítico en el diseño y la gestión de bases de datos relacionales. Al asegurar que las relaciones entre las tablas sean coherentes y consistentes, se promueve la confiabilidad y la utilidad de los datos en el análisis y la toma de decisiones empresariales.
Test de volumentría 🥛
Es crucial para cualquier proyecto de análisis de datos garantizar que el volumen de datos se mantenga dentro de los límites esperados. Los tests de volumetría son esenciales para identificar cualquier anomalía en el crecimiento de los datos, lo que podría indicar problemas en el origen de los datos o en los procesos de extracción, transformación y carga (ETL). Aquí se presentan algunas consideraciones clave sobre este tema:
Control de Escalabilidad: Los tests de volumetría ayudan a monitorear la escalabilidad del sistema, asegurando que pueda manejar eficientemente el crecimiento de datos esperado sin comprometer el rendimiento. La detección temprana de saltos inesperados en el volumen de datos permite abordar los problemas de escalabilidad antes de que afecten negativamente a las operaciones.
Indicadores de Problemas Potenciales: Los cambios significativos en el volumen de datos pueden ser indicadores de problemas en el origen de los datos o en los procesos ETL. Por ejemplo, una disminución abrupta en el volumen de datos puede indicar un problema en la fuente de datos, mientras que un aumento repentino puede ser resultado de errores en los procesos ETL o de la llegada de nuevos datos.
Comparación con Parámetros Históricos: Es importante tener una base histórica para comparar el volumen de datos actual y detectar cualquier desviación significativa. Sin embargo, en algunos casos puede resultar difícil encontrar parámetros de comparación, especialmente cuando se trabaja con datos nuevos o altamente volátiles.
A continuación, te proporciono algunas sugerencias sobre cómo podrías llevar a cabo tests de volumetría:
Comparación con Períodos Históricos: Una forma común de realizar tests de volumetría es comparar el volumen de datos actual con períodos históricos similares. Esto implica analizar el crecimiento del volumen de datos a lo largo del tiempo y detectar cualquier desviación significativa que pueda indicar problemas en el origen de los datos o en los procesos de ETL.
Establecimiento de Umbrales de Tolerancia: Define umbrales de tolerancia para el volumen de datos esperado en diferentes períodos de tiempo. Por ejemplo, puedes establecer un rango de crecimiento mensual esperado y monitorear si el volumen de datos se mantiene dentro de este rango.
Implementación de Alertas Automáticas: Configura alertas automáticas para notificar al equipo de datos cuando se detecten desviaciones significativas en el volumen de datos.
Utilización de Herramientas de Monitoreo: Utiliza herramientas de monitoreo de datos que permitan realizar seguimiento del volumen de datos de forma continua y automática. Estas herramientas pueden generar informes y gráficos que faciliten la visualización del crecimiento del volumen de datos y la detección de anomalías.
Análisis de Tendencias y Patrones: Realiza análisis de tendencias y patrones en el volumen de datos para identificar cualquier cambio significativo que pueda requerir atención. Esto puede implicar el uso de técnicas estadísticas y análisis de series temporales para detectar anomalías en el crecimiento del volumen de datos.
En conclusión, los tests de volumetría son un componente crítico en la garantía de la calidad de los datos, asegurando que el volumen de datos se mantenga dentro de los límites esperados y que cualquier anomalía se detecte y aborde rápidamente, como así también, que los usuarios de tu productos de datos entiendan los valores esperados.
Conclusión 🧠
En conclusión, asegurar la calidad de los datos es fundamental para cualquier proyecto de análisis y toma de decisiones basada en datos. En este artículo, hemos explorado diversas estrategias y prácticas para garantizar la calidad de los datos en un entorno de Power BI, desde la implementación de chequeos de calidad y control de integridad referencial hasta la realización de tests de volumetría.
Es importante recordar que la calidad de los datos no es un proceso estático, sino un esfuerzo continuo que requiere atención constante y adaptación a medida que evolucionan los datos y las necesidades del negocio. Al invertir en la implementación de buenas prácticas y herramientas para garantizar la calidad de los datos, las organizaciones pueden mejorar la confiabilidad de sus análisis, aumentar la eficacia de sus decisiones y obtener una ventaja competitiva en el mercado.
Además, fomentar una cultura de calidad de datos en toda la organización, promoviendo la colaboración entre equipos y la responsabilidad compartida en la gestión de datos, es fundamental para el éxito a largo plazo. Al trabajar juntos para garantizar la integridad, precisión y consistencia de los datos, podemos aprovechar al máximo el potencial de nuestros datos para impulsar el crecimiento y la innovación en nuestras organizaciones.
En última instancia, la calidad de los datos no solo se trata de cumplir con estándares y procedimientos, sino de empoderar a las personas para tomar decisiones informadas y confiables que impulsen el éxito empresarial. Con un enfoque centrado en la calidad de los datos, podemos construir un futuro más sólido y resiliente para nuestras organizaciones y comunidades.
Este post es mi punto de partida y las bases mínimas. A partir de aquí, hay recursos muy interesante, que van más allá en cuanto a código, configuraciones, automaización y observabilidad. Espero seguir aprendiendo. Además, tengo intensiones de ir creando teamplates o ejemplos, espero poder materializarlas.
Excelente !!!