Dati del profilo

Completato

Prima di pulire o trasformare i dati, è necessario comprendere cosa si trova nelle tabelle. I dati di profilatura indicano l'analisi dei set di dati per generare statistiche di riepilogo, ovvero conteggi, medie, distribuzioni di valori e percentuali Null, che rivelano la qualità e la struttura dei dati. Questa base consente di identificare problemi come valori mancanti, outlier e modelli imprevisti prima di causare problemi a valle.

In questa unità si apprenderà come generare statistiche di riepilogo usando i comandi SQL e la funzionalità di profilatura dei dati in Azure Databricks.

Generare statistiche di riepilogo con SQL

Azure Databricks fornisce comandi SQL che raccolgono e visualizzano statistiche sulle tabelle. Queste statistiche consentono a Query Optimizer di scegliere piani di esecuzione efficienti e di ottenere informazioni dettagliate sulle caratteristiche dei dati.

Il diagramma illustra la generazione di statistiche di riepilogo tramite SQL.

Raccogliere statistiche con ANALYZE TABLE

Il ANALYZE TABLE comando calcola le statistiche per una tabella o colonne specifiche. Queste statistiche includono conteggi delle righe, metriche a livello di colonna, ad esempio valori minimi e massimi, conteggi null e conteggi di valori distinti.

-- 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;

Quando si analizza una colonna specifica, si ottengono metriche dettagliate:

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

Vengono restituite le metriche, tra cui il valore minimo, il valore massimo, il numero di valori Null, il conteggio dei valori distinti, la lunghezza media della colonna e la lunghezza massima della colonna.

Visualizzare le statistiche con DESCRIBE TABLE

Il DESCRIBE TABLE EXTENDED comando visualizza le statistiche raccolte insieme ai metadati della tabella:

DESCRIBE TABLE EXTENDED sales.transactions;

È anche possibile usare PySpark per recuperare i metadati della tabella e generare statistiche di riepilogo:

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

Il describe() metodo restituisce conteggio, media, deviazione standard, min e max per le colonne numeriche e stringa.

L'DESCRIBE TABLE EXTENDEDoutput include una riga Statistics che mostra la dimensione della tabella in byte e, dopo l'esecuzione del comando ANALYZE TABLE ... COMPUTE STATISTICS, il numero di righe. Per le tabelle gestite di Unity Catalog, l'ottimizzazione predittiva viene eseguita ANALYZE automaticamente per mantenere aggiornate le statistiche.

Suggerimento

Eseguire ANALYZE TABLE dopo i caricamenti massivi di dati o modifiche significative per garantire che il Query Optimizer disponga di statistiche accurate per la pianificazione di query efficienti.

Usare la profilazione dei dati in Unity Catalog

Oltre ai comandi SQL, Azure Databricks fornisce il monitoraggio della qualità dei dati in Unity Catalog, un ombrello che copre due funzionalità distinte:

  • Il rilevamento anomalie (anteprima pubblica) monitora automaticamente tutte le tabelle in uno schema. Analizza i modelli cronologici per valutare l'aggiornamento di ogni tabella (quanto di recente è stato aggiornato) e la completezza (se il numero previsto di righe è arrivato). È possibile abilitarla una sola volta a livello di schema in Esplora cataloghi e Azure Databricks determina la frequenza con cui eseguire l'analisi di ogni tabella. Usare il rilevamento anomalie per un'ampia copertura automatizzata in tutte le tabelle senza la configurazione per tabella.
  • La profilatura dei dati offre un'analisi statistica approfondita per tabella, ovvero il rilevamento delle distribuzioni, le percentuali Null, le metriche di deriva e le prestazioni del modello nel tempo. È possibile configurarlo singolarmente per ogni tabella. Usare la profilatura dei dati per le tabelle più critiche in cui sono necessarie tendenze cronologiche dettagliate.

Per il lavoro di ingegneria dei dati incentrato sulla pulizia e sulla qualità, usare entrambi: rilevamento anomalie come sistema di avviso anticipato in tutte le tabelle e profilatura dei dati per il monitoraggio approfondito delle tabelle chiave.

Diagramma illustra come usare la profilatura dei dati nel catalogo Unity.

Informazioni sui tipi di profilo

La profilatura dei dati supporta tre tipi di analisi, ognuno adatto a scenari diversi:

Tipo di profilo Caso d'uso Caratteristiche chiave
Snapshot Tabelle per utilizzo generico Calcola le metriche sull'intera tabella con ogni aggiornamento
Serie temporale Tabelle con colonne timestamp Tiene traccia delle metriche nelle finestre temporali per rilevare le tendenze
Inferenza Tabelle di inferenza del modello di Machine Learning Monitora gli input, le stime e l'accuratezza del modello nel tempo

Per le attività di progettazione dei dati incentrate sulla qualità dei dati, i profili snapshot e serie temporali sono più rilevanti.

Creare un profilo usando l'interfaccia utente

Per creare un profilo in Esplora cataloghi:

  1. Passare alla tabella in Esplora cataloghi.
  2. Selezionare la scheda Qualità .
  3. Se il rilevamento anomalie non è abilitato per lo schema, selezionare Attiva. Se il rilevamento anomalie è già abilitato, selezionare Configura.
  4. Nel campo Profilatura dati della finestra di dialogo Monitoraggio qualità datiselezionare Configura.
  5. Scegliere il tipo di profilo e configurare opzioni come granularità e pianificazione.

Il profilo genera una tabella delle metriche del profilo con statistiche di riepilogo e una tabella delle metriche di drift che tiene traccia delle modifiche di distribuzione nel tempo. Azure Databricks popola la tabella delle metriche di deriva quando è disponibile una tabella di base o un intervallo di tempo consecutivo.

Creare un profilo usando l'API

Per l'accesso a livello di codice, usare Databricks SDK. Installare o aggiornare l'SDK per ottenere l'API corrente:

%pip install "databricks-sdk>=0.68.0"

Creare quindi un profilo snapshot per una tabella:

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()
        )
    )
)

Per aggiornare il profilo e aggiornare le metriche:

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)
)

Interpretare i risultati della profilatura

La profilatura genera metriche che consentono di valutare la qualità dei dati e identificare i problemi che richiedono attenzione.

Metriche chiave da esaminare

La tabella delle metriche del profilo contiene statistiche per ogni colonna:

Metrica Cosa rivela
count e num_nulls Completamento dei dati: percentuali null elevate potrebbero indicare problemi di inserimento
distinct_count Cardinalità: i valori imprevisti potrebbero suggerire problemi di qualità dei dati
min, max, avgstddev Caratteristiche di distribuzione: outlier o distribuzioni asimmetriche
frequent_items Valori più comuni: consente di identificare categorie dominanti o duplicati
quantiles Distribuzione del valore, utile per rilevare l'asimmetria

Rilevare i problemi di qualità dei dati

Quando si esaminano i risultati della profilatura, cercare questi indicatori comuni:

  • Percentuali null elevate nelle colonne che devono avere valori
  • Conteggi distinti inaspettati, come identificatori univoci che risultano non essere tali
  • Intervalli di valori esterni ai limiti previsti, ad esempio quantità negative in cui sono validi solo i positivi
  • Modifiche alla distribuzione nel tempo, che possono indicare la deriva dei dati

La tabella delle metriche di deriva calcola test statistici come il test Kolmogorov-Smirnov (KS) per le colonne numeriche e il test chi quadrato per le colonne categoriche. Questi test quantificano la quantità di distribuzioni modificate.

La comprensione di questi modelli consente di progettare regole di pulizia e convalida appropriate per le pipeline di dati.