Charger et interroger des données avec l'outil bq

Découvrez comment créer un ensemble de données, charger des exemples de données et interroger des tables à l'aide de l'outil de ligne de commande bq.


Pour obtenir des instructions détaillées sur cette tâche directement dans la console Google Cloud , cliquez sur Visite guidée :

Visite guidée


Avant de commencer

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

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

    Go to project selector

  4. Verify that billing is enabled for your Google Cloud project.

  5. Si vous n'activez pas la facturation pour le projet Google Cloud que vous utilisez dans ce tutoriel, vous chargerez et interrogerez les données dans le bac à sable BigQuery. Le bac à sable BigQuery vous permet d'apprendre à utiliser BigQuery avec un ensemble limité de fonctionnalités offertes.

  6. Vérifiez que l'API BigQuery est activée.

    Activer l'API

    Si vous avez créé un nouveau projet, l'API BigQuery est automatiquement activée.

  7. In the Google Cloud console, activate Cloud Shell.

    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.

  8. Télécharger le fichier contenant les données sources

    Le fichier que vous téléchargez contient environ 7 Mo de données correspondant aux prénoms populaires donnés aux bébés. Il provient de l'Administration de la sécurité sociale des États-Unis.

    Pour en savoir plus sur les données, consultez les informations générales sur les prénoms populaires de l'Administration de la sécurité sociale.

    1. Téléchargez les données de l'Administration de la sécurité sociale des États-Unis en ouvrant l'URL suivante dans un nouvel onglet du navigateur :

      https://www.ssa.gov/OACT/babynames/names.zip
      
    2. Extrayez le fichier.

      Pour en savoir plus sur le schéma de l'ensemble de données, consultez le fichier NationalReadMe.pdf que vous avez extrait.

    3. Pour voir à quoi ressemblent les données, ouvrez le fichier yob2024.txt. Ce fichier contient des valeurs séparées par une virgule spécifiant le prénom, le genre attribué à la naissance et le nombre d'enfants portant ce prénom. Le fichier ne comporte pas de ligne d'en-tête.

    4. Déplacez le fichier vers votre répertoire de travail.

      • Si vous utilisez Cloud Shell, cliquez sur  Plus > Importer. Cliquez sur Sélectionner des fichiers, choisissez le fichier yob2024.txt, puis cliquez sur Importer.

      • Si vous utilisez un shell local, copiez ou déplacez le fichier yob2024.txt dans le répertoire dans lequel vous exécutez l'outil bq.

    Créer un ensemble de données

    1. Si vous avez lancé Cloud Shell à partir de la documentation, saisissez la commande suivante pour définir l'ID de votre projet. Cela vous évite de devoir spécifier l'ID du projet dans chaque commande CLI.

      gcloud config set project PROJECT_ID
      

      Remplacez PROJECT_ID par l'ID du projet.

    2. Saisissez la commande suivante pour créer un ensemble de données nommé babynames :

      bq mk --dataset babynames
      

      Le résultat ressemble à ce qui suit :

      Dataset 'babynames' successfully created.
      
    3. Vérifiez que l'ensemble de données babynames apparaît désormais dans votre projet :

      bq ls --datasets=true
      

      Le résultat ressemble à ce qui suit :

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

    Charger des données dans une table

    1. Dans l'ensemble de données babynames, chargez le fichier source yob2024.txt dans une nouvelle table nommée names2024 :

      bq load babynames.names2024 yob2024.txt name:string,assigned_sex_at_birth:string,count:integer
      

      Le résultat ressemble à ce qui suit :

      Upload complete.
      Waiting on bqjob_r3c045d7cbe5ca6d2_0000018292f0815f_1 ... (1s) Current status: DONE
      
    2. Vérifiez que la table names2024 apparaît désormais dans l'ensemble de données babynames :

      bq ls --format=pretty babynames
      

      Le résultat renvoyé ressemble à ceci : Certaines colonnes sont omises pour simplifier la sortie.

      +-----------+-------+
      |  tableId  | Type  |
      +-----------+-------+
      | names2024 | TABLE |
      +-----------+-------+
      
    3. Vérifiez que le schéma de votre nouvelle table names2024 est name: string, assigned_sex_at_birth: string et count: integer :

      bq show babynames.names2024
      

      Le résultat renvoyé ressemble à ceci : Certaines colonnes sont omises pour simplifier la sortie.

        Last modified        Schema                      Total Rows   Total Bytes
      ----------------- ------------------------------- ------------ ------------
      14 Mar 17:16:45   |- name: string                    31904       607494
                        |- assigned_sex_at_birth: string
                        |- count: integer
      

    Interroger les données de la table

    1. Déterminez les prénoms de filles les plus populaires dans les données :

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

      Le résultat ressemble à ce qui suit :

      +-----------+-------+
      |   name    | count |
      +-----------+-------+
      | Olivia    | 14718 |
      | Emma      | 13485 |
      | Amelia    | 12740 |
      | Charlotte | 12552 |
      | Mia       | 12113 |
      +-----------+-------+
      
    2. Déterminez les prénoms de garçons les moins populaires dans les données :

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

      Le résultat ressemble à ce qui suit :

      +---------+-------+
      |  name   | count |
      +---------+-------+
      | Aaran   |     5 |
      | Aadiv   |     5 |
      | Aadarsh |     5 |
      | Aarash  |     5 |
      | Aadrik  |     5 |
      +---------+-------+
      

      Le nombre minimal est cinq, car les données sources omettent les prénoms pour lesquels moins de cinq occurrences sont comptabilisées.

    Effectuer un nettoyage

    Pour éviter que les ressources utilisées dans cette démonstration soient facturées sur votre compte Google Cloud , supprimez le projet Google Cloud qui les contient.

    Supprimer le projet

    Si vous avez utilisé le bac à sable BigQuery pour interroger l'ensemble de données public, la facturation n'est pas activée pour votre projet. Vous n'avez donc pas besoin de le supprimer.

    Le moyen le plus simple d'empêcher la facturation est de supprimer le projet que vous avez créé pour ce tutoriel.

    Pour supprimer le projet :

    1. In the Google Cloud console, go to the Manage resources page.

      Go to Manage resources

    2. In the project list, select the project that you want to delete, and then click Delete.
    3. In the dialog, type the project ID, and then click Shut down to delete the project.

    Supprimer les ressources

    Si vous avez utilisé un projet existant, supprimez les ressources que vous avez créées :

    1. Supprimez l'ensemble de données babynames :

      bq rm --recursive=true babynames
      

      L'option --recursive supprime toutes les tables de l'ensemble de données, y compris la table names2024.

      Le résultat ressemble à ce qui suit :

      rm: remove dataset 'myproject:babynames'? (y/N)
      
    2. Pour confirmer la commande de suppression, saisissez y.

    Étapes suivantes