Freigeben über


Datenqualität in materialisierten Seeansichten

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 FAIL Aktion kann zu einem Fehler "Delta-Tabelle nicht gefunden" führen. Falls dies geschieht, erstellen Sie den MLV neu und vermeiden Sie diese FAIL Aktion.

  • 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 LIKE z. B. regex in Einschränkungsbedingungen verwenden.