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. Make sure that billing is enabled for your Google Cloud project.

  5. Si vous n'activez pas la facturation pour le projet Cloud que vous utilisez dans ce tutoriel, vous utiliserez les données du 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.

Télécharger le fichier de données publiques source

  1. Téléchargez le fichier ZIP des prénoms donnés aux enfants.
  2. Extrayez le fichier ZIP. Il contient un fichier nommé NationalReadMe.pdf, qui décrit le schéma de l'ensemble de données. En savoir plus sur l'ensemble de données des prénoms donnés aux enfants
  3. Ouvrez le fichier yob2010.txt. Il s'agit d'un fichier CSV contenant les trois colonnes suivantes : prénom, genre attribué à la naissance et 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 yob2010.txt, puis cliquez sur Importer.
    • Si vous utilisez un shell local, copiez ou déplacez le fichier yob2010.txt dans le répertoire dans lequel vous exécutez l'outil bq.

Créer un ensemble de données

  1. Créez un ensemble de données nommé babynames :

    bq mk babynames
    

    Le résultat ressemble à ce qui suit :

    Dataset 'myproject:babynames' successfully created.
    

    Le nom d'un ensemble de données peut comporter jusqu'à 1 024 caractères et comprend les caractères suivants : A-Z, a-z, 0-9 et trait de soulignement. Le nom ne peut pas commencer par un chiffre ni un trait de soulignement, et ne peut pas contenir d'espace.

  2. Vérifiez que l'ensemble de données babynames apparaît maintenant dans votre projet :

    bq ls
    

    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 yob2010.txt dans une nouvelle table nommée names2010 :

    bq load babynames.names2010 yob2010.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
    

    Par défaut, lorsque vous chargez des données dans BigQuery, ces dernières doivent être encodées au format UTF-8. Si vous utilisez l'encodage ISO-8859-1 (ou Latin-1) et que vous rencontrez des problèmes avec celui-ci, indiquez à BigQuery de traiter vos données avec l'encodage Latin-1 à l'aide de bq load -E=ISO-8859-1. Pour en savoir plus, consultez la section Encodage.

  2. Vérifiez que la table names2010 apparaît maintenant dans l'ensemble de données babynames :

    bq ls babynames
    

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

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

    bq show babynames.names2010
    

    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                    34089       654791
                      |- 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 --use_legacy_sql=false \
        'SELECT
          name,
          count
        FROM
          `babynames.names2010`
        WHERE
          assigned_sex_at_birth = "F"
        ORDER BY
          count DESC
        LIMIT 5;'
    

    Le résultat ressemble à ce qui suit :

    +----------+-------+
    |   name   | count |
    +----------+-------+
    | Isabella | 22925 |
    | Sophia   | 20648 |
    | Emma     | 17354 |
    | Olivia   | 17030 |
    | Ava      | 15436 |
    +----------+-------+
    
  2. Déterminez les prénoms de garçons les moins populaires dans les données :

    bq query --use_legacy_sql=false \
        'SELECT
          name,
          count
        FROM
          `babynames.names2010`
        WHERE
          assigned_sex_at_birth = "M"
        ORDER BY
          count ASC
        LIMIT 5;'
    

    Le résultat ressemble à ce qui suit :

    +----------+-------+
    |   name   | count |
    +----------+-------+
    | Aamarion |     5 |
    | Aarian   |     5 |
    | Aaqib    |     5 |
    | Aaidan   |     5 |
    | Aadhavan |     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 sur cette page ne soient facturées sur votre compte Google Cloud, supprimez le projet Google Cloud contenant les ressources.

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.

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

    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