Introducción

La validación de datos consiste en el uso de técnicas para asegurarnos de que los datos que nos proporcionen sean lo más fieles a la realidad, así como que sean claros y útiles para el análisis de información y su procesado.

¿Cuándo deberíamos validar el dato?

Hay muchas situaciones en las que tenemos validar el dato, por ejemplo:

·         Tenemos una nueva fuente de datos.

·         El cliente nos comunica una incidencia en los datos.

·         Cuando haya cambios en las tablas o en sus relaciones.

·         Cuando desplegamos en un entorno nuevo (Desarrollo, Preproducción…)

 

Básicamente, cualquier cambio que pueda afectar a la estructura de una tabla o su contenido, se debe realizar la validación. Estas son algunas de las validaciones más comunes:

 

Datos de origen

El primer paso importante, es asegurarse que los datos que se nos proporciona son correctos.

No tiene sentido encontrarse un email en una columna con números de teléfono, o tener campos en un fichero donde se supone que tendremos una clave primaria.

Para realizar correctamente esta primera validación, se acuerda con el cliente cuál es la fuente de datos, así como el tipo de dato y longitud que tengan las columnas dentro.

En este ejemplo, podemos ver una tabla de direcciones en la que se introdujeron 3 números de teléfono en el campo de dirección:

Es muy importante que la calidad del dato sea buena para que podamos procesarla y analizarla correctamente. Si nos llegan ficheros y estos los rellenan a mano, es muy posible que haya valores donde no debería, y se tengan que descartar.

 

Tipo de datos

Para realizar esta validación, comprobaremos los tipos de datos que tenemos de origen, y comprobaremos los que tenemos en la herramienta. Si tenemos una columna con valores enteros y nos llegan valores con caracteres o valores con decimales, tiene que poder ser igual en el destino, o tener sentido una vez tratado el dato.

Algunos valores tenemos que contrastarlos, es posible que en España se usen 5 números para el código postal, pero en otros países se usan también otros caracteres y su longitud es mayor. Si vamos a tener códigos postales de fuera de España, tenemos que asegurarnos que nuestro proceso permita caracteres.

 

Conteos

Siempre hay que comprobar la cantidad de datos original. En nuestro sistema no puede haber duplicados. Si tenemos 2 fuentes de datos con clientes distintos, una con 9 y otra con 11, tenemos que asegurarnos que la cantidad de clientes al final de nuestro proceso en el que incluimos a todos los clientes sea 20.

 

En caso de que en ambas fuentes de datos haya clientes iguales, tendremos que tenerlo en cuenta para saber la cantidad de clientes que tendremos en el destino.

 

Duplicados

Tener datos duplicados tiene 2 consecuencias principales:

  • El análisis que se realizará sobre esos datos será erróneo porque no se ajustan a la realidad.
  • Consumirán más recursos, nuestra Base de Datos requerirá más almacenamiento en disco, se tardará más tiempo en lanzar consultas, en procesar los datos y mayor uso de memoria.

Para esto, podemos hacer consultas para ver cuantas filas nos devuelven ciertos códigos o valores al filtrarlos. Lo más común es esta consulta:

SELECT     Campo, COUNT(*) AS NumeroFilasDuplicadas 

FROM         Tabla 

GROUP BY Campo

HAVING      (COUNT(*) > 1)

Esta consulta comprueba que un campo sea único mostrando cuales son los que están repetidos y cuantas veces.

En caso de que nos salga algún valor duplicado, podemos coger un ejemplo de clave primaria con datos duplicados, hacer una consulta ‘Select * from Tabla where Clave_Primaria = Clave_Con_Duplicados’. De este modo podemos ver si es posible que se deba a un ejemplo de clave primaria mal definida o si es un duplicado completo.

 

Clave primaria y rango

Debemos comprobar siempre que la clave primaria sea única, (en caso de que esté bien definida, así será) y saber qué valores puede contener según las especificaciones del proyecto.

En este caso vemos que la clave primaria es un smallint, pues se compone de números y la tabla contiene pocas filas que sabemos que no va a crecer o crecerá poco.

 

Si nos llega una cadena de 50 caracteres para un campo de máximo 20 caracteres de longitud, puede que el dato se trunque y pase según como esté montado el proceso ETL. Para estos casos, una forma de validarlo consistiría en ver la longitud máxima de origen y comprobar que sea menor o igual que tu columna destino.

En la segunda parte mostraremos ejemplos más prácticos sobre cómo detectar posibles errores y su validación.

Últimas entradas de José Benjamín González Doval (ver todo)