Eseguire query sui dati di Blob Storage
Questo documento descrive come eseguire query sui dati archiviati in una tabella BigLake di Azure Blob Storage.
Prima di iniziare
Assicurati di avere una tabella BigLake di Blob Storage.
Ruoli obbligatori
Per eseguire query sulle tabelle BigLake di Blob Storage, assicurati che il chiamante dell'API BigQuery abbia i seguenti ruoli:
- Utente connessione BigQuery (
roles/bigquery.connectionUser) - Visualizzatore dati BigQuery (
roles/bigquery.dataViewer) - Utente BigQuery (
roles/bigquery.user)
Il chiamante può essere il tuo account o un account di servizio di connessione a Blob Storage. A seconda delle tue autorizzazioni, puoi concedere questi ruoli a te stesso o chiedere all'amministratore di concederteli. Per ulteriori informazioni sulla concessione dei ruoli, consulta Visualizzazione dei ruoli assegnabili sulle risorse.
Per vedere quali sono esattamente le autorizzazioni richieste per eseguire query sulle tabelle BigLake di Blob Storage, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
bigquery.connections.usebigquery.jobs.createbigquery.readsessions.create(richiesta solo se stai leggendo i dati con l' API BigQuery Storage Read)bigquery.tables.getbigquery.tables.getData
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Eseguire query sulle tabelle BigLake di Blob Storage
Dopo aver creato una tabella BigLake di Blob Storage, puoi eseguirvi query utilizzando la sintassi GoogleSQL, come se fosse una tabella BigQuery standard.
I risultati delle query memorizzati nella cache vengono archiviati in una tabella temporanea di BigQuery. Per eseguire query su una tabella BigLake temporanea, consulta Eseguire query su una tabella BigLake temporanea. Per ulteriori informazioni su quote e limitazioni di BigQuery Omni, consulta limitazioni e quote.
Quando crei una prenotazione in una regione BigQuery Omni, utilizza l'edizione Enterprise. Per scoprire come creare una prenotazione con un'edizione, consulta Creare prenotazioni.
Esegui una query sulla tabella BigLake di Blob Storage:
Nella Google Cloud console, vai alla pagina BigQuery.
Nell'editor di query, inserisci la seguente istruzione:
SELECT * FROM DATASET_NAME.TABLE_NAME;
Sostituisci quanto segue:
DATASET_NAME: il nome del set di dati che hai creatoTABLE_NAME: il nome della tabella BigLake che hai creatoFai clic su Esegui.
Per ulteriori informazioni su come eseguire query, consulta Eseguire una query interattiva.
Eseguire query su una tabella temporanea
BigQuery crea tabelle temporanee per archiviare i risultati delle query. Per recuperare i risultati delle query dalle tabelle temporanee, puoi utilizzare la Google Cloud console o l'API BigQuery.
Seleziona una delle seguenti opzioni:
Console
Quando esegui query su una tabella BigLake che fa riferimento a dati cloud esterni, puoi visualizzare i risultati delle query visualizzati nella Google Cloud console.
API
Per eseguire query su una tabella BigLake utilizzando l'API:
- Crea un oggetto Job.
- Chiama il
jobs.insertmetodo per eseguire la query in modo asincrono o iljobs.querymetodo per eseguire la query in modo sincrono, passando l'oggettoJob. - Leggi le rig0he con i
jobs.getQueryResultspassando il riferimento al job specificato e itabledata.listmetodi passando il riferimento alla tabella specificato del risultato della query.
Eseguire query sulla pseudo-colonna _FILE_NAME
Le tabelle basate su origini dati esterne forniscono una pseudo-colonna denominata _FILE_NAME. Questa
colonna contiene il percorso completo del file a cui appartiene la riga. Questa colonna è
disponibile solo per le tabelle che fanno riferimento a dati esterni archiviati in
Cloud Storage, Google Drive,
Amazon S3 e Azure Blob Storage.
Il nome della colonna _FILE_NAME è riservato, il che significa che non puoi creare una colonna
con questo nome in nessuna delle tue tabelle. Per selezionare il valore di _FILE_NAME, devi utilizzare
un alias. La seguente query di esempio mostra la selezione di _FILE_NAME assegnando
l'alias fn alla pseudo-colonna.
bq query \
--project_id=PROJECT_ID \
--use_legacy_sql=false \
'SELECT
name,
_FILE_NAME AS fn
FROM
`DATASET.TABLE_NAME`
WHERE
name contains "Alex"' Sostituisci quanto segue:
-
PROJECT_IDè un ID progetto valido (questo flag non è obbligatorio se utilizzi Cloud Shell o se imposti un progetto predefinito in Google Cloud CLI) -
DATASETè il nome del set di dati che archivia la tabella esterna permanente -
TABLE_NAMEè il nome della tabella esterna permanente
Quando la query ha un predicato di filtro sulla pseudo-colonna _FILE_NAME,
BigQuery tenta di saltare la lettura dei file che non soddisfano il filtro.
Quando crei predicati di query con la pseudo-colonna _FILE_NAME, si applicano consigli simili a quelli per l'esecuzione di query su tabelle partizionate per data di importazione utilizzando le pseudo-colonne.
Passaggi successivi
- Scopri di più sull'utilizzo di SQL in BigQuery.
- Scopri di più su BigQuery Omni.
- Scopri di più sulle quote di BigQuery.