Carica ed esegui query sui dati con lo strumento bq
Scopri come creare un set di dati, caricare dati di esempio ed eseguire query sulle tabelle con lo strumento a riga di comando bq.
Per seguire le indicazioni dettagliate per questa attività direttamente nella console Google Cloud, fai clic su Procedura guidata:
Prima di iniziare
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
Verifica che l'API BigQuery sia attivata.
Se hai creato un nuovo progetto, l'API BigQuery viene attivata automaticamente.
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Se non abiliti la fatturazione per il progetto Google Cloud che utilizzi in questo tutorial, utilizzerai i dati nella sandbox di BigQuery. La sandbox di BigQuery ti consente di scoprire BigQuery con un set limitato di funzionalità BigQuery senza costi aggiuntivi.
Scarica il file di dati pubblici di origine
- Scarica il file ZIP con i nomi dei bambini.
- Estrai il file ZIP. Contiene un file denominato
NationalReadMe.pdf
che descrive lo schema del set di dati. Scopri di più sul set di dati dei nomi dei bambini. - Apri il file
yob2010.txt
. Si tratta di un file CSV (valori delimitati da virgole) che contiene tre colonne: nome, sesso assegnato alla nascita e numero di figli con quel nome. Il file non ha una riga di intestazione. - Sposta il file nella directory di lavoro.
- Se stai lavorando in Cloud Shell, fai clic su
> Carica > Scegli file, scegli Altro yob2010.txt
e fai clic su Carica. - Se lavori in una shell locale, copia o sposta il file
yob2010.txt
nella directory in cui stai eseguendo lo strumento bq.
- Se stai lavorando in Cloud Shell, fai clic su
Crea un set di dati
Crea un set di dati denominato
babynames
:bq mk babynames
L'output è simile al seguente:
Dataset 'myproject:babynames' successfully created.
Il nome di un set di dati può contenere fino a 1024 caratteri ed essere composto da lettere maiuscole (A-Z), minuscole (a-z), numeri (0-9) e trattino basso, ma non può iniziare con un numero o con il trattino basso, né contenere spazi.
Verifica che il set di dati
babynames
sia visualizzato nel progetto:bq ls
L'output è simile al seguente:
datasetId ------------- babynames
Carica i dati in una tabella
Nel set di dati
babynames
, carica il file di origineyob2010.txt
in una nuova tabella denominatanames2010
:bq load babynames.names2010 yob2010.txt name:string,assigned_sex_at_birth:string,count:integer
L'output è simile al seguente:
Upload complete. Waiting on bqjob_r3c045d7cbe5ca6d2_0000018292f0815f_1 ... (1s) Current status: DONE
Per impostazione predefinita, BigQuery si aspetta dei dati con codifica UTF-8 quando carichi i dati. Se disponi di dati con codifica ISO-8859-1 (o Latin-1) e riscontri problemi, chiedi a BigQuery di trattare i tuoi dati come Latin-1 utilizzando
bq load -E=ISO-8859-1
. Per ulteriori informazioni, vedi Codifica.Verifica che la tabella
names2010
sia visualizzata nel set di datibabynames
:bq ls babynames
L'output è simile al seguente. Alcune colonne vengono omesse per semplificare l'output.
tableId Type ----------- --------- names2010 TABLE
Verifica che lo schema della nuova tabella
names2010
sianame: string
,assigned_sex_at_birth: string
ecount: integer
:bq show babynames.names2010
L'output è simile al seguente. Alcune colonne vengono omesse per semplificare l'output.
Last modified Schema Total Rows Total Bytes ----------------- ------------------------------- ------------ ------------ 14 Mar 17:16:45 |- name: string 34089 654791 |- assigned_sex_at_birth: string |- count: integer
Esegui query sui dati della tabella
Determina i nomi femminili più popolari nei dati:
bq query --use_legacy_sql=false \ 'SELECT name, count FROM `babynames.names2010` WHERE assigned_sex_at_birth = "F" ORDER BY count DESC LIMIT 5;'
L'output è simile al seguente:
+----------+-------+ | name | count | +----------+-------+ | Isabella | 22925 | | Sophia | 20648 | | Emma | 17354 | | Olivia | 17030 | | Ava | 15436 | +----------+-------+
Determina i nomi maschili meno popolari nei dati:
bq query --use_legacy_sql=false \ 'SELECT name, count FROM `babynames.names2010` WHERE assigned_sex_at_birth = "M" ORDER BY count ASC LIMIT 5;'
L'output è simile al seguente:
+----------+-------+ | name | count | +----------+-------+ | Aamarion | 5 | | Aarian | 5 | | Aaqib | 5 | | Aaidan | 5 | | Aadhavan | 5 | +----------+-------+
Il numero minimo è 5 perché i dati di origine omettono i nomi con meno di 5 occorrenze.
Esegui la pulizia
Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate su questa pagina, elimina il progetto Google Cloud con le risorse.
Elimina il progetto
Se hai utilizzato la sandbox di BigQuery per eseguire query sul set di dati pubblico, la fatturazione non è abilitata per il tuo progetto.Il modo più semplice per eliminare la fatturazione è eliminare il progetto che hai creato per il tutorial.
Per eliminare il progetto:
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Elimina le risorse
Se hai utilizzato un progetto esistente, elimina le risorse che hai creato:
Elimina il set di dati
babynames
:bq rm --recursive=true babynames
Il flag
--recursive
elimina tutte le tabelle nel set di dati, inclusa la tabellanames2010
.L'output è simile al seguente:
rm: remove dataset 'myproject:babynames'? (y/N)
Per confermare il comando di eliminazione, inserisci
y
.
Passaggi successivi
- Scopri di più sull'utilizzo dello strumento bq.
- Scopri di più sulla sandbox di BigQuery.
- Scopri di più sul caricamento dei dati in BigQuery..
- Scopri di più sull'esecuzione di query sui dati in BigQuery.
- Ricevi aggiornamenti su BigQuery.
- Scopri i prezzi di BigQuery.
- Scopri di più su quote e limiti di BigQuery.