Questa guida spiega come abilitare e utilizzare Dataplex Discovery. Discovery scansiona ed estrae i metadati dai dati in un data lake e li registra a Dataproc Metastore, BigQuery e Data Catalog per l'analisi, la ricerca e l'esplorazione.
Panoramica
Per ogni asset Dataplex con l'opzione Discovery abilitata, Dataplex esegue le seguenti operazioni:
- Scansiona i dati associati all'asset.
- Raggruppa i file strutturati e semistrutturati in tabelle.
- Raccoglie metadati tecnici, come il nome della tabella, lo schema e la definizione della partizione.
Per i dati non strutturati, come immagini e video, Dataplex Discovery rileva e registra automaticamente i gruppi di file che condividono il tipo multimediale come set di file. Ad esempio, se gs://images/group1
contiene immagini GIF e gs://images/group2
contiene immagini JPEG, Dataplex Discovery rileva e registra due set di file. Per i dati strutturati, come Avro, Discovery rileva i file solo se si trovano in cartelle che contengono lo stesso formato dei dati e lo stesso schema.
Le tabelle e i set di file rilevati vengono registrati in Data Catalog per la ricerca e il rilevamento. Le tabelle vengono visualizzate in Dataproc Metastore come tabelle in stile Hive e in BigQuery come tabelle esterne, in modo che i dati vengano resi automaticamente disponibili per l'analisi.
Discovery supporta i seguenti formati di dati strutturati e semistrutturati:
- Parquet
- Avro
- ORC
- JSON (solo il formato delimitato da nuova riga)
- CSV (i file CSV con righe di commenti non sono supportati).
Discovery supporta il seguente formato di compressione per i dati strutturati e semistrutturati:
Compressione interna per questi formati:
Compressione Esempio di estensione file Formato supportato gzip .gz.parquet Parquet lz4 .lz4.parquet Parquet Rapido .snappy.parquet Parquet, ORC, Avro lzo .lzo.parquet Parquet, ORC Compressione esterna per file JSON e CSV:
- gzip
- bzip2
Configurazione rilevamento
Il rilevamento è abilitato per impostazione predefinita quando crei una nuova zona o un nuovo asset. Puoi disattivare il rilevamento a livello di zona o asset.
Quando crei una zona o un asset, puoi scegliere di ereditare le impostazioni di rilevamento a livello di zona o di sostituire le impostazioni di rilevamento a livello di asset.
Ecco le opzioni di configurazione di Discovery disponibili a livello di zona e di asset:
Rilevamento On e Off.
Pianificazione di rilevamento: questa opzione può essere impostata su una pianificazione predefinita, ad esempio orari oppure giornaliera o una pianificazione personalizzata definita dal formato cron. I nuovi asset vengono analizzati quando vengono aggiunti. Per ulteriori informazioni, consulta la pagina sulla configurazione delle pianificazioni cron. Consigliato: programma l'esecuzione del rilevamento ogni ora o meno.
Includi o escludi pattern: definisci i file da includere o escludere dalle scansioni di individuazione utilizzando i pattern glob nel percorso di inclusione o esclusione. Ad esempio, se vuoi escludere
gs://test_bucket/foo/..
dal rilevamento, inserisci**/foo/*
come percorso di esclusione. Le virgolette causano errori. Assicurati di inserire**/foo/*
invece di"**/foo/*"
. Questa funzione è disponibile solo per gli asset Cloud Storage. Quando esistono contemporaneamente entrambi i pattern di inclusione ed esclusione, quelli di esclusione vengono applicati per primi.Specifiche JSON o CSV: ti consentono di fornire informazioni aggiuntive sui dati semistrutturati, come CSV e JSON, per migliorare la precisione dei risultati di rilevamento.
Per i file CSV, puoi fornire uno dei seguenti elementi:
Delimitatore: questo campo accetta un solo carattere, ad eccezione di
\r
e\n
. Se viene fornito più di un carattere, viene utilizzato solo il primo carattere della stringa. Se non viene fornito, Discovery utilizza una virgola come delimitatore.Numero di righe di intestazione: questo campo accetta il valore
0
o1
. Il valore predefinito è0
. Se il valore è0
, Discovery esegue l'inferenza dell'intestazione e, se viene rilevata un'intestazione, Discovery estrae i nomi delle colonne dall'intestazione e reimposta il valore su1
.Codifica: questo campo accetta i nomi di codifica delle stringhe, come
UTF-8
,US-ASCII
oISO-8859-1
. Se non viene specificato nulla, viene utilizzato il valore predefinitoUTF-8
.Disabilita tipo di inferenza: questo campo accetta un valore booleano. Il valore predefinito è
false
. Per i dati CSV, se disattivi l'inferenza del tipo, tutte le colonne vengono registrate come stringhe.
Per i file JSON, puoi fornire uno dei seguenti elementi:
Codifica: questo campo accetta i nomi di codifica delle stringhe, come
UTF-8
,US-ASCII
oISO-8859-1
. Se non viene specificato alcun valore, viene utilizzato il valore predefinitoUTF-8
.Disattiva l'inferenza del tipo di dati: questo campo accetta un valore booleano. Il valore predefinito è
false
. Per i dati JSON, se disabiliti l'inferenza del tipo, tutte le colonne vengono registrate come tipi primitivi (stringa, numero o booleano).
Pubblicare i metadati
Quando crei una zona dati nel tuo data lake, Dataplex crea un set di dati BigQuery nel progetto contenente il lake. Dataplex pubblica le tabelle in quel set di dati per le tabelle scoperte nei bucket Cloud Storage aggiunti alla zona dati come asset. Il set di dati è indicato come set di dati di pubblicazione di metadati corrispondente alla zona.
Ogni zona dati Dataplex viene mappata a un set di dati in BigQuery o a un database in Dataproc Metastore, in cui le informazioni sui metadati vengono rese automaticamente disponibili.
Puoi modificare i metadati rilevati automaticamente, ad esempio il nome o lo schema della tabella, utilizzando l'API di metadati Dataplex.
Visualizza tabelle e set di file rilevati
Puoi cercare le tabelle e i set di file rilevati nella visualizzazione Ricerca di Dataplex nella console Google Cloud.
Per risultati di ricerca più precisi, utilizza filtri specifici di Dataplex, come i nomi dei data lake e delle zone di dati. I primi 50 elementi per facet vengono visualizzati nell'elenco dei filtri. Puoi trovare altri elementi utilizzando la casella di ricerca.
Ogni voce contiene metadati tecnici e operativi dettagliati.
Dalla pagina dei dettagli della voce, puoi eseguire query sulla tabella in BigQuery e visualizzare i dettagli di registrazione Dataproc Metastore.
Se una tabella di Cloud Storage può essere pubblicata in BigQuery come tabella esterna, nella visualizzazione dei dettagli della voce vedrai quanto segue:
- Riferimenti tabella esterna BigQuery
- Un pulsante Apri in BigQuery per iniziare l'analisi dei dati.
Le voci di metadati Dataplex sono direttamente visibili e disponibili per la ricerca in Data Catalog. Per scoprire di più, consulta il riferimento per la ricerca in Data Catalog.
Tutte le voci rilevate possono essere visualizzate tramite l'API di metadati Dataplex.
Azioni di scoperta
Discovery rileva le seguenti azioni dell'amministratore ogni volta che vengono rilevati problemi relativi ai dati durante le scansioni.
Formato dei dati non valido
Le azioni includono:
Formato dei dati incoerente in una tabella. Ad esempio, esistono file di formati diversi con lo stesso prefisso della tabella.
Formato dei dati non valido nelle zone curate (i dati non nei formati Avro, Parquet o ORC).
Schema non compatibile
Le azioni includono:
Uno schema rilevato da Discovery non è compatibile con lo schema di tabella attiva nell'API di metadati in Dataproc Metastore. Schema A e schema B non sono compatibili se:
A e B condividono campi con lo stesso nome, ma di tipi di dati diversi e incompatibili. Ad esempio stringa e numero intero.
A e B non hanno campi sovrapposti.
A e B hanno almeno un campo non nullo non trovato nell'altro schema.
Deviazione dello schema rispetto a uno schema gestito dall'utente nella zona organizzata.
Definizione di partizione non valida
Le azioni includono:
Denominazione della partizione incoerente. Ad esempio,
gs://sales_data/year=2020/month=10/day=01
egs://sales_data/year=2020/region=us
.Nome della partizione con stile non Hive nella zona dati selezionata. Ad esempio,
gs://sales_data/2020/10/01
invece digs://sales_data/year=2020/month=10/day=01
.
Dati mancanti
Le azioni includono:
- Nella zona dati selezionata, i dati sottostanti per una tabella o un set di file registrato non esistono più. In altre parole, una tabella o un set di file selezionato è stato rilevato e registrato, ma in seguito sono stati eliminati i dati sottostanti. Puoi risolvere il problema reintegrando i dati o eliminando la voce di metadati.
Risolvi le azioni di rilevamento
I dati con azioni vengono controllati dalle scansioni di rilevamento successive. Una volta risolto il problema che attiva l'azione, l'azione viene risolta automaticamente dalla successiva scansione Discovery pianificata.
Altre azioni
Oltre alle precedenti azioni Discovery, esistono altri tre tipi di azioni relative allo stato delle risorse e alle propagazioni dei criteri di sicurezza in Dataplex.
Risorsa mancante: non è stato trovato il bucket o il set di dati sottostante corrispondente a un asset esistente.
Risorsa non autorizzata: Dataplex non dispone delle autorizzazioni sufficienti per eseguire il rilevamento o applicare criteri di sicurezza al bucket o al set di dati gestito da Dataplex
Problemi di propagazione dei criteri di sicurezza: non è stato possibile propagare i criteri di sicurezza specificati per un lake, una zona o un asset specifici nei bucket o nei set di dati sottostanti. Anche se tutte le altre azioni sono a livello di asset, questo tipo di azione potrebbe essere aumentata a livello di lake, zona e asset.
Questi tipi di azioni vengono risolti automaticamente quando vengono risolti i problemi di configurazione di sicurezza o delle risorse sottostanti.
Domande frequenti
Cosa devo fare se lo schema dedotto da Discovery non è corretto?
Se lo schema dedotto è diverso da quello previsto per una determinata tabella, puoi sostituire lo schema dedotto aggiornando i metadati utilizzando l'API di metadati.
Assicurati di impostare userManaged
su true
in modo che la modifica non venga sovrascritta nelle scansioni di rilevamento successive.
Come faccio a escludere i file da un'analisi di rilevamento?
Per impostazione predefinita, Discovery non esclude dalla scansione determinati tipi di file, tra cui:
_SUCCESS
_started
_committed
_metadata
,_METADATA
,_Metadata
_common_metadata
,_COMMON_METADATA
- File che iniziano con
README
oreadme
- Directory che iniziano con
base_
,delta_
,delete_delta_
,bucket_
, seguite da un numero - Directory che iniziano con
.
Puoi specificare pattern di inclusione o esclusione aggiuntivi utilizzando la configurazione di rilevamento a livello di zona o di asset oppure utilizzando l'API di metadati.
Che cosa devo fare se il raggruppamento delle tabelle rilevato da Discovery è troppo granulare?
Se le tabelle rilevate da Discovery sono a un livello più granulare rispetto al percorso principale della tabella, ad esempio, ogni singola partizione è registrata come tabella e i motivi potrebbero essere diversi:
Nel percorso principale della tabella previsto esistono differenze di formato, ad esempio una combinazione di file Avro e Parquet, che suddividono la tabella in raggruppamenti più piccoli.
Nel percorso principale previsto per la tabella sono previsti diversi tipi di incompatibilità degli schemi, che suddividono la tabella in raggruppamenti più piccoli.
Puoi risolvere il problema in uno dei seguenti modi:
Correggi le differenze di formato o schema in modo che tutti i file nello stesso percorso principale della tabella abbiano un formato coerente e uno schema compatibile.
Escludi i file eterogenei utilizzando la configurazione del pattern di esclusione come parte della configurazione della zona / asset o dell'API dei metadati.
Dopo aver eseguito uno dei passaggi correttivi, nella scansione di rilevamento successiva si verifica quanto segue:
- Le tabelle di livello inferiore esistenti vengono rimosse automaticamente dall'API di metadati Dataplex, BigQuery, Metastore Dataproc e Data Catalog.
- Viene creata una nuova tabella di livello superiore con il percorso principale previsto per la tabella.
Come faccio a specificare i nomi delle tabelle?
Puoi specificare i nomi delle tabelle utilizzando l'API di metadati.
Cosa succede se creo le tabelle manualmente in Dataproc Metastore o BigQuery?
Quando Discovery è abilitato per un determinato asset, non è necessario registrare manualmente le voci in Dataproc Metastore o BigQuery.
Puoi definire manualmente le definizioni del nome, dello schema e della partizione della tabella, disattivando Dataplex Discovery. In alternativa, procedi nel seguente modo:
- Crea una tabella specificando solo le informazioni richieste, ad esempio il percorso principale della tabella.
- Utilizza Dataplex Discovery per completare il resto dei metadati, ad esempio le definizioni di schema e partizione.
- Mantieni aggiornati i metadati.
Che cosa devo fare se la mia tabella non viene visualizzata in BigQuery?
Sebbene i metadati Dataplex siano tutti registrati a livello centrale nell'API di metadati, solo le tabelle Cloud Storage compatibili con BigQuery vengono pubblicate in BigQuery come tabelle esterne. Nei dettagli delle voci di tabella nell'API di metadati, puoi trovare un indicatore di compatibilità BigQuery che indica quali entità sono pubblicate in BigQuery e perché.
Che cosa succede dopo?
- Scopri come utilizzare i metadati.