Données de profil

Terminée

Conseil / Astuce

Pour plus d’informations, consultez l’onglet Texte et images !

Avant de nettoyer ou de transformer des données, vous devez comprendre ce qui se trouve dans vos tables. Les données de profilage signifient l’examen de vos jeux de données pour générer des statistiques récapitulatives ( nombres, moyennes, distributions de valeurs et pourcentages null) qui révèlent la qualité et la structure de vos données. Cette base vous aide à identifier les problèmes tels que les valeurs manquantes, les valeurs hors norme et les modèles inattendus avant qu’ils ne provoquent des problèmes en aval.

Dans cette unité, vous allez apprendre à générer des statistiques récapitulatives à l’aide de commandes SQL et de la fonctionnalité de profilage des données dans Azure Databricks.

Générer des statistiques récapitulatives à l’aide de SQL

Azure Databricks fournit des commandes SQL qui collectent et affichent des statistiques sur vos tables. Ces statistiques aident l’optimiseur de requête à choisir des plans d’exécution efficaces et vous donnent un aperçu des caractéristiques de vos données.

Le diagramme explique la génération de statistiques récapitulatives à l’aide de SQL.

Collecter des statistiques avec ANALYZE TABLE

La ANALYZE TABLE commande calcule les statistiques pour une table ou des colonnes spécifiques. Ces statistiques incluent les nombres de lignes, les métriques au niveau des colonnes, comme les valeurs minimales et maximales, les nombres null et les nombres de valeurs distinctes.

-- Collect basic table statistics (row count and size)
ANALYZE TABLE sales.transactions COMPUTE STATISTICS;

-- Collect statistics for specific columns
ANALYZE TABLE sales.transactions COMPUTE STATISTICS FOR COLUMNS 
    transaction_id, amount, customer_id;

-- Collect statistics for all columns
ANALYZE TABLE sales.transactions COMPUTE STATISTICS FOR ALL COLUMNS;

Lorsque vous analysez une colonne spécifique, vous obtenez des métriques détaillées :

-- View column-level statistics
DESC EXTENDED sales.transactions amount;

Cela retourne des métriques, notamment la valeur minimale, la valeur maximale, le nombre de valeurs Null, le nombre distinct, la longueur moyenne des colonnes et la longueur maximale de colonne.

Afficher les statistiques avec DESCRIBE TABLE

La DESCRIBE TABLE EXTENDED commande affiche les statistiques collectées en même temps que les métadonnées de table :

DESCRIBE TABLE EXTENDED sales.transactions;

Vous pouvez également utiliser PySpark pour récupérer les métadonnées de table et générer des statistiques récapitulatives :

# Generate summary statistics for numeric columns using the DataFrame API
df = spark.table("sales.transactions")
df.describe().show()

La méthode describe() retourne le nombre, la moyenne, l’écart type, le min et le maximum pour les colonnes numériques et de chaînes.

La DESCRIBE TABLE EXTENDED sortie inclut une Statistics ligne qui affiche la taille de la table en octets et, après l’exécution ANALYZE TABLE ... COMPUTE STATISTICS, le nombre de lignes. Pour les tables gérées par le catalogue Unity, l’optimisation prédictive s’exécute ANALYZE automatiquement pour maintenir les statistiques actuelles.

Conseil / Astuce

Exécutez ANALYZE TABLE une fois les données en bloc chargées ou des modifications importantes pour vous assurer que l’optimiseur de requête dispose de statistiques précises pour planifier des requêtes efficaces.

Utiliser le profilage des données dans le catalogue Unity

Au-delà des commandes SQL, Azure Databricks fournit une surveillance de la qualité des données dans Unity Catalog, un parapluie qui couvre deux fonctionnalités distinctes :

  • La détection d’anomalies (préversion publique) surveille automatiquement toutes les tables d’un schéma. Il analyse les modèles historiques pour évaluer l’actualisation de chaque table (la dernière mise à jour) et l’exhaustivité (si le nombre attendu de lignes est arrivé). Vous l’activez une fois au niveau du schéma dans l’Explorateur de catalogues, et Azure Databricks détermine la fréquence à laquelle analyser chaque table. Utilisez la détection d’anomalies pour une couverture automatisée étendue sur toutes vos tables sans configuration par table.
  • Le profilage des données fournit une analyse statistique approfondie par table : suivi des distributions, pourcentages null, métriques de dérive et performances de modèle au fil du temps. Vous la configurez individuellement pour chaque table. Utilisez le profilage des données pour vos tables les plus critiques où vous avez besoin de tendances historiques détaillées.

Pour le travail d’ingénierie des données axé sur le nettoyage et la qualité, utilisez les deux : détection d’anomalies en tant que système d’avertissement précoce sur toutes les tables et profilage des données pour une surveillance approfondie des tables clés.

