Tarea generación de perfiles II – Visualización – Caso A

En días pasados nos quedamos en la ejecución de la tarea Generación de perfiles de datos. Pues bien, vamos a ver qué tenemos en la ruta indicada para el destino en el Administrador de conexión para el destino:

carpetaarchivoperfil

Aquí tenemos nuestro perfil, en XML, vamos a verlo…

perfilxml

Ufff, y ¿dónde está aquí el perfil? No pasa nada, SQL al rescate, volvamos al menú Inicio del PC – SQL Server 2008 – Integration Services – Data Profiler Viewer.

integrationdataprofiler

Abrimos el archivo para ver qué contiene.

visordeperfiles

El Visor de perfil de datos los muestra, para cada tabla analizada, los perfiles que seleccionamos durante la configuración de la tarea. Vamos a detenernos un poquito en cada uno de ellos; pero antes veamos cuál era la estructura de la tabla desde el SQL Server Management Studio.

tablaenssms

Ahora, a ver qué nos cuenta el Visor de perfiles.

Perfiles de claves candidatas – De todas las columnas existentes, se han identificado tres posibles claves debido a que sus datos son únicos en el 100 % de los casos.

perfilclavescandidatas

Perfiles de dependencia funcional – Este perfil muestra la dependencia entre columnas. En este caso casi todos cumplen al 100%, salvo algunos casos que se detallan en un segundo panel. Permítanme dejar el análisis de cómo funciona esto para el segundo perfil que vamos a obtener, porque resulta mucho más ilustrativo.

perfildependenciafuncional

Perfil de distribución de longitud de columnas – Para cada columna analizada se describen las variantes encontradas para la longitud de la columna. Este es un perfil muy importante según sea el caso. Podríamos resumir, que si la columna AccountNumber por definición ha de tener 11 caracteres que es la mayoría, todas las demás estarían mal. Aunque puede ser que resulten válidos todos los valores entre 9 y 12.  Hay que conocer el negocio concreto para poder sacar conclusiones.

Es muy importante que además de las cifras globales de distribución de datos, muestra también el desglose de los mismos, llegando al detalle de en qué registro se almacena el dato con una u otra característica.

perfildistrcolumnas

Perfil de distribución de valores – En este caso lo que tenemos es el desglose de los valores que se han encontrado en cada una de las columnas analizadas y la cantidad de repeticiones de los mismos. Nuevamente podemos llegar al nivel de registro con el detalle de todas las columnas en cada registro. Este perfil nos permite realizar acciones de limpieza porque identifica valores anómalos y la cantidad de los mismos. Nos posibilita también conocer los valores significativos más importantes en los datos.

perfildistrvalores

Perfiles de estadísticas de columnas – Devuelve el resultado obtenido al aplicar cuatro funciones estadísticas: Mínimo, Máximo, Promedio y Desviación estándar sobre las columnas de tipo numérico. Este perfil no ofrece más detalles.

perfilestadisticas

Perfiles de patrón de columnas – Este perfil es muy interesante porque nos muestra los patrones en que se presentan nuestros datos, de esta forma nos puede ayudar a detectar anomalías, datos con puntos, guiones, espacios u otros caracteres intercalados, caracteres erróneos al inicio de las cadenas, etc. Este perfil ofrece detalle línea a línea.

perfilpatron

Perfiles de proporción de columnas NULL – Este es el último y no por ello menos importante. Se trata de identificar la cantidad de registros donde aparece el dato NULL. El conocimiento de esta información es muy útil para evitar quebraderos de cabeza con el tratamiento de NULL, sobre todo cuando no se esperan. Este perfil también ofrece detalle línea a línea.

perfilproporción

Una vez analizados los datos, podemos concluir que esta tabla está bastante “limpia” con sus claves bien definidas y valores aceptables, o al menos es lo que se puede deducir de lo que nos ofrece el perfil en cuanto a su estructura. La validez del contenido concreto de los datos se escapa a las posibilidades de esta excelente herramienta.

En la próxima entrega veremos otro caso de tabla no tan limpia, con algunas anomalías que pueden ser de mucha utilidad cuando estemos planteándonos procesos de ETL con SSIS.

Hasta entonces,

Saludos,

Ana