Esporta i risultati della query in un file

Puoi salvare i risultati delle query BigQuery in un file locale, su Google Drive, Fogli Google o Cloud Storage per condividerli o analizzarli in altri strumenti. Per i file locali, puoi scegliere formati come CSV e JSON delimitato da nuova riga.

Limitazioni

BigQuery non supporta l'esportazione di dati nidificati o ripetuti (tipi di dati RECORD / STRUCT o ARRAY) nel formato CSV. Anche se i campi RECORD o STRUCT non sembrano nidificati in profondità, BigQuery li tratta come campi di schema nidificati e restituisce un errore che indica che lo schema non può essere nidificato.

Per esportare i risultati delle query in un file CSV strutturato, la query deve essere normalizzata in una struttura piatta con un campo per colonna della query. Puoi normalizzare gli struct nidificati selezionando singoli campi utilizzando la notazione con punto o normalizzare gli array ripetuti utilizzando l'operatore UNNEST.

Ad esempio, se la tabella contiene una struct customer e un array items, normalizza la query prima di eseguirla e salva i risultati in formato CSV:

SELECT
  customer.id AS customer_id,
  customer.name AS customer_name,
  item
FROM
  `my_project.my_dataset.my_table`,
  UNNEST(items) AS item;

Scarica i risultati della query in un file locale

Il download dei risultati delle query in un file locale non è supportato dallo strumento a riga di comando bq o dall'API.

Per scaricare i risultati delle query come file CSV o JSON delimitato da nuova riga, utilizza la consoleGoogle Cloud :

  1. Nella console Google Cloud , apri la pagina BigQuery.

    Vai a BigQuery

  2. Fai clic su Query SQL.

  3. Inserisci una query GoogleSQL valida nell'area di testo Editor di query.

  4. (Facoltativo) Per modificare la località di elaborazione, fai clic su Modifica > Impostazioni query. In Località dei dati, scegli la località dei tuoi dati.

  5. Fai clic su Esegui.

  6. Quando vengono restituiti i risultati, fai clic su Salva risultati e seleziona il formato o la posizione in cui vuoi salvare i risultati.

    Il file viene scaricato nella posizione di download predefinita del browser.

Salva i risultati della query su Google Drive

Il salvataggio dei risultati delle query su Google Drive non è supportato dallo strumento a riga di comando bq o dall'API.

Potresti riscontrare un errore quando provi a salvare i risultati di BigQuery su Google Drive. Questo errore è dovuto al fatto che l'API Drive SDK non riesce ad accedere a Google Workspace. Per risolvere il problema, devi abilitare il tuo account utente ad accedere a Google Drive con l'API Drive SDK.

Per salvare i risultati delle query su Google Drive, utilizza la console Google Cloud :

  1. Nella console Google Cloud , apri la pagina BigQuery.

    Vai a BigQuery

  2. Fai clic su Query SQL.

  3. Inserisci una query GoogleSQL valida nell'area di testo Editor di query.

  4. Fai clic su Esegui.

  5. Quando vengono restituiti i risultati, fai clic su Salva risultati.

  6. In Google Drive, seleziona CSV o JSON. Quando salvi i risultati su Google Drive, non puoi scegliere la posizione. I risultati vengono sempre salvati nella posizione principale "Il mio Drive".

  7. Il salvataggio dei risultati su Google Drive potrebbe richiedere alcuni minuti. Quando i risultati vengono salvati, ricevi un messaggio di dialogo che include il nome file bq-results-[TIMESTAMP]-[RANDOM_CHARACTERS].[CSV or JSON].

    screenshot del pulsante Salva risultati

  8. Nel messaggio della finestra di dialogo, fai clic su Apri per aprire il file o vai a Google Drive e fai clic su Il mio Drive.

Salva i risultati delle query in Fogli Google

Il salvataggio dei risultati delle query in Fogli Google non è supportato dallo strumento a riga di comando bq o dall'API.

