Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:✅ Warehouse in Microsoft Fabric
Nachdem du eine Tabelle erstellt und Daten geladen hast, validiere die Daten auf Vollständigkeit und Korrektheit, bevor du sie für Berichte oder nachgelagerte Verarbeitung verwendest.
Dieser Artikel bietet einfache, realistische Beispiele für Validierungs- und Bereinigungsanfragen, die Sie mit der dbo.fact_sale in Erstellen von Tabellen im Warehouse erstellten Tabelle ausführen können.
Voraussetzungen
Bevor Sie beginnen, erfüllen Sie die folgenden Voraussetzungen:
- Als Mitwirkender oder mit höheren Berechtigungen haben Sie Zugriff auf ein Warehouse-Element in einem Premium-Kapazitätsarbeitsbereich.
- Stellen Sie sicher, dass Sie eine Verbindung mit Ihrem Lagerartikel herstellen. Man kann Abfragen nicht direkt im SQL-Analytics-Endpunkt eines Lagers ausführen.
- Wählen Sie Ihr Abfragetool aus. Dieses Lernprogramm enthält den SQL-Abfrage-Editor im Microsoft Fabric-Portal, Sie können jedoch jedes T-SQL-Abfragetool verwenden.
- Lassen Sie eine
dbo.fact_saleTabelle mit Daten füllen, wie in Erstellen von Tabellen im Lagerhaus gezeigt.
Validierungsabfragen können von sehr einfachen Prädikaten (zum Beispiel Werteprüfung NULL ) bis hin zu ausgefeilteren Prüfungen reichen, die integrierte KI-Funktionen nutzen, um die Bedeutung oder Qualität der Daten zu bewerten. Wählen Sie das Validierungsniveau, das dem Risiko und der Bedeutung der von Ihnen überprüften Daten entspricht.
Behandeln Sie die von diesen Anfragen zurückgegebenen Zeilen als Kandidaten zur Überprüfung und nicht als automatische Fehler. Bestätigen Sie die Geschäftsregel mit dem Daten- oder Quellcodesystem-Besitzer, bevor Sie Zeilen korrigieren oder löschen, und bevorzugen Sie es, die Quellcode oder Transformation zu korrigieren, anstatt die vorhandenen Faktenzeilen zu aktualisieren.
Finden Sie Zeilen mit fehlenden Werten in einer Spalte
Verwenden Sie eine einfache WHERE Klausel, um Zeilen zu finden, deren Werte in den erforderlichen Spalten fehlen. Diese Prüfung ist eine der schnellsten und gebräuchlichsten Prüfungen, die nach dem Laden von Daten in eine Tabelle ausgeführt werden.
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;
Berechnungen validieren
Vergleichen Sie gespeicherte Summen mit ihren erwarteten Werten, um Datenqualitätsprobleme während der Aufnahme oder Transformation zu erkennen. Zum Beispiel sollte TotalExcludingTax immer gleich TaxAmount plus TotalIncludingTax sein. Da SQL-Vergleiche, an denen NULL beteiligt ist, niemals zu true ausgewertet werden, solltest du daher fehlende Beträge ebenfalls explizit prüfen, damit diese Zeilen nicht unbemerkt ausgeschlossen werden.
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);
Finden Sie doppelte Zeilen
Überprüfen Sie die Kombination der Geschäftsspalten, die zusammen einzigartig sein sollten. Wenn Ihr Rechnungsmodell höchstens eine Zeile pro Lagerartikel auf einer Rechnung erlaubt, sollte die Kombination von WWIInvoiceID und StockItemKey eindeutig sein.
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;
Du kannst auch nach Duplikaten suchen, indem du eine andere Kombination von Geschäftsspalten verwendest, als Heuristik und nicht als strikte Regel. Es ist ungewöhnlich, dass derselbe Verkäufer denselben Lagerartikel mehr als einmal am selben Tag an denselben Kunden verkauft, daher lohnt es sich, mehr als eine Zeile für die Kombination von CustomerKey, StockItemKey, InvoiceDateKey, SalespersonKey als mögliches Duplikat überprüft zu werden. Prüfen Sie die Übereinstimmung im Quellsystem, bevor Sie sie als bestätigt betrachten, da eine legitime wiederholte Bestellung am selben Tag möglich ist.
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;
Überprüfen von Inhalt
Überprüfen Sie, ob die Werte innerhalb einer erwarteten Menge oder Spanne liegen. Zum Beispiel sollten Quantity und UnitPrice immer positive Zahlen sein.
SELECT SaleKey, Quantity, UnitPrice
FROM dbo.fact_sale
WHERE Quantity <= 0
OR UnitPrice <= 0;
Daten mit KI-Funktionen validieren
Für Prüfungen, die sich nur schwer als einfache Prädikate ausdrücken lassen, verwenden Sie KI-Funktionen, um den Inhalt einer Spalte in natürlicher Sprache zu analysieren. In dbo.fact_sale wird in Description häufig angegeben, ob ein Produkt frisch, gefroren oder gekühlt ist, sodass du mit AI_GENERATE_RESPONSE prüfen kannst, ob dies mit den TotalDryItems- und TotalChillerItems-Anzahlen dieser Zeile übereinstimmt. Definiere die Anweisungen einmal als Variable @prompt und übergebe die zeilenspezifischen Werte als separates Datenargument.
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;
Überprüfen Sie mögliche Inkonsistenzen mit dem Quellcode-Systembesitzer, bevor Sie die Quelldaten korrigieren.