Data profiles de SQL Server IS almacenados en tablas

La tarea de Data Profile de SQL Server Information Services almacena los resultados del perfilado en un documento XML que se puede examinar con el Data Profile Viewer. En el artículo Dataprofiling con SQL Server 2008 explico cómo se utiliza esta nueva Task de SSIS.

Aunque este método sea muy sencillo, a veces puede no resultar suficiente. Si se aborda un proyecto de calidad de datos puede interesar, por ejemplo, almacenar un histórico de los perfilados para poder evaluar cómo ha ido mejorando la calidad de los datos tratados.

La mejor manera de trabajar con datos históricos es utilizando una base de datos y almacenando estos datos en tablas, sobre las que se podrán hacer las consultas, informes y comparativas que haga falta. Para conseguirlo lo único que haría falta es pasar a tablas los metadatos que la tarea de perfilado ha almacenado en el fichero XML.

Pues alguien ya se ha dedicado a buscar una manera sencilla de hacerlo. Thomas Frisendal, desde su web Information quality solutions explica cómo ha creado un archivo XSLT para cada tipo de perfilado que sirve para extraer del XML que genera la Data Profile Task de SSIS uno o más ficheros XML en un formato que puede ser directamente importado a tablas.
 

Package SSIS para pasar Data Profiles a Tablas

Así, con sólo crear un proceso que aplique un XSLT por cada tipo de perfilado, y después cargue cada fichero XML resultante en una tabla ya se pueden almacenar los datos de perfilado en tablas. Como además en todos los ficheros se incluye un campo que informa del nombre de la tabla origen, con una sola tabla para cada tipo de perfilado ya se pueden almacenar los profiles de todas las tablas que se traten.

Data Flow Task de SSIS ProfileToSQL

Yo he añadido además a la tabla un campo de fecha que almacena la fecha en que se realiza el proceso, y de momento el resultado ha sido bueno.
 

En el gráfico podemos ver la distribución de tipos de vía diferentes para el callejero español según datos del INE y darnos cuenta, por ejemplo, de que los identificadores no están demasiado bien tipificados, ya que podemos encontrar cosas como más de un identificador para el mismo tipo de vía (CALLE, C, C/), o bastantes vías con un punto como identificador.

Tabla de SSIS Data Profile de valores diferentes para tipo de via

 

En Free tool for automation of SQL Server el autor comenta cómo funciona esta solución y cómo obtener las hojas de estilo, y en Usage recommandations for the ProfileToSQL stylesheets explica más en detalle cómo utilizar los XSLT, e incluye un disclaimer dejando claro que este software es una versión de test.

 

Coméntalo en el foro