Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
si applica a:✅ Magazzino di dati in Microsoft Fabric
Dopo aver creato una tabella e caricato i dati, valida i dati per completezza e correttezza prima di usarli per report o processi a valle.
Questo articolo fornisce esempi semplici e realistici di query di convalida e pulizia che puoi eseguire sulla tabella dbo.fact_sale creata in Creare tabelle nel data warehouse.
Prerequisiti
Per iniziare, completare i prerequisiti seguenti:
- Avere accesso a un elemento di magazzino all'interno di un'area di lavoro di capacità Premium con permessi di collaboratore o superiore.
- Assicurarsi di connettersi al sistema del magazzino. Non puoi eseguire query direttamente nell'endpoint SQL analytics di un warehouse.
- Scegli lo strumento di query. Questa esercitazione include l'editor di query SQL nel portale di Microsoft Fabric, ma è possibile usare qualsiasi strumento T-SQL.
- Disporre di una tabella
dbo.fact_salepopolata con dati, come mostrato in Creare tabelle nel data warehouse.
Le query di validazione possono variare da predicati molto semplici (ad esempio, il controllo dei NULL valori) a controlli più sofisticati che utilizzano funzioni di IA integrate per valutare il significato o la qualità dei dati. Scegli il livello di validazione che corrisponde al rischio e all'importanza dei dati che stai controllando.
Considera le righe restituite da queste query come candidate per la revisione, non come errori automatici. Conferma la business rule con il proprietario dei dati o del sistema sorgente prima di correggere o eliminare righe, e preferisci correggere la sorgente o la trasformazione piuttosto che aggiornare le righe di fatto già esistenti.
Trova righe con valori mancanti in una colonna
Usa una clausola semplice WHERE per trovare righe che mancano valori nelle colonne obbligatorie. Questo controllo è uno dei più veloci e comuni da eseguire dopo aver caricato i dati in una tabella.
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;
Valida i calcoli
Confrontare i totali memorizzati con i loro valori attesi per individuare problemi di qualità dei dati introdotti durante l'ingestione o la trasformazione. Ad esempio, TotalIncludingTax dovrebbe sempre essere uguale TotalExcludingTax a più TaxAmount. Poiché i confronti SQL che coinvolgono NULL non restituiscono mai TRUE, controlla esplicitamente anche gli importi mancanti, per evitare che tali righe vengano escluse silenziosamente.
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);
Trova righe duplicate
Controlla la combinazione di colonne aziendali che dovrebbero essere uniche insieme. Se il tuo modello di fattura consente al massimo una riga per ogni articolo di stock su una fattura, la combinazione di WWIInvoiceID e StockItemKey dovrebbe essere unica.
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;
Puoi anche controllare la presenza di duplicati usando una combinazione diversa di colonne aziendali, come euristica piuttosto che come regola rigorosa. È raro che lo stesso venditore venda lo stesso articolo di magazzino allo stesso cliente più di una volta nello stesso giorno, quindi la presenza di più righe per la combinazione di CustomerKey, StockItemKey, InvoiceDateKey e SalespersonKey merita di essere esaminata come possibile duplicato. Verifica nel sistema di origine prima di considerare confermata una corrispondenza, poiché nello stesso giorno è possibile un ordine duplicato legittimo.
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;
Convalida contenuto
Controlla che i valori rientrino in un set o intervallo atteso. Ad esempio, Quantity e UnitPrice dovrebbero sempre essere numeri positivi.
SELECT SaleKey, Quantity, UnitPrice
FROM dbo.fact_sale
WHERE Quantity <= 0
OR UnitPrice <= 0;
Valida i dati con funzioni di IA
Per controlli difficili da esprimere come semplici predicati, usa funzioni di IA per ragionare sul contenuto di una colonna in linguaggio naturale. In dbo.fact_sale, Description spesso indica se un prodotto è fresco, congelato o refrigerato, quindi puoi usare AI_GENERATE_RESPONSE per verificare se è coerente con i conteggi di TotalDryItems e TotalChillerItems di quella riga. Definisci le istruzioni una volta come @prompt variabile e passa i valori specifici per riga come argomento dati separato.
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;
Esaminare eventuali incongruenze con il proprietario del sistema sorgente prima di correggere i dati sorgente.