Esegui query sui dati di Amazon S3
Questo documento descrive come eseguire query sui dati archiviati in una tabella BigLake di Amazon Simple Storage Service (Amazon S3).
Prima di iniziare
Assicurati di avere una tabella Amazon S3 BigLake.
Ruoli obbligatori
Per eseguire una query sulle tabelle Amazon S3 BigLake, assicurati che il chiamante dell'API BigQuery disponga dei ruoli seguenti:
- 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 Amazon S3. A seconda delle tue autorizzazioni, puoi concedere questi ruoli a te stesso o chiedere all'amministratore di concederli. Per ulteriori informazioni sulla concessione dei ruoli, consulta Visualizzazione dei ruoli assegnabili sulle risorse.
Per visualizzare le autorizzazioni esatte necessarie per eseguire una query sulle tabelle BigLake Amazon S3, espandi la sezione Autorizzazioni richieste:
Autorizzazioni obbligatorie
bigquery.connections.use
bigquery.jobs.create
bigquery.readsessions.create
(Obbligatorio solo se stai leggendo i dati con l'API BigQuery Storage Read)bigquery.tables.get
bigquery.tables.getData
Potresti essere in grado di ottenere queste autorizzazioni anche con i ruoli personalizzati o altri ruoli predefiniti.
Esegui query sulle tabelle Amazon S3 BigLake
Dopo aver creato una tabella BigLake Amazon S3, puoi eseguire query utilizzando la sintassi GoogleSQL, come se fosse una tabella BigQuery standard.
I risultati delle query memorizzate nella cache vengono archiviati in una tabella temporanea BigQuery. Per eseguire una query su una tabella BigLake temporanea, consulta Eseguire query su una tabella BigLake temporanea. Per ulteriori informazioni sulle limitazioni e sulle quote di BigQuery Omni, consulta limitazioni e quotas.
Quando crei una prenotazione in una regione BigQuery Omni, utilizza la versione Enterprise. Per scoprire come creare una prenotazione con una versione, consulta Creare prenotazioni.
Esegui una query su una tabella Amazon S3 BigLake:
SQL
Per eseguire una query sulla tabella:
Nella console Google Cloud, vai alla pagina BigQuery.
Nell'Editor 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 ulteriori informazioni su come eseguire le query, consulta Eseguire una query interattiva.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java disponibili nella guida rapida di BigQuery sull'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Java.
Per eseguire l'autenticazione in BigQuery, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per le librerie client.
Esegui una query su una tabella temporanea
BigQuery crea tabelle temporanee per archiviare i risultati della query. Per recuperare i risultati della 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 visualizzati nella console Google Cloud.
API
Per eseguire una query su una tabella BigLake utilizzando l'API, segui questi passaggi:
- Crea un oggetto Job.
- Chiama il metodo
jobs.insert
per eseguire la query in modo asincrono oppure il metodojobs.query
per eseguirla in modo sincrono, passando l'oggettoJob
. - Leggere le righe con
jobs.getQueryResults
trasmettendo il riferimento del job specificato e i metoditabledata.list
passando il riferimento della tabella specificato del risultato della query.
Esegui una 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 in cui è archiviata la tabella esterna permanente -
TABLE_NAME
è il nome della tabella esterna permanente
Quando la query ha un predicato di filtro nella pseudo-colonna _FILE_NAME
, BigQuery cerca di saltare la lettura dei file che non soddisfano il filtro. Suggerimenti
simili per
eseguire query su tabelle partizionate per data di importazione
utilizzando pseudo-colonne
si applicano quando si creano predicati di query con la pseudo-colonna _FILE_NAME
.
Passaggi successivi
- Scopri di più sull'utilizzo di SQL in BigQuery.
- Scopri di più su BigQuery Omni.
- Scopri di più sulle quote di BigQuery.