Panoramica della qualità dei dati automatici

Questo documento descrive la qualità automatica dei dati di Dataplex, che consente di definire e misurare la qualità dei dati. Puoi automatizzare la scansione dei dati, convalidarli in base a regole definite e registrare avvisi se i dati non soddisfano i requisiti di qualità. Puoi gestire le regole e i deployment di qualità dei dati come codice, migliorando l'integrità delle pipeline di produzione dei dati.

Per iniziare, puoi utilizzare i consigli sulle regole di profiling dei dati Dataplex o creare regole personalizzate nella console Google Cloud. Dataplex fornisce monitoraggio, risoluzione dei problemi e alert di Cloud Logging integrati con la qualità automatica dei dati di Dataplex.

Modello concettuale

Un'analisi della qualità dei dati applica regole di qualità ai dati della tabella per generare report sui risultati.

Un'analisi dei dati è un job Dataplex che esegue il campionamento dei dati da BigQuery e Cloud Storage e deducono vari tipi di metadati. Per misurare la qualità di una tabella utilizzando la qualità dei dati automatica, crei un oggetto DataScan di tipo data quality. La scansione viene eseguita su una sola tabella BigQuery. La scansione utilizza le risorse di un progetto tenant Google, quindi non è necessario configurare la tua infrastruttura.

La creazione e l'utilizzo di un'analisi della qualità dei dati prevede i seguenti passaggi:

  1. Definire le regole sulla qualità dei dati
  2. Configurare l'esecuzione delle regole
  3. Analizzare i risultati dell'analisi della qualità dei dati
  4. Configurare il monitoraggio e gli avvisi
  5. Risolvere i problemi di qualità dei dati

Definizione della regola

Le regole sulla qualità dei dati associate a un'analisi della qualità dei dati definiscono le aspettative relative ai dati. Puoi creare regole di qualità dei dati nei seguenti modi:

Regole predefinite

Dataplex supporta due categorie di regole predefinite: a livello di riga o aggregate.

A livello di riga

Per le regole di categoria a livello di riga, la previsione viene applicata a ogni riga di dati. Ogni riga supera o non supera la condizione in modo indipendente. Ad esempio, column_A_value < 1.

I controlli a livello di riga richiedono di specificare una soglia di superamento. Quando la percentuale di righe che supera la regola scende al di sotto del valore di soglia, la regola non va a buon fine.

Aggregazione

Per le regole aggregate, la previsione viene applicata a un singolo valore aggregato in tutti i dati. Ad esempio, Avg(someCol) >= 10. Per essere superato, il controllo deve restituire il valore booleano true. Le regole aggregate non forniscono un conteggio indipendente di passaggi o errori per ogni riga.

Per entrambe le categorie di regole, puoi impostare i seguenti parametri:

  • La colonna a cui si applica la regola.
  • Una dimensione da un insieme di dimensioni predefinite.

La tabella seguente elenca i tipi di regole aggregate e a livello di riga supportati:

Tipo di regola
(nome nella console Google Cloud)
Regola aggregata o a livello di riga Descrizione Tipi di colonne supportati Parametri specifici per le regole
RangeExpectation
(Controllo intervallo)
A livello di riga Controlla se il valore è compreso tra min e max. Tutte le colonne di tipo numerico, data e timestamp. Obbligatorio:
  • Percentuale di soglia di superamento
  • Valori min o max: specifica almeno un valore.
Facoltativo:
  • Attiva strict min: se questa opzione è attivata, il controllo delle regole utilizza ">" instead of ">=".
  • Attiva strict max: se questa opzione è attivata, il controllo delle regole utilizza "<" instead of "<=".
  • Attiva ignore null: se questa opzione è attivata, i valori null vengono ignorati nel controllo delle regole.
NonNullExpectation
(Controllo nullo)
A livello di riga Verifica che i valori delle colonne non siano NULL. Tutti i tipi di colonne supportati. Obbligatorio:
  • Percentuale di soglia di superamento.
SetExpectation
(Imposta controllo)
A livello di riga Controlla se i valori in una colonna sono uno dei valori specificati in un insieme. Tutti i tipi di colonne supportati, ad eccezione di Record e Struct. Obbligatorio:
  • Set di valori di stringa da verificare.
  • Percentuale di soglia di superamento.