Potresti ricevere un errore quando provi ad aprire i risultati di BigQuery da Fogli Google. Questo errore è dovuto al fatto che l'API Drive SDK non riesce ad accedere a Google Workspace. Per risolvere il problema, devi consentire al tuo account utente di accedere a Fogli Google con l'API Drive SDK.

Per salvare i risultati delle query in Fogli Google, utilizza la console Google Cloud :

  1. Nella console Google Cloud , apri la pagina BigQuery.

    Vai a BigQuery

  2. Fai clic su Query SQL.

  3. Inserisci una query GoogleSQL valida nell'area di testo Editor di query.

  4. (Facoltativo) Per modificare la località di elaborazione, fai clic su Modifica > Impostazioni query. In Località dei dati, scegli la località dei tuoi dati.

  5. Fai clic su Esegui.

  6. Quando vengono restituiti i risultati, fai clic su Salva risultati e seleziona Fogli Google.

  7. Se necessario, segui le istruzioni per accedere al tuo account utente e fai clic su Consenti per autorizzare BigQuery a scrivere i dati nella cartella My Drive di Google Drive.

    Dopo aver seguito le istruzioni, dovresti ricevere un'email di conferma che gli strumenti client di BigQuery sono stati collegati al tuo account utente. L'email contiene informazioni sulle autorizzazioni che hai concesso, oltre ai passaggi per rimuoverle.

  8. Quando i risultati vengono salvati, sotto i risultati della query nella console Google Cloud viene visualizzato un messaggio simile al seguente: Saved to Sheets as "results-20190225-103531". Fai clic sul link nel messaggio per visualizzare i risultati in Fogli Google o vai alla cartella My Drive e apri il file manualmente.

    Quando salvi i risultati della query in Fogli Google, il nome file inizia con results-[DATE], dove [DATE] è la data odierna nel formato YYYYMMDD.

Risolvi i problemi relativi al salvataggio dei risultati in Fogli Google

Quando salvi i dati da BigQuery a Fogli Google, potresti notare che alcune celle dei fogli sono vuote. Questo accade quando i dati che stai scrivendo nella cella superano il limite di 50.000 caratteri di Fogli Google. Per risolvere il problema, utilizza una funzione di stringa nella query GoogleSQL per suddividere la colonna con i dati lunghi in due o più colonne, quindi salva nuovamente il risultato in Fogli.

Salva i risultati delle query in Cloud Storage

Puoi esportare i risultati delle query in Cloud Storage nella console Google Cloud con i seguenti passaggi:

  1. Apri la pagina BigQuery nella console Google Cloud .

    Vai alla pagina BigQuery

  2. Fai clic su Query SQL.

  3. Inserisci una query GoogleSQL valida nell'area di testo Editor di query.

  4. Fai clic su Esegui.

  5. Quando vengono restituiti i risultati, fai clic su Salva i risultati > Cloud Storage.

  6. Nella finestra di dialogo Esporta in Google Cloud Storage:

    • In Posizione GCS, cerca il bucket, la cartella o il file in cui vuoi esportare i dati.
    • In Formato di esportazione, scegli il formato per i dati esportati: CSV, JSON (delimitato da nuova riga), Avro o Parquet.
    • In Compressione, seleziona un formato di compressione o seleziona None per nessuna compressione.
  7. Fai clic su Salva per esportare i risultati della query.

Per controllare l'avanzamento del job, espandi il riquadro Cronologia dei job e cerca il job con il tipo EXTRACT.

Limita il download dei risultati delle query

Per impedire agli utenti di scaricare i risultati delle query dalla console Google Cloud , utilizza uno dei seguenti metodi:

  • Configura un perimetro dei Controlli di servizio VPC per impedire l'esfiltrazione di dati. In questo modo, gli utenti non possono scaricare ed esportare dati al di fuori dei confini del perimetro stabilito.

  • Contatta l'assistenza clienti Google Cloud per richiedere che il tuo progetto o la tua organizzazione Google Cloud venga aggiunto a un elenco limitato. In questo modo, le opzioni di download ed esportazione dei dati vengono disattivate direttamente nella console Google Cloud .

Passaggi successivi