Le diagramme explique comment utiliser le profilage des données dans le catalogue Unity.

Comprendre les types de profils

Le profilage des données prend en charge trois types d’analyse, chacun adapté à différents scénarios :

Type de profil Cas d’utilisation Caractéristiques clés
Snapshot Tables à usage général Calcule les métriques sur l’ensemble de la table avec chaque actualisation
Série chronologique Tables avec des colonnes timestamp Effectue le suivi des métriques dans les fenêtres de temps pour détecter les tendances
Inférence Tables d’inférence du modèle ML Surveille les entrées, les prédictions et la précision du modèle au fil du temps

Pour les tâches d’ingénierie des données axées sur la qualité des données, les profils d’instantané et de série chronologique sont les plus pertinents.

Créer un profil à l’aide de l’interface utilisateur

Pour créer un profil dans l’Explorateur de catalogues :

  1. Accédez à votre table dans Catalog Explorer.
  2. Sélectionnez l’onglet Qualité .
  3. Si la détection d’anomalie n’est pas activée pour le schéma, sélectionnez Activer. Si la détection d’anomalie est déjà activée, sélectionnez Configurer.
  4. Dans la boîte de dialogue Surveillance de la qualité des données , dans le champ Profilage des données , sélectionnez Configurer.
  5. Choisissez votre type de profil et configurez des options telles que la granularité et la planification.

Le profil génère une table de métriques de profil avec des statistiques récapitulatives et une table de métriques de dérive qui suit les modifications de distribution au fil du temps. Azure Databricks remplit la table des métriques de dérive lorsqu’une table de référence ou une fenêtre de temps consécutive est disponible.

Créer un profil à l’aide de l’API

Pour l’accès par programmation, utilisez le Kit de développement logiciel (SDK) Databricks. Installez ou mettez à niveau le Kit de développement logiciel (SDK) pour obtenir l’API actuelle :

%pip install "databricks-sdk>=0.68.0"

Créez ensuite un profil d’instantané pour une table :

from databricks.sdk import WorkspaceClient
from databricks.sdk.service.dataquality import Monitor, DataProfilingConfig, SnapshotConfig

w = WorkspaceClient()

# Retrieve the table ID and schema ID required by the API
table = w.tables.get(full_name="main.sales.transactions")
schema = w.schemas.get(full_name="main.sales")

w.data_quality.create_monitor(
    monitor=Monitor(
        object_type="table",
        object_id=table.table_id,
        data_profiling_config=DataProfilingConfig(
            output_schema_id=schema.schema_id,
            assets_dir="/Workspace/Users/user@example.com/monitoring",
            snapshot=SnapshotConfig()
        )
    )
)

Pour actualiser le profil et mettre à jour les métriques :

from databricks.sdk.service.dataquality import Refresh

w.data_quality.create_refresh(
    object_type="table",
    object_id=table.table_id,
    refresh=Refresh(object_type="table", object_id=table.table_id)
)

Interpréter les résultats du profilage

Le profilage génère des métriques qui vous aident à évaluer la qualité des données et à identifier les problèmes nécessitant une attention particulière.

Métriques clés à examiner

La table des métriques de profil contient des statistiques pour chaque colonne :

Unité de mesure Ce qu’il révèle
count et num_nulls Complétivité des données : des pourcentages null élevés peuvent indiquer des problèmes d’ingestion
distinct_count Cardinalité : des valeurs inattendues peuvent suggérer des problèmes de qualité des données
min, maxavg, stddev Caractéristiques de distribution : valeurs hors norme ou distributions asymétriques
frequent_items Valeurs les plus courantes : permet d’identifier les catégories dominantes ou les doublons
quantiles Distribution des valeurs : utile pour détecter l’asymétrie

Détecter les problèmes de qualité des données

Lorsque vous examinez les résultats du profilage, recherchez ces indicateurs courants :

  • Pourcentages élevés de null dans les colonnes qui doivent avoir des valeurs.
  • Comptages distincts inattendus, tels que des identificateurs uniques qui ne sont pas uniques
  • Plages de valeurs en dehors des limites attendues, comme les montants négatifs où seuls les positifs sont valides
  • Modifications de distribution au fil du temps, ce qui peut indiquer la dérive des données

La table des métriques de dérive calcule des tests statistiques comme le test Kolmogorov-Smirnov (KS) pour les colonnes numériques et le test chi-carré pour les colonnes catégorielles. Ces tests quantifient la quantité de distributions qui ont changé.

La compréhension de ces modèles vous permet de concevoir des règles de nettoyage et de validation appropriées pour vos pipelines de données.