Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Esto se aplica a:✅ Almacén en Microsoft Fabric
Después de crear una tabla y cargar datos en ella, valida la completitud y corrección de los datos antes de usarla para informes o procesamiento posterior.
Este artículo ofrece ejemplos sencillos y realistas de consultas de validación y limpieza que puedes ejecutar en la tabla dbo.fact_sale creada en Crear tablas en el almacén.
Requisitos previos
Para empezar, complete los siguientes requisitos previos:
- Tener acceso a un elemento de almacén dentro de un espacio de trabajo con capacidad Premium, con permisos de colaborador o superiores.
- Asegúrese de conectarse al elemento de almacenamiento. No puedes ejecutar consultas directamente en el endpoint de analítica SQL de un almacén.
- Elija la herramienta de consulta. En este tutorial se incluye el editor de consultas SQL en el portal de Microsoft Fabric, pero puede usar cualquier herramienta de consulta de T-SQL.
- Tenga una
dbo.fact_saletabla rellenada con datos, como se muestra en Crear tablas en el almacén.
Las consultas de validación pueden ir desde predicados muy simples (por ejemplo, comprobar valores NULL ) hasta comprobaciones más sofisticadas que utilizan funciones de IA integradas para evaluar el significado o la calidad de los datos. Elige el nivel de validación que coincida con el riesgo y la importancia de los datos que estás comprobando.
Trata las filas devueltas por estas consultas como candidatos para revisión, no como errores automáticos. Confirma la regla de negocio con el propietario de datos o del sistema fuente antes de corregir o eliminar filas, y prefiere corregir la fuente o la transformación en lugar de actualizar las filas de hechos existentes.
Encuentra filas con valores faltantes en una columna
Utiliza una cláusula sencilla WHERE para encontrar filas que falten valores en las columnas requeridas. Esta comprobación es una de las más rápidas y comunes que se ejecutan tras cargar datos en una tabla.
SELECT SaleKey, CustomerKey, StockItemKey, Quantity, UnitPrice
FROM dbo.fact_sale
WHERE CustomerKey IS NULL
OR StockItemKey IS NULL
OR Quantity IS NULL
OR UnitPrice IS NULL;
Validar cálculos
Compara los totales almacenados con sus valores esperados para detectar problemas de calidad de datos introducidos durante la ingestión o transformación. Por ejemplo, TotalIncludingTax siempre debe ser igual TotalExcludingTax a más TaxAmount. Dado que las comparaciones SQL que implican NULL nunca se evalúan como verdaderas, comprueba también explícitamente si faltan importes para que esas filas no queden excluidas silenciosamente.
SELECT SaleKey, TotalExcludingTax, TaxAmount, TotalIncludingTax,
(TotalExcludingTax + TaxAmount) AS ExpectedTotalIncludingTax
FROM dbo.fact_sale
WHERE TotalExcludingTax IS NULL
OR TaxAmount IS NULL
OR TotalIncludingTax IS NULL
OR TotalIncludingTax <> (TotalExcludingTax + TaxAmount);
Encontrar filas duplicadas
Revisa la combinación de columnas de negocio que deberían ser únicas entre sí. Si tu modelo de factura permite como máximo una fila por artículo de stock en una factura, la combinación de WWIInvoiceID y StockItemKey debería ser única.
SELECT WWIInvoiceID, StockItemKey, COUNT(*) AS NumberOfRows
FROM dbo.fact_sale
WHERE WWIInvoiceID IS NOT NULL
AND StockItemKey IS NOT NULL
GROUP BY WWIInvoiceID, StockItemKey
HAVING COUNT(*) > 1;
También puedes comprobar si hay duplicados usando una combinación diferente de columnas de negocio, como heurística y no como regla estricta. Es raro que el mismo vendedor venda el mismo artículo de stock al mismo cliente más de una vez el mismo día, así que más de una fila para la combinación de CustomerKey, StockItemKey, InvoiceDateKey, y SalespersonKey merece la pena revisarlo como posible duplicado. Confirma con el sistema de origen antes de dar por confirmada una coincidencia, ya que es posible un pedido duplicado legítimo el mismo día.
SELECT CustomerKey, StockItemKey, InvoiceDateKey, SalespersonKey, COUNT(*) AS NumberOfRows
FROM dbo.fact_sale
WHERE CustomerKey IS NOT NULL
AND StockItemKey IS NOT NULL
AND InvoiceDateKey IS NOT NULL
AND SalespersonKey IS NOT NULL
GROUP BY CustomerKey, StockItemKey, InvoiceDateKey, SalespersonKey
HAVING COUNT(*) > 1;
Validar contenido
Comprueba que los valores estén dentro de un conjunto o rango esperado. Por ejemplo, Quantity y UnitPrice siempre deberían ser números positivos.
SELECT SaleKey, Quantity, UnitPrice
FROM dbo.fact_sale
WHERE Quantity <= 0
OR UnitPrice <= 0;
Validar datos con funciones de IA
Para comprobaciones que son difíciles de expresar como predicados simples, utiliza funciones de IA para razonar sobre el contenido de una columna en lenguaje natural. En dbo.fact_sale, en Description suele indicarse si un producto es fresco, congelado o refrigerado, así que puedes usar AI_GENERATE_RESPONSE para comprobar si coincide con los recuentos de TotalDryItems y TotalChillerItems de esa fila. Define las instrucciones una vez como una @prompt variable y pasa los valores específicos de la fila como un argumento de datos separado.
DECLARE @prompt nvarchar(max) = N'A product description that mentions frozen or chilled items should usually have a nonzero chiller item count, and a description that mentions only dry or ambient items should usually have a nonzero dry item count. Based on the description, dry item count, and chiller item count below, respond with OK if the values look consistent, or a short phrase describing what might be worth reviewing.';
DECLARE @InvoiceDate date = '2013-01-01';
SELECT SaleKey, Description, TotalDryItems, TotalChillerItems,
AI_GENERATE_RESPONSE(
@prompt,
CONCAT(
'Description: ', Description,
'. Dry item count: ', TotalDryItems,
'. Chiller item count: ', TotalChillerItems
)
) AS ReviewNote
FROM dbo.fact_sale
WHERE InvoiceDateKey = @InvoiceDate;
Revisa posibles inconsistencias con el propietario del sistema fuente antes de corregir los datos fuente.