Utilizza lo strumento bq

In questo tutorial, imparerai a utilizzare bq, lo strumento a riga di comando basato su Python per BigQuery, per creare un set di dati, caricare dati di esempio e fare query sulle tabelle. Dopo aver completato questo tutorial, avrai familiarità con bq e saprai come utilizzare BigQuery tramite una CLI.

Per un riferimento completo a tutti i comandi e i flag bq, consulta il riferimento allo strumento a riga di comando bq.


Per seguire le indicazioni dettagliate per questa attività direttamente nella console Google Cloud , fai clic su Procedura guidata:

Procedura guidata


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 senza costi per l'esecuzione, il test e il deployment dei workload.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.

  6. Abilita l'API BigQuery.

    Ruoli richiesti per abilitare le API

    Per abilitare le API, devi disporre del ruolo IAM Amministratore utilizzo dei servizi (roles/serviceusage.serviceUsageAdmin), che include l'autorizzazione serviceusage.services.enable. Scopri come concedere i ruoli.

    Abilitare l'API

    Per i nuovi progetti, l'API BigQuery viene abilitata automaticamente.

  7. (Facoltativo) Abilita la fatturazione per il progetto. Se non vuoi attivare la fatturazione o fornire una carta di credito, i passaggi descritti in questo documento funzionano comunque. BigQuery ti offre una sandbox per eseguire i passaggi. Per saperne di più, vedi Attiva la sandbox di BigQuery.
  8. Nella console Google Cloud , attiva Cloud Shell.

    Attiva Cloud Shell

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

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per creare un set di dati, creare una tabella, caricare dati ed eseguire query sui dati, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto:

  • Esegui job di caricamento e query: Utente job BigQuery (roles/bigquery.jobUser)
  • Crea un set di dati, crea una tabella, carica i dati in una tabella ed esegui query su una tabella: Editor dati BigQuery (roles/bigquery.dataEditor)

Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Scaricare il file contenente i dati di origine

Il file che stai scaricando contiene circa 7 MB di dati relativi a nomi comuni di bambini. Viene fornito dalla Social Security Administration degli Stati Uniti.

Per ulteriori informazioni sui dati, consulta le informazioni di base sui nomi comuni della Social Security Administration.

  1. Per scaricare i dati della Social Security Administration degli Stati Uniti, apri il seguente URL in una nuova scheda del browser:

    https://www.ssa.gov/OACT/babynames/names.zip
    
  2. Estrai il file.

    Per ulteriori informazioni sullo schema del set di dati, consulta il file NationalReadMe.pdf che hai estratto.

  3. Per vedere i dati, apri il file yob2024.txt. Questo file contiene valori separati da virgola relativi a 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 il file yob2024.txt e fai clic Carica.

    • Se lavori in una shell locale, copia o sposta il file yob2024.txt nella directory in cui stai eseguendo lo strumento bq.

Crea un set di dati

  1. Se hai avviato Cloud Shell dalla documentazione, inserisci il comando seguente per impostare l'ID progetto. In questo modo, non dovrai specificare l'ID progetto in ogni comando CLI.

    gcloud config set project PROJECT_ID
    

    Sostituisci PROJECT_ID con l'ID progetto.

  1. Inserisci il seguente comando per creare un set di dati denominato babynames:

    bq mk --dataset babynames
    

    L'output è simile al seguente:

    Dataset 'babynames' successfully created.
    
  2. Verifica che il set di dati babynames sia visualizzato nel progetto:

    bq ls --datasets=true
    

    L'output è simile al seguente:

      datasetId
    -------------
      babynames
    

Carica i dati in una tabella

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

    bq load babynames.names2024 yob2024.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
    
  2. Verifica che la tabella names2024 sia visualizzata nel set di dati babynames:

    bq ls --format=pretty babynames
    

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

    +-----------+-------+
    |  tableId  | Type  |
    +-----------+-------+
    | names2024 | TABLE |
    +-----------+-------+
    
  3. Verifica che lo schema della nuova tabella names2024 sia name: string, assigned_sex_at_birth: string e count: integer:

    bq show babynames.names2024
    

    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                    31904       607494
                      |- assigned_sex_at_birth: string
                      |- count: integer
    

Esegui query sui dati della tabella

  1. Determina i nomi femminili più popolari nei dati:

    bq query \
        'SELECT
          name,
          count
        FROM
          babynames.names2024
        WHERE
          assigned_sex_at_birth = "F"
        ORDER BY
          count DESC
        LIMIT 5'
    

    L'output è simile al seguente:

    +-----------+-------+
    |   name    | count |
    +-----------+-------+
    | Olivia    | 14718 |
    | Emma      | 13485 |
    | Amelia    | 12740 |
    | Charlotte | 12552 |
    | Mia       | 12113 |
    +-----------+-------+
    
  2. Determina i nomi maschili meno popolari nei dati:

    bq query \
        'SELECT
          name,
          count
        FROM
          babynames.names2024
        WHERE
          assigned_sex_at_birth = "M"
        ORDER BY
          count ASC
        LIMIT 5'
    

    L'output è simile al seguente:

    +---------+-------+
    |  name   | count |
    +---------+-------+
    | Aaran   |     5 |
    | Aadiv   |     5 |
    | Aadarsh |     5 |
    | Aarash  |     5 |
    | Aadrik  |     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 e non devi eliminare il progetto.

Il modo più semplice per eliminare la fatturazione è eliminare il progetto 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 quello 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 names2024.

    L'output è simile al seguente:

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

Passaggi successivi