Panoramica della qualità dei dati automatici

La qualità dei dati automatica di Dataplex Universal Catalog consente di definire e misurare la qualità dei dati nelle tabelle BigQuery. 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 di qualità dei dati e le implementazioni come codice, migliorando l'integrità delle pipeline di produzione dei dati.

Puoi iniziare utilizzando i suggerimenti per le regole di profilazione dei dati di Dataplex Universal Catalog o creando regole personalizzate nella console Google Cloud . Dataplex Universal Catalog fornisce monitoraggio, risoluzione dei problemi e avvisi di Cloud Logging integrati con la qualità automatica dei dati di Dataplex Universal Catalog.

Modello concettuale

Una scansione della qualità dei dati applica regole di qualità ai dati della tabella per generare un report sui risultati.

Una scansione dei dati è un job del Catalogo universale Dataplex che campiona i dati da BigQuery e Cloud Storage e deduce vari tipi di metadati. Per misurare la qualità di una tabella utilizzando la qualità dei dati automatica, crea un oggetto DataScan di tipo data quality. La scansione viene eseguita solo su una tabella BigQuery. La scansione utilizza le risorse in un progetto tenant Google, quindi non devi configurare la tua infrastruttura.

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

  1. Definisci 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 relativi agli errori di qualità dei dati

Definizione della regola

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

Regole predefinite

Dataplex Universal Catalog supporta due categorie di regole predefinite: a livello di riga o aggregato.

A livello di riga

Per le regole di categoria a livello di riga, l'aspettativa 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 superano la regola scende al di sotto del valore di soglia, la regola non viene superata.

Aggregazione

Per le regole aggregate, l'aspettativa viene applicata a un singolo valore aggregato su tutti i dati. Ad esempio, Avg(someCol) >= 10. Per superarlo, il controllo deve restituire il valore booleano true. Le regole di aggregazione non forniscono un conteggio indipendente di superamento o mancato superamento per ogni riga.

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

  • La colonna a cui si applica la regola
  • Una dimensione

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

Tipo di regola
(nome nella console) Google Cloud
Regola a livello di riga o aggregata Descrizione Tipi di colonne supportati Parametri specifici per la regola
RangeExpectation
(controllo intervallo)
A livello di riga Controlla se il valore è compreso tra il minimo e il massimo. Tutte le colonne di tipo numerico, data e timestamp. Obbligatorio:
  • Percentuale soglia di superamento
  • Valori min o max: specifica almeno un valore.
(Facoltativo)
  • Attiva strict min: se l'opzione è attivata, il controllo della regola utilizza ">" anziché ">=".
  • Attiva strict max: se l'opzione è attivata, il controllo della regola utilizza "<" anziché "<=".
  • Attiva ignore null: se attivata, i valori null vengono ignorati nel controllo della regola.
NonNullExpectation
(Controllo di valori nulli)
A livello di riga Verifica che i valori delle colonne non siano NULL. Tutti i tipi di colonne supportati. Obbligatorio:
  • Percentuale soglia di superamento.
SetExpectation
(Imposta controllo)
A livello di riga Controlla se i valori di 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 stringa da confrontare.
  • Percentuale soglia di superamento.
(Facoltativo)
  • Attiva ignore null: se 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 soglia di superamento.
  • Nota: GoogleSQL fornisce il supporto delle espressioni regolari utilizzando la libreria re2. Consulta la documentazione per la sintassi delle espressioni regolari.
(Facoltativo)
  • Attiva ignore null: se 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 attivata, i valori null vengono ignorati nel controllo delle regole.
StatisticRangeExpectation
(Controllo delle statistiche)
Aggregazione Controlla se la misura statistica specificata corrisponde all'intervallo previsto. Tutti i tipi di colonne numeriche supportati. Obbligatorio:
  • mean, min o max: specifica almeno un valore.
(Facoltativo)
  • Attiva strict min: se l'opzione è attivata, il controllo della regola utilizza ">" anziché ">=".
  • Attiva strict max: se l'opzione è attivata, il controllo della regola utilizza "<" anziché "<=".

