Esegui query sulle tabelle BigLake di Amazon S3
BigQuery ti consente di eseguire query GoogleSQL sui dati archiviati nelle tabelle BigLake di Amazon Simple Storage Service (Amazon S3) utilizzando BigQuery Omni. L'esecuzione di query sulle tabelle BigLake di Amazon S3 ti consente di analizzare i dati in Amazon S3 e di unirli ad altre tabelle senza copiare o spostare i file sottostanti.
Prima di iniziare
Assicurati di avere una tabella BigLake Amazon S3.
Ruoli obbligatori
Per eseguire query sulle tabelle BigLake di Amazon S3, assicurati che il chiamante dell'API BigQuery disponga dei seguenti ruoli:
- BigQuery Connection User (
roles/bigquery.connectionUser) - BigQuery Data Viewer (
roles/bigquery.dataViewer) - Utente BigQuery (
roles/bigquery.user)
Il chiamante può essere il tuo account o un service account di connessione Amazon S3. A seconda delle tue autorizzazioni, puoi concederti questi ruoli 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 Amazon S3, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
bigquery.connections.usebigquery.jobs.createbigquery.readsessions.create(obbligatorio solo se leggi 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.
Esegui query sulle tabelle BigLake di Amazon S3
Dopo aver creato una tabella BigLake di Amazon S3, puoi eseguire 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 Esegui query su una tabella BigLake temporanea. Per saperne di più sulle limitazioni e sulle quote 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 una versione, consulta Crea prenotazioni.
Esegui una query su una tabella BigLake Amazon S3:
SQL
Per eseguire una query sulla tabella:
Nella console Google Cloud , 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 che hai creatoFai clic su Esegui.
Per saperne di più su come eseguire le query, consulta Esegui una query interattiva.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Java.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Esegui una 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 console Google Cloud o l'API BigQuery.
Seleziona una delle seguenti opzioni:
Console
Quando esegui una query su una tabella BigLake che fa riferimento a dati cloud esterni, puoi visualizzare i risultati della query nella console Google Cloud .
API
Per eseguire query su una tabella BigLake utilizzando l'API, segui questi passaggi:
- Crea un oggetto Job.
- Chiama il metodo
jobs.insertper eseguire la query in modo asincrono o il metodojobs.queryper eseguire la query in modo sincrono, passando l'oggettoJob. - Leggi le righe con
jobs.getQueryResultspassando il riferimento del job specificato e i metoditabledata.listpassando il riferimento della tabella specificato del risultato della query.
Esegui una query sulla pseudocolonna _FILE_NAME
Le tabelle basate su origini dati esterne forniscono una pseudocolonna 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 Archiviazione BLOB di Azure.
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 pseudocolonna.
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 nella pseudocolonna _FILE_NAME, BigQuery tenta di saltare la lettura dei file che non soddisfano il filtro. Quando crei predicati di query con la pseudocolonna _FILE_NAME, si applicano consigli simili a quelli per l'
esecuzione di query su tabelle partizionate per data di acquisizione utilizzando le pseudocolonne
.
Passaggi successivi
- Scopri di più sull'utilizzo di SQL in BigQuery.
- Scopri di più su BigQuery Omni.
- Scopri di più sulle quote di BigQuery.