Questa guida spiega come attivare e utilizzare Dataplex Discovery. Discovery scansiona ed estrae i metadati dai dati in un data lake e li registra in Dataproc Metastore, BigQuery e Data Catalog per analisi, ricerca ed esplorazione.
Panoramica
Per ogni asset Dataplex con il rilevamento abilitato, Dataplex esegue le seguenti operazioni:
- Esegue la scansione dei dati associati alla risorsa.
- Raggruppa i file strutturati e semistrutturati in tabelle.
- Raccoglie metadati tecnici, come nome della tabella, schema e definizione della partizione.
Per i dati non strutturati, come immagini e video, Dataplex Discovery rileva e registra automaticamente i gruppi di file che condividono lo stesso tipo di media 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 schema e lo stesso formato dei dati.
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 commento non sono supportati).
Discovery supporta il seguente formato di compressione per dati strutturati e semistrutturati:
Compressione interna per i seguenti formati:
Compressione Esempio di estensione del file Formato supportato gzip .gz.parquet Parquet lz4 .lz4.parquet Parquet Snappy .snappy.parquet Parquet, ORC, Avro lzo .lzo.parquet Parquet, ORC Compressione esterna per file JSON e CSV:
- gzip
- bzip2
Configurazione rilevamento
La scoperta è attiva per impostazione predefinita quando crei una nuova zona o un nuovo asset. Puoi disattivare la rete discovery 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 eseguire l'override delle impostazioni di rilevamento a livello di asset.
Di seguito sono riportate le opzioni di configurazione di Discovery disponibili a livello di zona e asset:
Rilevamento attivo e non attivo
Pianificazione della scoperta: questa opzione può essere impostata su una programmazione predefinita, ad esempio ogni ora o ogni giorno, oppure su una programmazione personalizzata definita in formato cron. I nuovi asset vengono analizzati quando vengono aggiunti. Per ulteriori informazioni, consulta Configurare le pianificazioni cron. Consigliato: pianifica la pubblicazione della campagna discovery ogni ora o meno frequentemente.
Pattern di inclusione o esclusione: definisci i file da includere o escludere dalle scansioni di rilevamento utilizzando i pattern glob nel percorso di inclusione o esclusione. Ad esempio, se vuoi escludere
gs://test_bucket/foo/..
dalla scoperta, inserisci**/foo/*
come percorso di esclusione. Le virgolette causano errori. Assicurati di inserire**/foo/*
anziché"**/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 l'accuratezza dei risultati di Discovery.
Per i file CSV, puoi fornire uno dei seguenti elementi:
Delimitatore: questo campo accetta un 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
. Quando il valore è0
, Discovery esegue l'inferenza dell'intestazione e, se viene rilevata un'intestazione, estrae i nomi delle colonne dall'intestazione e reimposta il valore su1
.Codifica: questo campo accetta i nomi delle codifiche di stringa, ad esempio
UTF-8
,US-ASCII
oISO-8859-1
. Se non viene specificato nulla, viene utilizzatoUTF-8
come valore predefinito.Disattiva inferenza dei tipi:questo campo accetta un valore booleano. Per impostazione predefinita è impostato su
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 delle codifiche di stringa, ad esempio
UTF-8
,US-ASCII
oISO-8859-1
. Se non viene specificato nulla, viene utilizzatoUTF-8
come valore predefinito.Disattiva l'inferenza del tipo di dati:questo campo accetta un valore booleano. Per impostazione predefinita è impostato su
false
. Per i dati JSON, se disattivi l'inferenza del tipo, tutte le colonne vengono registrate come tipi primitivi (stringa, numero o booleano).
Pubblicare i metadati
Quando crei una zona di dati nel lake Dataplex, Dataplex crea un set di dati BigQuery nel progetto contenente il lake. Dataplex pubblica le tabelle nel set di dati per le tabelle rilevate nei bucket Cloud Storage aggiunti alla zona di dati come asset. Il set di dati è denominato set di dati di pubblicazione dei metadati corrispondente alla zona.
Ogni zona di dati Dataplex viene mappata a un set di dati in BigQuery o a un database in Dataproc Metastore, dove le informazioni sui metadati vengono rese disponibili automaticamente.
Puoi modificare i metadati rilevati automaticamente, come il nome o lo schema della tabella, utilizzando l'API di metadati Dataplex.
Visualizza le tabelle e i set di file rilevati
Puoi cercare tabelle e set di file rilevati nella visualizzazione Cerca di Dataplex nella console Google Cloud.
Per risultati di ricerca più accurati, utilizza filtri specifici di Dataplex, come i nomi dei lake e delle zone di dati. I 50 elementi principali per ogni aspetto vengono visualizzati nell'elenco dei filtri. Puoi trovare eventuali altri elementi utilizzando la casella di ricerca.
Ogni voce contiene metadati tecnici e operativi dettagliati.
Nella pagina dei dettagli della voce, puoi eseguire query sulla tabella in BigQuery e visualizzare i dettagli di registrazione di Dataproc Metastore corrispondenti.
Se una tabella Cloud Storage può essere pubblicata in BigQuery come tabella esterna, nella visualizzazione dei dettagli della voce puoi vedere quanto segue:
- Riferimenti alle tabelle esterne BigQuery
- Un pulsante per Apri in BigQuery per iniziare ad analizzare i dati in BigQuery
Le voci dei metadati Dataplex sono direttamente visibili e cercabili in Data Catalog. Per scoprire di più, consulta il riferimento alla ricerca Data Catalog.
Tutte le voci rilevate possono essere visualizzate tramite l'API di metadati Dataplex.
Azioni di rilevamento
Discovery genera le seguenti azioni di 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 diversi formati con lo stesso prefisso della tabella.
Formato dei dati non valido nelle zone selezionate (dati non in formato Avro, Parquet o ORC).
Schema non compatibile
Le azioni includono:
Uno schema rilevato da Discovery non è compatibile con lo schema della tabella attivo nell'API di metadati in Dataproc Metastore. Gli schemi A e B non sono compatibili nei seguenti casi:
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 null non trovato nell'altro schema.
Deviazione dello schema rispetto a uno schema gestito dall'utente nella zona selezionata.
Definizione della partizione non valida
Le azioni includono:
Denominazione delle partizioni non coerente. Ad esempio,
gs://sales_data/year=2020/month=10/day=01
egs://sales_data/year=2020/region=us
.Denominazione delle partizioni in stile non Hive nella zona di dati selezionati. Ad esempio,
gs://sales_data/2020/10/01
anzichégs://sales_data/year=2020/month=10/day=01
.
Dati mancanti
Le azioni includono:
- Nella zona dei dati selezionati, i dati sottostanti di una tabella o di un set di file registrati non esistono più. In altre parole, è stata scoperta e registrata una tabella o un set di file di zone selezionate, ma in un secondo momento i dati sottostanti sono stati eliminati. Puoi risolvere il problema reintegrando i dati o eliminando la voce dei metadati.
Risolvere le azioni di discovery
I dati con azioni vengono controllati dalle successive scansioni di Discovery. Quando il problema che attiva l'azione viene risolto, l'azione viene risolta automaticamente dalla successiva scansione del rilevamento pianificata.
Altre azioni di Discovery
Oltre alle azioni di rilevamento precedenti, in Dataplex sono disponibili altri tre tipi di azioni relative allo stato delle risorse e alla propagazione delle norme di sicurezza.
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 Discovery o applicare criteri di sicurezza al bucket o al set di dati gestito da Dataplex
Problemi di propagazione dei criteri di sicurezza: i criteri di sicurezza specificati per un determinato lake, una determinata zona o un determinato asset non sono stati propagati correttamente ai bucket o ai set di dati sottostanti. Mentre tutte le altre azioni si verificano a livello di asset, questo tipo di azione può essere attivato a livello di lago, zona e asset.
Questi tipi di azioni vengono risolti automaticamente quando i problemi di configurazione della sicurezza o della risorsa sottostante vengono corretti.
Domande frequenti
Che cosa devo fare se lo schema dedotto da Discovery non è corretto?
Se lo schema dedotto è diverso da quello previsto per una determinata tabella, puoi eseguire l'override aggiornando i metadati utilizzando l'API di metadati.
Assicurati di impostare
userManaged
su true
in modo che la modifica non venga sovrascritta nelle successive
analisi di Discovery.
Come faccio a escludere i file da una ricerca di Discovery?
Per impostazione predefinita, Discovery 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_
, followed by a number - Directory che iniziano con
.
Puoi specificare altri pattern di inclusione o esclusione utilizzando la configurazione di Discovery a livello di zona o asset oppure l'API di metadati.
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, i motivi potrebbero essere diversi:
Esistono differenze di formato, ad esempio una combinazione di file Avro e Parquet, nel percorso principale della tabella previsto che suddivide la tabella in raggruppamenti più piccoli.
Esistono diversi tipi di incompatibilità dello schema nel percorso della tabella principale previsto, 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 della radice della tabella abbiano un formato coerente e uno schema compatibile.
Escludi i file eterogenei utilizzando la configurazione del pattern di esclusione nell'ambito della configurazione della zona / della risorsa o dell'API di metadati.
Dopo aver eseguito uno dei passaggi correttivi, nella successiva scansione del rilevamento si verifica quanto segue:
- Le tabelle di livello inferiore esistenti vengono rimosse automaticamente dall'API di metadati Dataplex, da BigQuery, da Dataproc Metastore e da Data Catalog.
- Viene creata una nuova tabella di livello superiore con il percorso radice della tabella previsto.
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 il rilevamento è abilitato per un determinato asset, non è necessario registrare manualmente le voci in Dataproc Metastore o BigQuery.
Puoi definire manualmente il nome della tabella, lo schema e le definizioni delle partizioni, disattivando al contempo Dataplex Discovery. In alternativa, puoi procedere nel seguente modo:
- Crea una tabella specificando solo le informazioni richieste, ad esempio il percorso radice della tabella.
- Utilizza Dataplex Discovery per compilare il resto dei metadati, ad esempio le definizioni di schema e partizione.
- Mantieni aggiornati i metadati.
Cosa devo fare se la mia tabella non viene visualizzata in BigQuery?
Sebbene tutti i metadati di Dataplex siano registrati centralmente nell'API dei metadati, solo le tabelle Cloud Storage compatibili con BigQuery vengono pubblicate in BigQuery come tabelle esterne. Nell'ambito dei dettagli delle voci di tabella nell'API di metadati, puoi trovare un indicatore di compatibilità BigQuery che indica quali entità vengono pubblicate in BigQuery e perché.
Limitazioni
- Le tabelle esterne, incluse le tabelle esterne BigLake, non sono supportate da Discovery. Tuttavia, le tabelle esterne vengono importate automaticamente in Dataplex Catalog e puoi cercarle in Dataplex Catalog.
Passaggi successivi
- Scopri come utilizzare i metadati.