Tipi di regole SQL personalizzate supportati

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

Tipo di regola Regola a livello di riga o aggregata Descrizione Tipi di colonne supportati Parametri specifici per la regola Esempio
Condizione a livello 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 (superato) o false (non superato) per riga. Il Catalogo universale Dataplex calcola la percentuale di righe che superano questa aspettativa e confronta questo valore con la percentuale di soglia di superamento 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 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 (superato) o false (non superato).

L'espressione SQL può includere un riferimento a un'altra tabella utilizzando 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 una tabella diversa:
(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 che corrispondono allo stato non valido. Se la query restituisce delle 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.

Semplice esempio di aggregazione 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 una tabella diversa:
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 Regole di esempio per la qualità dei dati automatica.

Per le funzioni SQL supportate, consulta il riferimento GoogleSQL.

Dimensioni

Le dimensioni consentono di aggregare i risultati di più regole di qualità dei dati per il monitoraggio e gli avvisi. Devi associare ogni regola di qualità dei dati a una dimensione. Dataplex Universal Catalog fornisce le seguenti dimensioni:

Aggiornamento
L'aggiornamento indica l'ultima volta che i dati sono stati aggiornati. Disporre di queste informazioni può aiutarti a determinare se i dati sono abbastanza recenti da essere utili.
Volume
Il volume misura se sono presenti tutti i dati previsti.
Completezza
La completezza valuta se i dati contengono tutte le informazioni necessarie per lo scopo previsto.
Validità
La validità valuta se i dati sono conformi agli standard predefiniti per formato, intervalli accettabili o altri criteri. Ad esempio, se una data valida deve avere il formato YYYY/mm/dd, 08-12-2019 non è un dato valido. Un altro esempio: se un prezzo scontato valido per un articolo è compreso tra 10 e 20 $, un prezzo scontato di 100 $ è un dato non valido.
Coerenza
La coerenza si riferisce alla presenza degli stessi valori per i dati in più istanze, ad esempio tabelle e colonne. L'incoerenza dei dati si verifica quando, ad esempio, le entrate di un prodotto differiscono quando vengono lette da un database delle vendite o da un database di utilizzo.
Accuratezza
L'accuratezza riflette la correttezza dei dati. Tieni presente che i dati validi non sono necessariamente accurati. Ad esempio, un colore di capelli valido potrebbe essere il castano, ma se una persona non ha i capelli castani, si tratta di dati imprecisi.
Unicità
L'unicità misura se i dati sono distinti e non duplicati.

Input digitato nelle regole

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

I parametri di tipo binario possono essere passati come stringa codificata in 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]
OR 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 AAAA-M[M]-G[G] 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 ai dati

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

Ad esempio, supponiamo di avere una tabella dell'origine dati chiamata my_project_id.dim_dataset.dim_currency. Vuoi eseguire una scansione incrementale della qualità dei dati che esegue la scansione solo sui nuovi dati giornalieri. Alla tabella viene applicato un filtro delle righe che filtra le voci di oggi, transaction_timestamp >= current_date().

Una regola SQL personalizzata per trovare le righe con discount_pct per oggi è simile alla seguente:

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 ai dati, puoi semplificare la regola. Sostituisci il riferimento alla tabella e ai relativi filtri di precondizione con il parametro ${data()}:

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

Dataplex Universal Catalog interpreta il parametro ${data()} come 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 ai dati per fare riferimento alla tabella di origine oppure 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 ai 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 della regola

Puoi pianificare l'esecuzione delle scansioni della qualità dei dati a un intervallo specifico oppure puoi eseguire una scansione on demand. Per gestire le scansioni della qualità dei dati, puoi utilizzare l'API o la consoleGoogle Cloud .

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

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 marcatore. In genere, questa è la colonna in base alla quale è partizionata la tabella.

Filtra dati

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

Dati di esempio

