Lección 5 de 6 · 2 min
Calidad de datos: los 6 checks esenciales
Al terminar sabrás
10 min- Aplicar las 6 dimensiones de calidad como checks concretos
- Priorizar los checks por riesgo (no todo se prueba igual)
- Convertir cada dimensión en una consulta reutilizable
Construyes: Tu suite de checks de calidad de datos, lista para adaptar a cualquier tabla.
Más allá del cuadre
Los cuadres verifican cantidades y montos. La calidad de datos verifica que cada valor sea sano: sin nulos donde no debe, sin duplicados, dentro de rango, con las relaciones intactas. Son seis dimensiones, cada una una consulta.
Los 6 checks
1. Completitud — campos obligatorios sin nulos:
SELECT COUNT(*) FROM clientes WHERE email IS NULL OR rut IS NULL;
2. Unicidad — sin duplicados en campos que identifican:
SELECT rut, COUNT(*) FROM clientes GROUP BY rut HAVING COUNT(*) > 1;
3. Integridad referencial — las relaciones existen:
SELECT c.* FROM clientes c
LEFT JOIN sucursales s ON c.sucursal_id = s.id
WHERE s.id IS NULL; -- clientes con una sucursal que no existe
4. Validez de rango/dominio — valores dentro de lo permitido:
SELECT * FROM clientes WHERE edad < 0 OR edad > 120;
SELECT * FROM ventas WHERE total < 0;
5. Consistencia — el mismo dato coincide entre sistemas o columnas:
-- El total de la venta debe ser igual a la suma de sus líneas
SELECT v.id FROM ventas v
JOIN (SELECT venta_id, SUM(subtotal) s FROM lineas GROUP BY venta_id) l
ON v.id = l.venta_id
WHERE v.total <> l.s;
6. Validez de formato — el dato tiene la forma correcta (email con @, rut con dígito verificador, fecha real):
SELECT * FROM clientes WHERE email NOT LIKE '%@%.%';
Prioriza por riesgo
Tu suite reutilizable
Estos seis checks, adaptados a las columnas de cada proyecto, forman una suite de calidad de datos que corres en cada carga. Cada uno devuelve vacío si está sano, o las filas problemáticas si no. En la última lección la automatizas para que corra sola y avise cuando algo se rompe.
Comprueba lo aprendido en el quiz y arma tu suite en el reto.
Compruébalo
0/3Responde sin mirar atrás. Verás la explicación al instante.
1. Un campo 'rut' de clientes debe ser único, pero encuentras el mismo rut en 3 filas. ¿Qué dimensión de calidad falló?
2. El campo 'edad' tiene valores como 200 y -5. ¿Qué check lo detecta?
3. ¿Por qué NO se aplican todos los checks con la misma intensidad a todas las columnas?
Reto: suite de checks de una tabla
Para una tabla de clientes con columnas (id, rut, email, edad, sucursal_id), escribe un check para cada dimensión: unicidad (rut), completitud (email no nulo), validez (edad 0–120) e integridad (sucursal_id existe en sucursales).