Scoprire e catalogare i dati di Cloud Storage
Questo documento spiega come utilizzare il rilevamento automatico dei dati di Cloud Storage.
Il rilevamento automatico di Dataplex è una funzionalità di BigQuery che consente di eseguire la scansione dei dati nei bucket Cloud Storage per estrarre e poi catalogare i metadati. Nell'ambito della scansione, il rilevamento automatico crea tabelle BigLake o esterne per i dati strutturati e tabelle di oggetti per i dati non strutturati, che potrai poi utilizzare per l'analisi e l'AI. Le tabelle vengono catalogate automaticamente in Dataplex Catalog, dove puoi cercarle o sfogliarle.
Per utilizzare il rilevamento automatico dei dati di Cloud Storage, crea ed esegui un'analisi di rilevamento.
Panoramica
Una scansione del rilevamento esegue le seguenti operazioni:
- Scansiona i dati nel bucket o nel percorso Cloud Storage.
- Raggruppa i file strutturati e semistrutturati in tabelle.
- Raccoglie i metadati, ad esempio il nome della tabella, lo schema e la definizione della partizione.
- Crea e aggiorna tabelle BigLake, esterne o di oggetti in BigQuery utilizzando la definizione di schema e partizione.
Per i dati non strutturati, come immagini e video, la ricerca di elementi
rileva e registra gruppi di file che condividono lo stesso tipo di media delle
tabelle di oggetti BigLake. Ad esempio, se gs://images/group1
contiene immagini GIF e gs://images/group2
contiene immagini JPEG, la ricerca dei set di file rileva e registra due set di file.
Per i dati strutturati, come Avro, la ricerca di elementi registra gruppi di file come tabelle esterne BigLake e rileva i file solo se si trovano in cartelle che contengono lo stesso formato di dati e lo stesso schema compatibile.
La ricerca di informazioni supporta i seguenti formati di dati strutturati e semistrutturati:
- Parquet
- Avro
- ORC
- JSON (solo il formato delimitato da nuova riga)
- CSV (ma non i file CSV con righe di commento)
La scansione di scoperta supporta i seguenti formati di compressione per i 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
Le tabelle rilevate vengono registrate in BigQuery come tabelle esterne BigLake, tabelle di oggetti BigLake o tabelle esterne. In questo modo, i dati saranno disponibili per l'analisi in BigQuery. È attivata anche la memorizzazione nella cache dei metadati per le tabelle BigLake e le tabelle degli oggetti. Tutte le tabelle BigLake vengono importate automaticamente in Dataplex Catalog per la ricerca e il rilevamento.
Prima di iniziare
Assicurati di disporre delle autorizzazioni Identity and Access Management (IAM) necessarie per eseguire le attività descritte in questo documento.
Ruoli richiesti per l'account di servizio
Prima di iniziare, assegna le autorizzazioni IAM all'account di servizio Dataplex nel tuo progetto:
service-PROJECT_NUMBER@gcp-sa-dataplex.iam.gserviceaccount.com
Sostituisci PROJECT_NUMBER
con il progetto in cui è abilitata l'API Dataplex.
Per assicurarti che l'account di servizio Dataplex disponga delle autorizzazioni necessarie per eseguire una ricerca di dati, chiedi all'amministratore di concedere all'account di servizio Dataplex i seguenti ruoli IAM:
-
Utente BigQuery (
roles/bigquery.user
) nel progetto dell'origine dati -
Storage Object Viewer (
roles/storage.objectViewer
) nel bucket dell'origine dati -
Fornisci una connessione:
Amministratore connessione BigQuery (
roles/bigquery.connectionAdmin
)
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Questi ruoli predefiniti contengono le autorizzazioni necessarie per eseguire una scansione del rilevamento. Per visualizzare le autorizzazioni esatte richieste, espandi la sezione Autorizzazioni richieste:
Autorizzazioni obbligatorie
Per eseguire una scansione discovery sono necessarie le seguenti autorizzazioni:
-
bigquery.datasets.create
nel progetto dell'origine dati -
storage.buckets.get
nel bucket dell'origine dati -
storage.objects.get
nel bucket dell'origine dati -
storage.objects.list
nel bucket dell'origine dati -
bigquery.datasets.get
nel progetto dell'origine dati -
Fornisci una connessione:
-
bigquery.connections.delegate
-
bigquery.connections.use
-
L'amministratore potrebbe anche assegnare all'account di servizio Dataplex queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Ruoli richiesti per gli utenti finali
Per assicurarti di disporre delle autorizzazioni necessarie per utilizzare l'API DataScan, chiedi all'amministratore di concederti i seguenti ruoli IAM:
-
Accesso completo alle risorse DataScan:
Dataplex DataScan Administrator (
roles/dataplex.dataScanAdmin
) nel tuo progetto -
Accesso in scrittura alle risorse DataScan:
Dataplex DataScan Editor (
roles/dataplex.dataScanEditor
) nel tuo progetto -
Accesso in lettura alle risorse DataScan, esclusi i risultati:
Dataplex DataScan Viewer (
roles/dataplex.dataScanViewer
) nel tuo progetto -
Accesso in lettura alle risorse DataScan, inclusi i risultati:
Dataplex DataScan DataViewer (
roles/dataplex.dataScanDataViewer
) nel tuo progetto
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Questi ruoli predefiniti contengono le autorizzazioni necessarie per utilizzare l'API DataScan. Per visualizzare le autorizzazioni esatte richieste, espandi la sezione Autorizzazioni richieste:
Autorizzazioni obbligatorie
Per utilizzare l'API DataScan sono necessarie le seguenti autorizzazioni:
-
Crea una scansione dei dati:
dataplex.datascans.create
nel tuo progetto -
Eliminare un'analisi dei dati:
dataplex.datascans.delete
nel tuo progetto o in una risorsa di DataScan -
Visualizza i dettagli di DataScan escludendo i risultati:
dataplex.datascans.get
sul proiettore una risorsa DataScan -
Visualizza i dettagli di DataScan, inclusi i risultati:
dataplex.datascans.getData
nel tuo progetto o in una risorsa DataScan -
Elenca i DataScan:
dataplex.datascans.list
nel tuo progetto o in una risorsa DataScan -
Esegui una scansione DataScan:
dataplex.datascans.run
nel tuo progetto o in una risorsa DataScan -
Aggiorna la descrizione di un'analisi DataScan:
dataplex.datascans.update
sul proiettore una risorsa DataScan -
Visualizza le autorizzazioni IAM di DataScan:
dataplex.datascans.getIamPolicy
nel tuo progetto o in una risorsa DataScan -
Imposta le autorizzazioni IAM su DataScan:
dataplex.datascans.setIamPolicy
nel tuo progetto o in una risorsa DataScan
L'amministratore potrebbe anche essere in grado di concederti queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Creare una scansione di rilevamento
Per rilevare i dati, devi creare ed eseguire un'analisi di rilevamento. Puoi impostare una pianificazione per la scansione o eseguirla su richiesta. Per creare ed eseguire una scansione di rilevamento, devi disporre dell'autorizzazione dataplex.datascans.create
.
Quando viene eseguita la ricerca, viene creato un nuovo set di dati in BigQuery corrispondente al bucket Cloud Storage sottoposto a scansione. Il nome del set di dati BigQuery è uguale al nome del bucket Cloud Storage. I caratteri non validi nel nome del bucket vengono sostituiti da un trattino basso. Se il nome del set di dati non è disponibile, viene aggiunto un suffisso (ad esempio _discovered_001
). Il set di dati contiene le tabelle esterne BigLake o non BigLake create dalla ricerca di elementi per ulteriori analisi.
Console
Nella console Google Cloud, vai alla pagina BigQuery.
In Explorer, fai clic su
Aggiungi.Nel riquadro Aggiungi della sezione Origini più utilizzate, fai clic su Crea automaticamente tabelle esterne e BigLake da GCS.
Nel riquadro Crea tabella della sezione Origine, configura i seguenti dettagli sui dati da sottoporre a scansione:
- Inserisci un nome per la scansione.
- Nel campo ID scansione, inserisci un ID univoco che rispetti la convenzione di denominazione delle risorse. Se non fornisci un ID, la ricerca di contenuti genera l'ID scansione.
- (Facoltativo) Fornisci una descrizione della scansione.
- Per specificare il bucket Cloud Storage contenente i file da eseguire sulla scansione, nel campo Bucket, vai al bucket e selezionalo.
(Facoltativo) Definisci i dati da includere o escludere dalla scansione di rilevamento fornendo un elenco di pattern glob.
- Includi: se deve essere eseguita la scansione di un solo sottoinsieme di dati, fornisci un elenco di pattern glob corrispondenti agli oggetti da includere.
- Escludi: fornisci un elenco di pattern glob corrispondenti agli oggetti da escludere.
Ad esempio, se vuoi escludere
gs://test_bucket/foo/..
dalla ricerca di risorse, inserisci**/foo/*
come percorso di esclusione. Le virgolette causano errori. Assicurati di inserire**/foo/*
anziché"**/foo/*"
.Se fornisci sia pattern di inclusione che pattern di esclusione, i pattern di esclusione vengono applicati per primi.
Per creare tabelle BigLake dai dati sottoposti a scansione, nel campo ID connessione, fornisci l'ID connessione della risorsa Google Cloud. Per ulteriori informazioni, consulta la pagina Connessioni delle risorse Google Cloud.
Se non fornisci un ID connessione alla risorsa, la scansione di rilevamento crea tabelle esterne non BigLake.
Nella sezione Frequenza di rilevamento, configura la frequenza di esecuzione della scansione di rilevamento:
Ripeti: la scansione viene eseguita in base a una pianificazione predefinita. Fornisci l'ora di inizio, i giorni per eseguire la scansione e la frequenza, ad esempio ogni ora.
On demand: la scansione viene eseguita su richiesta.
(Facoltativo) Nella sezione Specifiche JSON o CSV, specifica come deve essere elaborata la scansione dei file JSON e CSV. Fai clic su Specifiche JSON o CSV.
- Per configurare le opzioni JSON, seleziona Abilita opzioni di analisi JSON.
- Disattiva inferenza dei tipi: indica se la ricerca di elementi deve inferire i tipi di dati durante la scansione dei dati. Se disattivi l'inferenza del tipo per i dati JSON, tutte le colonne vengono registrate come tipi primitivi, ad esempio stringa, numero o booleano.
- Formato di codifica: la codifica dei caratteri dei dati, ad esempio UTF-8, US-ASCII o ISO-8859-1. Se non specifichi un valore, viene utilizzato UTF-8 come valore predefinito.
- Per configurare le opzioni CSV, seleziona Abilita opzioni di analisi CSV.
- Disattiva inferenza dei tipi: indica se la ricerca di elementi deve inferire i tipi di dati durante la scansione dei dati. Se disattivi l'inferenza del tipo per i dati CSV, tutte le colonne vengono registrate come stringhe.
- Righe di intestazione: il numero di righe di intestazione,
0
o1
. Se specifichi il valore0
, la ricerca di elementi deduce le intestazioni ed estrae i nomi delle colonne dal file. Il valore predefinito è0
. - Carattere delimitatore di colonna: il carattere utilizzato per separare i valori. Fornisci un singolo carattere,
\r
(ritorno a capo) o\n
(nuova riga). Il valore predefinito è una virgola (,
). - Formato di codifica: la codifica dei caratteri dei dati, ad esempio
UTF-8
,US-ASCII
oISO-8859-1
. Se non specifichi un valore, viene utilizzato UTF-8 come valore predefinito.
- Per configurare le opzioni JSON, seleziona Abilita opzioni di analisi JSON.
Al termine della configurazione della ricerca dei dati, fai clic su Crea (per una ricerca pianificata) o su Esegui ora (per una ricerca su richiesta).
Una scansione pianificata viene eseguita in base alla pianificazione impostata.
Una scansione on demand viene eseguita una volta inizialmente quando la crei e puoi eseguire la scansione in qualsiasi momento. L'esecuzione della ricerca può richiedere diversi minuti.
REST
Per creare una ricerca di risorse, utilizza il metodo dataScans.create
.
Monitorare una scansione discovery
Per monitorare i risultati di una ricerca di risorse, puoi eseguire query sui log creati quando viene eseguita una ricerca.
Console
Nella console Google Cloud, vai alla pagina Esplora log.
Nella visualizzazione Esplora log, individua la scheda Query.
Fai clic sul menu Risorsa.
Seleziona Cloud Dataplex DataScan. Fai clic su Applica.
Fai clic sul menu Nome log.
Nel campo Nomi dei log di ricerca, inserisci
dataplex.googleapis.com%2Fdata_scan
. Seleziona data_scan e fai clic su Applica.(Facoltativo) Filtra i log in base a un ID o a una posizione di scansione dei dati specifici aggiungendo i seguenti filtri nella query del log:
resource.type="dataplex.googleapis.com/DataScan" AND resource.labels.resource_container="projects/PROJECT_ID" AND resource.labels.datascan_id="DATA_SCAN_ID"
Sostituisci quanto segue:
PROJECT_ID
: il tuo ID progetto Google CloudDATA_SCAN_ID
: l'ID DataScan
Fai clic su Esegui query.
REST
Per monitorare una scansione di scoperta, utilizza il metodo dataScans.get
.
Esegui query sulle tabelle BigLake pubblicate
Dopo aver eseguito la scansione di rilevamento, le tabelle BigLake vengono pubblicate in un nuovo set di dati in BigQuery e sono disponibili per l'analisi in BigQuery utilizzando SQL o in Dataproc utilizzando Apache Spark, Dataproc o HiveQL.
Esegui query utilizzando SQL
Puoi visualizzare o eseguire query sulle tabelle in BigQuery. Per ulteriori informazioni su come eseguire query in BigQuery, consulta Eseguire una query.
Esegui query utilizzando Apache Spark
Per eseguire query sulle tabelle BigLake utilizzando Spark SQL in un job Dataproc serverless:
Crea uno script PySpark simile allo script di esempio seguente:
from pyspark.sql import SparkSession session = ( SparkSession.builder.appName("testing") .config("viewsEnabled","true") .config("materializationDataset", "DATASET_ID") .config("spark.hive.metastore.bigquery.project.id", "PROJECT_ID") .config("spark.hive.metastore.client.factory.class", "com.google.cloud.bigquery.metastore.client.BigQueryMetastoreClientFactory") .enableHiveSupport() .getOrCreate() ) session.sql("show databases").show() session.sql("use TABLE_NAME").show() session.sql("show tables").show() sql = "SELECT * FROM DATASET_ID.TABLE_ID LIMIT 10" df = session.read.format("bigquery").option("dataset", "DATASET_ID").load(sql) df.show()
Sostituisci quanto segue:
DATASET_ID
: ID del set di dati per cui gli utenti dispongono dell'autorizzazione di creazionePROJECT_ID
: ID del progetto con la tabella BigLakeTABLE_NAME
: nome della tabella BigLakeTABLE_ID
: ID della tabella BigLake
Gestire le tabelle BigLake pubblicate
Le tabelle BigLake pubblicate vengono create in BigQuery dalla scansione di rilevamento. A meno che l'etichetta metadata-managed-mode non sia impostata su
user_managed
, la scansione di rilevamento gestisce le tabelle BigLake
pubblicate. La scansione di rilevamento gestisce il rilevamento di nuovi dati, le inferenze dello schema e l'evoluzione dello schema ogni volta che vengono eseguite le scansioni dei dati pianificate o on demand.
Aggiorna le tabelle BigLake pubblicate
Per le tabelle BigLake pubblicate utilizzando i job di scansione di scoperta con la configurazione predefinita, lo schema e altri metadati vengono aggiornati automaticamente con ogni job di scansione dei dati eseguito con la frequenza pianificata.
Per aggiornare una tabella BigLake pubblicata:
Nella console Google Cloud, vai alla pagina BigQuery.
Nel riquadro Explorer, espandi il progetto e il set di dati, quindi seleziona la tabella.
Nel riquadro Dettagli, nella sezione Etichette, assicurati che metadata-managed-mode sia impostato su
user_managed
. Se è impostato su un valore diverso:Fai clic su
Modifica dettagli.Accanto alla chiave metadata-managed-mode, inserisci
user_managed
nel campo value.
Una tabella con uno schema aggiornato diventa disponibile per le query SQL e Spark. Quando vengono eseguite le successive scansioni di rilevamento, i metadati della tabella rimangono invariati.
Eliminare le tabelle BigLake pubblicate
Per eliminare una tabella BigLake pubblicata:
Elimina i file di dati della tabella nel bucket Cloud Storage.
Nella console Google Cloud, vai alla pagina BigQuery.
Nel riquadro Explorer, espandi il progetto e il set di dati, quindi seleziona la tabella.
Nel riquadro Dettagli, nella sezione Etichette, assicurati che l'etichetta metadata-managed-mode non sia impostata su
user_managed
. Se è impostato suuser_managed
, segui questi passaggi:Fai clic su Modifica dettagli
.Accanto alla chiave metadata-managed-mode, nel campo value, inserisci un valore diverso da
user_managed
.
Fai clic su Esegui. La scansione di rilevamento viene eseguita su richiesta.
Dopo l'esecuzione della ricerca di elementi, la tabella BigLake viene eliminata in BigQuery e non è disponibile per l'elenco o le query tramite Spark.
Eseguire una scansione di rilevamento on demand
Per eseguire una scansione di rilevamento on demand, utilizza il
metodo dataScans.run
nell'API Dataplex.
Elenco delle scansioni di rilevamento
Per recuperare l'elenco delle analisi nel tuo progetto, utilizza il
metodo dataScans.list
nell'API Dataplex.
Aggiornare una ricerca di risorse
Per modificare la pianificazione di un'analisi, ad esempio passando da una pianificazione su richiesta a una ricorrente, devi aggiornare DataScan.
Per aggiornare una ricerca di rilevamento, utilizza il
metodo dataScans.patch
nell'API Dataplex.
Eliminare una scansione di rilevamento
Per eliminare una ricerca di rilevamento, utilizza il
metodo dataScans.delete
nell'API Dataplex.