Partager via


Qualité des données dans les vues matérialisées du lac

Dans l’ère du Big Data, l’architecture de médaillon a acquis une importance importante en tant que framework robuste pour la gestion et le traitement des données à travers différentes phases d’affinement, des données brutes aux jeux de données hautement organisés. Cette approche structurée améliore non seulement la facilité de gestion des données, mais garantit également que la qualité des données est maintenue tout au long du cycle de vie des données.

S’assurer que la qualité des données est essentielle à chaque étape de l’architecture de médaillon, ce qui est essentiel pour prendre des décisions commerciales éclairées. Une mauvaise qualité des données peut entraîner des insights incorrects et des inefficacités opérationnelles.

Cet article explique comment implémenter la qualité des données dans les vues de lac matérialisées (MLV) dans Microsoft Fabric.

Implémenter la qualité des données

Lorsque vous transformez des données, il devient important de composer des requêtes précises pour exclure les données de mauvaise qualité des tables sources, ce qui augmente le temps de traitement et provoque parfois l’échec de l’ensemble du pipeline en raison de problèmes de données mineurs.

La qualité des données est maintenue en définissant des contraintes lors de la définition des MLV. Les vues matérialisées dans Fabric fournissent une approche permettant d’implémenter efficacement des vérifications de la qualité des données.

Les actions suivantes peuvent être implémentées lorsque des contraintes sont spécifiées.

FAIL : cette action arrête la mise à jour d’une bibliothèque MLV si une contrainte est violée, s’arrêtant dès la première occurrence. Il s’agit du comportement par défaut, même sans spécifier le mot clé FAIL.

DROP – cette action traite le MLV et supprime les enregistrements qui ne répondent pas à la contrainte spécifiée. Il fournit également le nombre d'enregistrements supprimés dans la vue de lignage.

Remarque

Si les actions DROP et FAIL sont définies dans un MLV, l'action FAIL a la priorité.

Définition des contrôles de qualité des données dans une vue matérialisée du lac

L’exemple suivant définit la contrainte cust_blank, qui vérifie si le customerName champ n’est pas null. Les lignes avec une valeur Null customerName sont exclues du traitement.

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; 

Limitations actuelles

  • La mise à jour des contraintes de qualité des données après la création d’une MLV n’est pas prise en charge. Pour mettre à jour les contraintes de qualité des données, vous devez recréer la MLV.
  • L’utilisation de fonctions et de recherche de modèles avec des opérateurs tels que LIKE ou regex dans la condition de contrainte est restreinte.

Problèmes connus

  • La création et l’actualisation d’une MLV avec une action FAIL dans une contrainte peuvent entraîner un problème de « table delta introuvable ». Dans ce cas, il est recommandé de recréer la MLV et d’éviter d’utiliser l’action FAIL.