Carica ed esegui query sui dati con lo strumento bq

Scopri come creare un set di dati, caricare dati di esempio ed eseguire query su 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 Aiuto:

Aiuto


Prima di iniziare

  1. Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
  2. Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  3. Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  4. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  5. 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 imparare a usare BigQuery con un insieme limitato di funzionalità di BigQuery senza costi aggiuntivi.

  6. Assicurati che l'API BigQuery sia attivata.

    Abilita l'API

    Se hai creato un nuovo progetto, l'API BigQuery viene abilitata automaticamente.

  7. Nella console Google Cloud, attiva Cloud Shell.

    Attiva Cloud Shell

    Nella parte inferiore della console Google Cloud viene avviata una sessione di Cloud Shell che mostra un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installato e con valori già impostati per il progetto attuale. L'inizializzazione della sessione può richiedere alcuni secondi.

Scarica il file di dati pubblici di origine

  1. Scarica il file ZIP con i nomi dei bambini.
  2. 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.
  3. 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.
  4. Sposta il file nella directory di lavoro.
    • Se stai lavorando in Cloud Shell, fai clic su Altro > Carica > Scegli file, scegli 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.

Crea un set di dati

  1. 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ò avere una lunghezza massima di 1024 caratteri ed essere composto da lettere A-Z, a-z, 0-9 e il trattino basso. Il nome non può iniziare con un numero o un trattino basso e non può contenere spazi.

  2. 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

  1. Nel set di dati babynames, carica il file di origine yob2010.txt in una nuova tabella denominata names2010:

    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.

  2. Verifica che la tabella names2010 sia visualizzata nel set di dati babynames:

    bq ls babynames
    

    L'output è simile al seguente. Alcune colonne vengono omesse per semplificare l'output.

      tableId     Type
    ----------- ---------
     names2010    TABLE
    
  3. Verifica che lo schema della nuova tabella names2010 sia name: string, assigned_sex_at_birth: string e count: 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

  1. 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 |
    +----------+-------+
    
  2. 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 in 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:

  1. Nella console Google Cloud, vai alla pagina Gestisci risorse.

    Vai a Gestisci risorse

  2. Nell'elenco dei progetti, seleziona il progetto che vuoi eliminare, quindi fai clic su Elimina.
  3. Nella finestra di dialogo, digita l'ID del progetto e fai clic su Chiudi per eliminare il progetto.

Elimina le risorse

Se hai utilizzato un progetto esistente, elimina le risorse che hai creato:

  1. Elimina il set di dati babynames:

    bq rm --recursive=true babynames
    

    Il flag --recursive elimina tutte le tabelle nel set di dati, inclusa la tabella names2010.

    L'output è simile al seguente:

    rm: remove dataset 'myproject:babynames'? (y/N)
    
  2. Per confermare il comando di eliminazione, inserisci y.

Passaggi successivi