Dataplex Universal Catalog ti consente di specificare una percentuale di record dei tuoi dati da campionare per eseguire una scansione della qualità dei dati. La creazione di analisi della qualità dei dati su un campione più piccolo di dati può ridurre il tempo di esecuzione e il costo rispetto all'interrogazione dell'intero set di dati.

Risultati dell'analisi della qualità dei dati

I risultati delle analisi della qualità dei dati sono disponibili in Dataplex Universal Catalog. 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 della tabella BigQuery a una dashboard Looker. Puoi creare un report aggregato utilizzando la stessa tabella dei risultati in più analisi.

  • Pubblica i risultati come metadati del Catalogo universale Dataplex

    Puoi pubblicare i risultati della scansione della qualità dei dati come metadati di Dataplex Universal Catalog. I risultati più recenti vengono salvati nella voce Dataplex Universal Catalog che rappresenta la tabella di origine, nel tipo di aspetto di sistema data-quality-scorecard. Puoi visualizzare i risultati nelle pagine BigQuery e Dataplex Universal Catalog della tabella di origine nella console Google Cloud , nella scheda Qualità dei dati. Puoi anche recuperare i risultati utilizzando l'API.

    Per saperne di più sui metadati di Dataplex Universal Catalog, consulta Informazioni sulla gestione del catalogo dati in Dataplex Universal Catalog.

  • Esaminare i punteggi della 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, a livello di colonna (se la regola viene valutata in base a una colonna) e a livello di dimensione. Utilizza i punteggi di qualità dei dati per normalizzare la qualità dei dati in tabelle o colonne, monitorare le tendenze e identificare i dati che non soddisfano i requisiti di qualità.

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

Monitoraggio e avvisi

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

  • Impostare 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:

    • L'origine dati utilizzata per l'analisi dei dati.
    • Dettagli di esecuzione del job, come 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 di configurazione, come nome della regola, tipo di regola, tipo di valutazione e dimensione.
    • Informazioni sui risultati, ad esempio superamento o errore, conteggio totale delle righe, conteggio delle righe superate, conteggio delle righe nulle e conteggio delle righe valutate.

    Le informazioni nei log sono disponibili tramite l'API e la consoleGoogle Cloud . Puoi utilizzare queste informazioni per configurare gli avvisi. Per maggiori informazioni, vedi Impostare avvisi in Logging.

  • Inviare report sulle notifiche 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

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

Risolvere i problemi relativi agli errori di qualità dei dati

Quando una regola non viene rispettata, Dataplex Universal Catalog produce una query per ottenere i record non riusciti. Esegui questa query per visualizzare i record che non corrispondono alla tua regola. Per maggiori informazioni, vedi Risolvere i problemi relativi a un errore di qualità dei dati.

Limitazioni

  • La pubblicazione dei risultati della scansione della qualità dei dati come metadati di Dataplex Universal Catalog non è supportata nella console Google Cloud .
  • I consigli sulle regole non sono supportati nella gcloud CLI.
  • La scelta delle dimensioni è fissa su una delle sette dimensioni predefinite.
  • Il numero di regole per scansione della qualità dei dati è limitato a 1000.
  • I punteggi di qualità dei dati riportati a livello di colonna sono supportati solo nell'API.

Prezzi

  • Il Catalogo universale Dataplex utilizza lo SKU di elaborazione premium per addebitare la qualità automatica dei dati. Per saperne di più, consulta la pagina Prezzi del Catalogo universale Dataplex.

  • L'elaborazione premium del Catalogo universale Dataplex per la qualità automatica dei dati viene fatturata al secondo con un minimo di un minuto.

  • Non sono previsti costi per le scansioni della qualità dei dati non riuscite.

  • L'addebito dipende dal numero di righe, dal numero di colonne, dalla quantità di dati analizzati, dalla configurazione delle regole di qualità dei dati, dalle impostazioni di partizionamento e clustering della tabella e dalla frequenza dell'analisi.

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

  • Per separare gli addebiti per la qualità dei dati dagli altri addebiti nello SKU di elaborazione premium del Catalogo universale Dataplex, nel report Cloud Billing 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