Questo documento descrive la qualità automatica dei dati Dataplex, che consente di definire e misurare la qualità dei dati. Puoi automatizzare l'analisi 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 i deployment come codice, migliorando l'integrità delle pipeline di produzione dei dati.
Puoi iniziare utilizzando i suggerimenti sulle regole per la profilazione dei dati Dataplex o creando regole personalizzate nella console Google Cloud. Dataplex offre monitoraggio, risoluzione dei problemi e avvisi di Cloud Logging integrati con la qualità dei dati automatici di Dataplex.
Modello concettuale
Una scansione dei dati è un job 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à automatica dei dati, crea un oggetto DataScan
di tipo data quality
. La scansione viene eseguita su una sola
tabella BigQuery. La scansione utilizza le risorse in un progetto tenant Google, quindi non è necessario configurare la tua infrastruttura.
La creazione e l'utilizzo di un'analisi della qualità dei dati prevedono i seguenti passaggi:
- Definizione della regola
- Esecuzione della regola
- Monitoraggio e avvisi
- Risoluzione dei problemi
Definizione della regola
Le regole sulla qualità dei dati associate a un'analisi della qualità dei dati definiscono le aspettative dei dati. Puoi creare regole sulla qualità dei dati nei seguenti modi:
- Utilizza i consigli della profilazione dei dati Dataplex
- Utilizza le regole predefinite
- Creare regole SQL personalizzate
Regole predefinite
Dataplex supporta due categorie di regole predefinite: a livello di riga o aggregate.
- A livello di riga
Per le regole delle categorie 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 soddisfano la regola è inferiore al valore della soglia, la regola ha esito negativo.
- Aggregazione
Per le regole aggregate, l'aspettativa viene applicata a un singolo valore aggregato nell'intero dato. Ad esempio,
Avg(someCol) >= 10
. Per superarlo, il controllo deve restituire il valore booleanotrue
. Le regole aggregate non forniscono un conteggio indipendente di superamento o errore 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.
Nella tabella seguente sono elencati 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 di aggregazione | Descrizione | Tipi di colonna supportati | Parametri specifici per le regole |
---|---|---|---|---|
RangeExpectation (Verifica intervallo) |
A livello di riga | Verifica che il valore sia compreso tra min e max. | Tutte le colonne di tipo numerico, data e ora. | Obbligatorie:
|
NonNullExpectation (Controllo null) |
A livello di riga | Verifica che i valori della colonna non siano NULL. | Tutti i tipi di colonna supportati. | Obbligatorie:
|
SetExpectation (Imposta controllo) |
A livello di riga | Verifica che i valori di una colonna siano uno dei valori specificati in un insieme. | Tutti i tipi di colonna supportati, tranne Record e Struct . |
Obbligatorie:
|
RegexExpectation (Controllo delle espressioni regolari) |
A livello di riga | Confronta i valori con un'espressione regolare specificata. | Stringa | Obbligatorie:
|
Uniqueness (Controllo univocità) |
Aggregazione | Verifica che tutti i valori di una colonna siano univoci. | Tutti i tipi di colonna supportati, tranne Record e Struct . |
Obbligatorie:
|
StatisticRangeExpectation (Controllo statistico) |
Aggregazione | Controlla se la misura statistica fornita corrisponde all'intervallo previsto. | Tutti i tipi di colonne numeriche supportati. | Obbligatorie:
|
Tipi di regole SQL personalizzate supportati
Le regole SQL offrono la flessibilità necessaria per espandere la convalida con una logica personalizzata. Queste regole sono disponibili nei seguenti tipi.
Tipo di regola | Regola a livello di riga o di aggregazione | Descrizione | Tipi di colonna supportati | Parametri specifici per le regole | Esempio |
---|---|---|---|---|---|
Condizione riga | A livello di riga | Specifica un'aspettativa per ogni riga definendo un'espressione SQL in una clausola L'espressione può includere un riferimento a un'altra tabella, ad esempio per creare controlli di integrità referenziali. |
Tutte le colonne | Obbligatorie:
|
grossWeight <= netWeight |
Espressione SQL aggregata | Aggregazione | Queste regole vengono eseguite una volta per tabella. Fornisci un'espressione SQL che restituisce come valore booleano L'espressione SQL può includere un riferimento a un'altra tabella utilizzando sottoquery di espressione. |
Tutte le colonne | Obbligatorie:
|
Esempio di aggregazione semplice: Utilizzo di una sottoquery di espressione per confrontare valori in una tabella diversa: |
Asserzione SQL | Aggregazione | Una regola delle asserzioni 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 in modo che restituisca righe che corrispondono allo stato non valido. Se la query restituisce delle righe, la regola ha esito negativo. 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 | Obbligatorie:
|
Semplice esempio aggregato per assicurarsi che Utilizzo di una sottoquery di espressione per confrontare valori in una tabella diversa: |
Ad esempio, consulta l'articolo Regole di esempio per la qualità dei dati automatica.
Per le funzioni SQL supportate, consulta la documentazione di riferimento di GoogleSQL.
Dimensioni
Le dimensioni consentono di aggregare i risultati di più regole sulla qualità dei dati per il monitoraggio e gli 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 dei valori vengono trasmessi all'API come valori stringa. Dataplex richiede che gli input seguano il formato specificato da BigQuery.
I parametri di tipo binario possono essere passati come stringa con codifica Base64.
Tipo | Formati supportati | Esempi |
---|---|---|
Proprietà binaria | Valore codificato Base64 | YXBwbGU= |
Timestamp | AAAA-[M]M-[D]G[( |T)[H]H:[M]M:[S]S[.F]] [time_zone] OPPURE AAAA-[M]M-[D]G[( |T)[H]H:[M]M:[S]S[.F]][time_zone_offset] |
27-09-2014 12:30:00.45-08 |
Data | AAAA-M[M]-G[D] | 2014-09-27 |
Ora di inizio | [H]H:[M]M:[S]S[.GGGG] | 12:30:00,45 |
DateTime | AAAA-[M]M-[D]G [[H]H:[M]M:[S]S[.GGGGGG]] | 27-09-2014 12:30:00.45 |
Parametro di riferimento dei dati
Quando crei una regola SQL personalizzata, puoi fare riferimento a una tabella di origine dati e a tutti i suoi filtri di precondizione utilizzando il parametro di riferimento dei dati ${data()}
nella regola, anziché menzionare esplicitamente la tabella di origine e i relativi filtri.
Esempi di filtri di precondizione includono i filtri di riga, le percentuali di campionamento e i filtri incrementali. Il parametro ${data()}
è sensibile alle maiuscole.
Ad esempio, supponiamo di avere una tabella dell'origine dati denominata
my_project_id.dim_dataset.dim_currency
. Vuoi eseguire un'analisi incrementale
della qualità dei dati che analizzi solo i nuovi dati giornalieri. Nella tabella è applicato un filtro di riga che filtra le voci di oggi, transaction_timestamp >= current_date()
.
Una regola SQL personalizzata per trovare le righe con discount_pct
per oggi 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 dei dati, puoi semplificare la regola:
discount_pct IN (SELECT discount_pct FROM ${data()})
Il parametro ${data()}
in questo esempio fa 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 dei dati si riferisce solo ai dati incrementali.
Quando utilizzi un alias in una sottoquery per fare riferimento alle colonne nella tabella di origine, utilizza il parametro di riferimento dei dati per fare riferimento alla tabella di origine oppure ometti il riferimento della tabella. Non fare riferimento alle colonne della tabella di origine utilizzando un
riferimento diretto alla tabella nella clausola WHERE
.
Consiglio:
Utilizza il parametro di riferimento dei dati:
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 della tabella:
discount_pct IN ( SELECT discount_pct FROM `my_project_id.dim_dataset.dim_currency` AS temp-table WHERE temp-table.transaction_timestamp = timestamp )
Sconsigliato:
Non utilizzare un riferimento diretto alla tabella:
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 le scansioni della qualità dei dati in modo che vengano eseguite a intervalli specifici oppure puoi eseguire un'analisi on demand. 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. Come parte della specifica di un'analisi 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 possa essere utilizzata come indicatore. In genere, questa è la colonna in base alla quale è partizionata la tabella.
Filtra dati
Dataplex può filtrare i dati da analizzare per la qualità dei dati utilizzando un filtro di riga. La creazione di un filtro di riga ti consente di concentrarti sui dati 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 filtrando i dati con un timestamp precedente a una determinata data.
Dati di esempio
Dataplex consente di specificare una percentuale dei record dei tuoi dati da campionare per eseguire un'analisi della qualità dei dati. La creazione di scansioni della qualità dei dati su un campione più ridotto di dati può ridurre i tempi di esecuzione e il costo di query sull'intero set di dati.
Monitoraggio e avvisi
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.
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 la scansione dei dati.
- Dettagli dell'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.
- Livello di dimensione superato o non superato.
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, tipo di regola, tipo di valutazione e dimensione.
- Informazioni sui risultati, come superamento o errore, conteggio totale delle righe, conteggio delle righe passato, conteggio delle righe nulle 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 saperne di più, consulta Impostare avvisi in Cloud Logging.
Risolvere gli errori
Quando una regola non va a buon fine, Dataplex produce una query che restituisce tutte le colonne della tabella (non solo quella con errori).
Limitazioni
- I risultati dell'analisi della qualità dei dati non vengono pubblicati in Data Catalog come tag.
- I suggerimenti sulle regole sono supportati solo nella console Google Cloud.
- La scelta delle dimensioni è fissata a una delle sette dimensioni predefinite.
- Il numero di regole per analisi della qualità dei dati è limitato a 1000.
Prezzi
Dataplex utilizza lo SKU di elaborazione premium per addebitare i costi della qualità dei dati automatici. Per ulteriori informazioni, consulta la sezione Prezzi di Dataplex.
La pubblicazione dei risultati sulla qualità dei dati automatici in Catalog non è ancora disponibile. Quando sarà disponibile, ti verrà addebitata la stessa tariffa dei prezzi di archiviazione dei metadati del catalogo. Consulta la pagina Prezzi per ulteriori dettagli.
L'elaborazione premium di Dataplex per la qualità automatica dei dati viene fatturata al secondo con un minimo di un minuto.
Non sono previsti costi per le analisi non riuscite della qualità dei dati.
L'addebito dipende dal numero di righe, dal numero di colonne, dalla quantità di dati analizzati, dalla configurazione della regola per la qualità dei dati, dalle impostazioni di partizionamento e clustering nella tabella e dalla frequenza della scansione gscan.
Esistono diverse opzioni per ridurre il costo delle scansioni automatiche della qualità dei dati:
Separa gli addebiti relativi alla qualità dei dati dagli altri addebiti nello SKU di elaborazione premium di Dataplex, utilizza l'etichetta
goog-dataplex-workload-type
con il valoreDATA_QUALITY
.Filtra 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
Che cosa succede dopo?
- Scopri come utilizzare la qualità automatica dei dati.
- Scopri di più sulla profilazione dei dati.
- Scopri come utilizzare la profilazione dei dati.