Facoltativo:
  • Attiva ignore null: se questa opzione è attivata, i valori null vengono ignorati nel controllo delle regole.
RegexExpectation
(Controllo dell'espressione regolare)
A livello di riga Controlla i valori rispetto a un'espressione regolare specificata. Stringa Obbligatorio:
  • Modello di espressione regolare utilizzato per il controllo.
  • Percentuale di soglia di superamento.
  • Nota: Google Standard SQL fornisce il supporto delle espressioni regolari utilizzando la libreria re2. Consulta la relativa documentazione per la sintassi delle espressioni regolari.
Facoltativo:
  • Attiva ignore null: se questa opzione è attivata, i valori null vengono ignorati nel controllo delle regole.
Uniqueness
(Controllo unicità)
Aggregazione Controlla se tutti i valori di una colonna sono univoci. Tutti i tipi di colonne supportati, ad eccezione di Record e Struct. Obbligatorio:
  • Colonna e dimensione dai parametri supportati.
Facoltativo:
  • Attiva ignore null: se questa opzione è attivata, i valori null vengono ignorati nel controllo delle regole.
StatisticRangeExpectation
(Controllo statistico)
Aggregazione Controlla se la misura statistica specificata corrisponde all'intervallo previsto. Tutti i tipi di colonne numeriche supportati. Obbligatorio:
  • Valori mean, min o max: specifica almeno un valore.
Facoltativo:
  • Attiva strict min: se questa opzione è attivata, il controllo delle regole utilizza ">" instead of ">=".
  • Attiva strict max: se questa opzione è attivata, il controllo delle regole utilizza "<" instead of "<=".

Tipi di regole SQL personalizzate supportati

Le regole SQL offrono la flessibilità di espandere la convalida con logica personalizzata. Queste regole sono disponibili nei seguenti tipi.

Tipo di regola Regola aggregata o a livello di riga Descrizione Tipi di colonne supportati Parametri specifici per le regole Esempio
Condizione di riga A livello di riga

Specifica un'aspettativa per ogni riga definendo un'espressione SQL in una clausola WHERE. L'espressione SQL deve restituire true (pass) o false (fail) per riga. Dataplex calcola la percentuale di righe che soddisfano questa aspettativa e confronta questo valore con la percentuale di righe che superano la soglia per determinare l'esito positivo o negativo della regola.

L'espressione può includere un riferimento a un'altra tabella, ad esempio per creare controlli di integrità referenziale.

Tutte le colonne Obbligatorio:
  • Condizione SQL da utilizzare
  • Percentuale di soglia di superamento
  • Dimensioni
Facoltativo:
  • Colonna a cui associare questa regola.
grossWeight <= netWeight
Condizione della tabella
(espressione SQL aggregata)
Aggregazione

Queste regole vengono eseguite una volta per tabella. Fornisci un'espressione SQL che restituisce come valore booleano true (pass) o false (fail).

L'espressione SQL può includere un riferimento a un'altra tabella utilizzando le sottoquery di espressione.

Tutte le colonne Obbligatorio:
  • Condizione SQL da utilizzare
  • Dimensioni
Facoltativo:
  • Colonna a cui associare questa regola

Esempio di aggregazione semplice:
avg(price) > 100

Utilizzo di una sottoquery di espressione per confrontare i valori in un'altra tabella:
(SELECT COUNT(*) FROM `example_project.example_dataset.different-table`) < COUNT(*)

Asserzione SQL Aggregazione

Una regola di asserzione utilizza una query sulla qualità dei dati per trovare le righe che non soddisfano una o più condizioni specificate nella query. Fornisci un'istruzione SQL che viene valutata per restituire le righe corrispondenti allo stato non valido. Se la query restituisce righe, la regola non riesce.

Ometti il punto e virgola finale dall'istruzione SQL.

L'istruzione SQL può includere un riferimento a un'altra tabella utilizzando sottoquery di espressione.

Tutte le colonne Obbligatorio:
  • Istruzione SQL per controllare lo stato non valido
  • Dimensioni
Facoltativo:
  • Colonna a cui associare questa regola.

Esempio aggregato semplice per assicurarsi che discount_pct non sia maggiore di 100:
SELECT * FROM example_project.example_dataset.table WHERE discount_pct > 100

Utilizzo di una sottoquery di espressione per confrontare i valori in un'altra tabella:
SELECT * FROM `example_project.example_dataset.different-table` WHERE gross_weight > (SELECT avg(gross_weight) FROM `example_project.example_dataset.different-table`)

Per esempi di regole, consulta le regole di esempio per la qualità dei dati automatica.

Per le funzioni SQL supportate, consulta la documentazione di riferimento di GoogleSQL.

Dimensioni

Le dimensioni ti consentono di aggregare i risultati di più regole di qualità dei dati per il monitoraggio e l'invio di avvisi. Devi associare ogni regola di qualità dei dati a una dimensione. Dataplex supporta le seguenti dimensioni:

  • Aggiornamento
  • Volume
  • Completezza
  • Validità
  • Coerenza
  • Accuratezza
  • Unicità

Input digitato nelle regole

Tutti i parametri di valore vengono passati all'API come valori di stringa. Dataplex richiede che gli input rispettino il formato specificato da BigQuery.

I parametri di tipo binario possono essere trasmessi come stringa con codifica base64.

Tipo Formati supportati Esempi
Binario Valore con codifica Base64 YXBwbGU=
Timestamp YYYY-[M]M-[D]D[( |T)[H]H:[M]M:[S]S[.F]] [time_zone]
OPPURE YYYY-[M]M-[D]D[( |T)[H]H:[M]M:[S]S[.F]][time_zone_offset]
2014-09-27 12:30:00.45-08
Data YYYY-M[M]-D[D] 2014-09-27
Ora [H]H:[M]M:[S]S[.DDDDDD] 12:30:00.45
DateTime YYYY-[M]M-[D]D [[H]H:[M]M:[S]S[.DDDDDD]] 2014-09-27 12:30:00.45

Parametro di riferimento dati

Quando crei una regola SQL personalizzata, puoi fare riferimento a una tabella dell'origine dati e a tutti i suoi filtri di precondizione utilizzando il parametro di riferimento dati ${data()} nella regola, anziché menzionare esplicitamente la tabella di origine e i relativi filtri. Dataplex interpreta il parametro come un riferimento alla tabella di origine e ai relativi filtri. Alcuni esempi di filtri di precondizione sono i filtri delle righe, le percentuali di campionamento e i filtri incrementali.

Ad esempio, supponiamo di avere una tabella di origine dati denominata my_project_id.dim_dataset.dim_currency. Vuoi eseguire un'analisi della qualità dei dati incrementale che esamini solo i nuovi dati giornalieri. Alla tabella viene applicato un filtro riga che filtra in base alle voci di oggi, transaction_timestamp >= current_date().

Una regola SQL personalizzata per trovare le righe con discount_pct per la data odierna ha il seguente aspetto:

discount_pct IN (SELECT discount_pct FROM my_project_id.dim_dataset.dim_currency WHERE transaction_timestamp >= current_date())

Se utilizzi il parametro di riferimento dati, puoi semplificare la regola. Sostituisci la menzione della tabella e dei relativi filtri di precondizione con il parametro ${data()}:

discount_pct IN (SELECT discount_pct FROM ${data()})

Dataplex interpreta il parametro ${data()} come un riferimento alla tabella dell'origine dati con le voci di oggi,my_project_id.dim_dataset.dim_currency WHERE transaction_timestamp >= current_date(). In questo esempio, il parametro di riferimento ai dati si riferisce solo ai dati incrementali.

Il parametro ${data()} è sensibile alle maiuscole.

Quando utilizzi un alias all'interno di una sottoquery per fare riferimento alle colonne della tabella di origine, utilizza il parametro di riferimento dati per fare riferimento alla tabella di origine o ometti il riferimento alla tabella. Non fare riferimento alle colonne della tabella di origine utilizzando un riferimento diretto alla tabella nella clausola WHERE.

Consigliato:

  • Utilizza il parametro di riferimento dati per fare riferimento alla tabella di origine:

    discount_pct IN (
    SELECT discount_pct FROM
    `my_project_id.dim_dataset.dim_currency` AS temp-table
    WHERE
    temp-table.transaction_timestamp = ${data()}.timestamp
    )
    
  • Ometti il riferimento alla tabella:

    discount_pct IN (
    SELECT discount_pct FROM
    `my_project_id.dim_dataset.dim_currency` AS temp-table
    WHERE
    temp-table.transaction_timestamp = timestamp
    )
    

Non consigliato:

  • Non utilizzare un riferimento diretto alla tabella per fare riferimento alle colonne della tabella di origine:

    discount_pct IN (
    SELECT discount_pct FROM
    `my_project_id.dim_dataset.dim_currency` AS temp-table
    WHERE
    temp-table.transaction_timestamp = `my_project_id.dim_dataset.dim_currency`.timestamp
    )
    

Esecuzione delle regole

Puoi pianificare l'esecuzione delle analisi della qualità dei dati a un intervallo specifico oppure eseguire un'analisi su richiesta. Per gestire le analisi della qualità dei dati, puoi utilizzare l'API o la console Google Cloud.

Quando esegui un'analisi della qualità dei dati, Dataplex crea un job. Nell'ambito della specifica di una scansione della qualità dei dati, puoi specificare l'ambito di un job come uno dei seguenti:

Tabella completa
Ogni job convalida l'intera tabella.
Incrementale
Ogni job convalida i dati incrementali. Per determinare gli incrementi, fornisci una colonna Date / Timestamp nella tabella che può essere utilizzata come indicatore. In genere, si tratta della colonna su cui è partizionata la tabella.

Filtra dati

Dataplex può filtrare i dati da analizzare per verificarne la qualità utilizzando un filtro riga. La creazione di un filtro riga ti consente di concentrarti sui dati all'interno di un determinato periodo di tempo o di un segmento specifico, ad esempio una determinata regione. L'utilizzo dei filtri può ridurre i tempi e i costi di esecuzione, ad esempio escludendo i dati con un timestamp precedente a una determinata data.

Dati di esempio

Dataplex ti consente di specificare una percentuale di record dei dati da campionare per eseguire un'analisi della qualità dei dati. La creazione di analisi della qualità dei dati su un set di dati più piccolo può ridurre il tempo di esecuzione e il costo relativo alla esecuzione di query sull'intero set di dati.

Risultati dell'analisi della qualità dei dati

I risultati delle analisi della qualità dei dati sono disponibili in Dataplex. Puoi anche esaminare e analizzare i risultati della scansione utilizzando i seguenti metodi:

  • Esportare i risultati in BigQuery

    Puoi esportare i risultati della scansione in una tabella BigQuery per ulteriori analisi. Per personalizzare i report, puoi collegare i dati delle tabelle BigQuery a una dashboard di Looker. Puoi creare un report aggregato utilizzando la stessa tabella dei risultati per più analisi.

  • Pubblicare i risultati nella console Google Cloud

    Puoi pubblicare i risultati dell'analisi della qualità dei dati nelle pagine BigQuery e Data Catalog della tabella di origine nella console Google Cloud. I risultati più recenti dell'analisi sono disponibili nella scheda Qualità dei dati per la tabella di origine.

  • Esaminare i punteggi di qualità dei dati

    Ogni risultato della scansione fornisce punteggi di qualità dei dati che indicano la percentuale di regole superate. I punteggi vengono riportati a livello di job complessivo, di colonna (se la regola viene valutata in base a una colonna) e di dimensione. Utilizza i punteggi della qualità dei dati per normalizzare la qualità dei dati tra tabelle o colonne, monitorare le tendenze e identificare i dati che non soddisfano i requisiti di qualità.

Per ulteriori informazioni, consulta la sezione Visualizzare i risultati della scansione della qualità dei dati.

Monitoraggio e avvisi

Puoi monitorare e ricevere avvisi sulle scansioni della qualità dei dati utilizzando i seguenti metodi:

  • Impostare gli avvisi in Cloud Logging

    Puoi monitorare i job di qualità dei dati utilizzando i log data_scan e data_quality_scan_rule_result in Esplora log.

    Per ogni job di qualità dei dati, il log data_scan con il campo data_scan_type impostato su DATA_QUALITY contiene le seguenti informazioni:

    • Origine dati utilizzata per l'analisi dei dati.
    • Dettagli sull'esecuzione del job, ad esempio ora di creazione, ora di inizio, ora di fine e stato del job.
    • Risultato del job di qualità dei dati: superato o non superato.
    • Superamento o mancato superamento a livello di dimensione.

    Ogni job riuscito contiene un log data_quality_scan_rule_result con le seguenti informazioni dettagliate su ogni regola del job:

    • Informazioni sulla configurazione, ad esempio nome della regola, tipo di regola, tipo di valutazione e dimensione.
    • Informazioni sui risultati, ad esempio Pass o Fail, conteggio totale delle righe, conteggio delle righe che superano il test, conteggio delle righe null e conteggio delle righe valutate.

    Le informazioni nei log sono disponibili tramite l'API e la console Google Cloud. Puoi utilizzare queste informazioni per configurare gli avvisi. Per ulteriori informazioni, consulta Impostare gli avvisi in Logging.

  • Inviare report sulle notifiche via email

    Puoi inviare report di notifica via email per avvisare gli utenti dello stato e dei risultati di un job di qualità dei dati. I report sulle notifiche sono disponibili per i seguenti scenari:

    • Il punteggio di qualità dei dati è inferiore a un punteggio target specificato
    • Il job non è riuscito
    • Il job è stato completato

    Configura i report di notifica quando crei un'analisi della qualità dei dati.

Risolvere i problemi di qualità dei dati

Quando una regola non va a buon fine, Dataplex genera una query per recuperare i record con errori. Esegui questa query per visualizzare i record che non corrispondono alla tua regola. Per maggiori informazioni, consulta Risolvere un errore di qualità dei dati.

Limitazioni

  • I risultati della scansione della qualità dei dati non vengono pubblicati in Data Catalog come tag.
  • I consigli sulle regole non sono supportati nella gcloud CLI.
  • La scelta delle dimensioni è fissa ed è limitata a una delle sette dimensioni predefinite.
  • Il numero di regole per analisi della qualità dei dati è limitato a 1000.
  • I punteggi della qualità dei dati riportati a livello di colonna sono supportati solo nell'API.

Prezzi

  • Dataplex utilizza lo SKU di elaborazione premium per addebitare la qualità dei dati automatica. Per ulteriori informazioni, consulta Prezzi di Dataplex.

  • La pubblicazione dei risultati della qualità dei dati automatica in Catalog non è ancora disponibile. Quando sarà disponibile, verrà addebitato allo stesso prezzo dello spazio di archiviazione dei metadati del Catalogo. Per ulteriori dettagli, consulta la pagina Prezzi.

  • L'elaborazione premium di Dataplex per la qualità dei dati automatici viene fatturata per secondo con un minimo di un minuto.

  • Non vengono addebitati costi per le analisi della qualità dei dati non riuscite.

  • L'addebito dipende dal numero di righe, dal numero di colonne, dalla quantità di dati sottoposti a scansione, dalla configurazione delle regole di qualità dei dati, dalle impostazioni di partizione e clustering della tabella e dalla frequenza della scansione.

  • Esistono diverse opzioni per ridurre il costo delle analisi della qualità dei dati automatiche:

  • Per separare gli addebiti per la qualità dei dati dagli altri addebiti nello SKU di elaborazione premium di Dataplex, nel report di fatturazione Cloud utilizza l'etichetta goog-dataplex-workload-type con il valore DATA_QUALITY.

  • Per filtrare gli addebiti aggregati, utilizza le seguenti etichette:

    • goog-dataplex-datascan-data-source-dataplex-entity
    • goog-dataplex-datascan-data-source-dataplex-lake
    • goog-dataplex-datascan-data-source-dataplex-zone
    • goog-dataplex-datascan-data-source-project
    • goog-dataplex-datascan-data-source-region
    • goog-dataplex-datascan-id
    • goog-dataplex-datascan-job-id

Passaggi successivi