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.
In Medallion-Architekturen müssen Sie die Datenqualität in jeder Phase sicherstellen. Schlechte Datenqualität kann zu falschen Erkenntnissen und betrieblichen Ineffizienzen führen.
In diesem Artikel wird erläutert, wie Datenqualitätsprüfungen in materialisierten Seeansichten (MLVs) in Microsoft Fabric implementiert werden.
Implementieren der Datenqualität
In materialisierten Seeansichten (MLVs) in Microsoft Fabric behalten Sie die Datenqualität bei, indem Sie Einschränkungen für Ihre Ansichten definieren. Ohne explizite Überprüfungen können kleinere Datenprobleme die Verarbeitungszeit erhöhen oder die Pipeline fehlschlagen.
Wenn eine Zeile gegen eine Einschränkung verstößt, können Sie eine der folgenden Aktionen verwenden:
FAIL: Stoppt die MLV-Aktualisierung bei der ersten Einschränkungsverletzung. Dies ist das Standardverhalten, auch wenn Sie nicht angeben
FAIL.Vorsicht
Das Erstellen oder Aktualisieren eines MLV mit einer
FAILAktion kann zu einem Fehler "Delta-Tabelle nicht gefunden" führen. Falls dies geschieht, erstellen Sie den MLV neu und vermeiden Sie dieseFAILAktion.DROP: Führt die Verarbeitung fort und entfernt Datensätze, die gegen die Einschränkung verstoßen. In der Linienansicht wird die Anzahl der verworfenen Datensätze angezeigt.
Hinweis
Wenn Sie sowohl DROP- als auch FAIL-Aktionen in einem MLV definieren, hat die FAIL-Aktion Vorrang.
Definieren von Datenqualitätsprüfungen in einer materialisierten Seeansicht
Im folgenden Beispiel wird die Einschränkung cust_blankdefiniert, die überprüft, ob das customerName Feld nicht NULL ist. Die Einschränkung schließt Zeilen aus, bei denen customerName null ist.
CREATE MATERIALIZED LAKE VIEW IF NOT EXISTS silver.customers_enriched
(CONSTRAINT cust_blank CHECK (customerName is not null) on MISMATCH DROP)
AS
SELECT
c.customerID,
c.customerName,
c.contact,
CASE
WHEN COUNT(o.orderID) OVER (PARTITION BY c.customerID) > 0 THEN TRUE
ELSE FALSE
END AS has_orders
FROM bronze.customers c LEFT JOIN bronze.orders o
ON c.customerID = o.customerID;
Aktuelle Einschränkungen
Einschränkungen der Datenqualität in materialisierten Seeansichten haben die folgenden Einschränkungen:
- Sie können Datenqualitätseinschränkungen nach dem Erstellen eines MLV nicht aktualisieren. Um Einschränkungen zu ändern, erstellen Sie den MLV neu.
- Sie können keine Funktionen oder Musterabgleichsoperatoren wie
LIKEz. B. regex in Einschränkungsbedingungen verwenden.