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.

Avant de commencer

  1. In the Trusted Cloud console, on the project selector page, select or create a Trusted Cloud project.

    Go to project selector

  2. Verify that billing is enabled for your Trusted Cloud project.

  3. Si vous n'activez pas la facturation pour le projet Trusted 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.

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

  5. In the Trusted Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Trusted 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.

  6. 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 de bébé
    3. Ouvrez le fichier yob2010.txt. Il s'agit d'un fichier CSV contenant les trois colonnes suivantes : prénom, sexe 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 contenir des lettres (A-Z, a-z), des chiffres (0-9) et des traits de soulignement. Il ne doit pas commencer par un chiffre ni un trait de soulignement, et ne peut pas inclure d'espaces.

    2. Vérifiez que l'ensemble de données babynames apparaît désormais 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, elles 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, indiquez à BigQuery de traiter vos données au format Latin-1 à l'aide de bq load -E=ISO-8859-1. Pour en savoir plus, consultez Encodage.

    2. Vérifiez que la table names2010 apparaît désormais 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 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 dans cette démonstration soient facturées sur votre compte Trusted Cloud , supprimez le projet Trusted 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.

    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 Trusted 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