Esegui query sui dati di archiviazione BLOB

Questo documento descrive come eseguire query sui dati archiviati in una tabella BigLake di archiviazione BLOB di Azure.

Prima di iniziare

Assicurati di avere una tabella BigLake di archiviazione BLOB.

Ruoli obbligatori

Per eseguire una query sulle tabelle BigLake di archiviazione BLOB, assicurati che il chiamante dell'API BigQuery disponga dei 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 concederli. Per ulteriori informazioni sulla concessione dei ruoli, consulta Visualizzazione dei ruoli assegnabili sulle risorse.

Per visualizzare le autorizzazioni esatte necessarie per eseguire query sulle tabelle BigLake di Blob Storage, espandi la sezione Autorizzazioni richieste:

Autorizzazioni obbligatorie

Potresti anche essere in grado di ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

Query sulle tabelle BigLake di archiviazione BLOB di query

Dopo aver creato una tabella BigLake per l'archiviazione BLOB, puoi eseguire una query utilizzando la sintassi di GoogleSQL, come se fosse una tabella BigQuery standard.

I risultati delle query memorizzate nella cache vengono archiviati in una tabella temporanea BigQuery. Per eseguire 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, vedi Creare prenotazioni.

Esegui una query nella tabella BigLake di archiviazione BLOB:

  1. Nella console Google Cloud, vai alla pagina BigQuery.

    Vai a BigQuery

  2. 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 creato
    • TABLE_NAME: la tabella BigLake con il nome che hai creato

    • Fai clic su Esegui.

Per saperne di più su come eseguire le query, consulta Eseguire una query interattiva.

Esegui una query su una tabella temporanea

BigQuery crea tabelle temporanee per archiviare i risultati delle query. Per recuperare il risultato 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 query su una tabella BigLake utilizzando l'API, segui questi passaggi:

  1. Crea un oggetto Job.
  2. Chiama il metodo jobs.insert per eseguire la query in modo asincrono o il metodo jobs.query per eseguire la query in modo sincrono, passando l'oggetto Job.
  3. Leggi le righe con jobs.getQueryResults passando il riferimento del job specificato e i metodi tabledata.list trasmettendo il riferimento 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 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 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 tenta di saltare la lettura dei file che non soddisfano il filtro. Consigli simili per l' esecuzione di query su tabelle partizionate per data di importazione mediante pseudo-colonne si applicano quando si costruiscono predicati di query con la pseudo-colonna _FILE_NAME.

Passaggi successivi