Interroger un ensemble de données public avec les bibliothèques clientes BigQuery

Découvrez comment interroger un ensemble de données public avec les bibliothèques clientes BigQuery.


Pour obtenir des instructions détaillées sur cette tâche directement dans la console Google Cloud, sélectionnez le langage de programmation de votre choix :

Visite guidée C# Visite guidée Go Visite guidée Java Visite guidée Node.js

Visite guidée PHP Visite guidée Python Visite guidée Ruby


Avant de commencer

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

    Go to project selector

  2. Indiquez si vous souhaitez utiliser le bac à sable BigQuery sans frais, ou bien activer la facturation pour votre projet Google Cloud.

    Si vous n'activez pas la facturation pour un projet, vous travaillez automatiquement dans le bac à sable BigQuery. Le bac à sable BigQuery vous permet d'apprendre à utiliser BigQuery avec un ensemble limité de fonctionnalités offertes. Si vous ne prévoyez pas d'utiliser votre projet au-delà de ce document, nous vous recommandons d'utiliser le bac à sable BigQuery.

  3. Enable the BigQuery API.

    Enable the API

    Pour les nouveaux projets, l'API BigQuery est activée automatiquement.

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

    Activate Cloud Shell

  5. Activez votre projet Google Cloud dans Cloud Shell :

    gcloud config set project PROJECT_ID
    

    Remplacez PROJECT_ID par le projet que vous avez sélectionné pour ce tutoriel.

    Le résultat ressemble à ce qui suit :

    Updated property [core/project].
    

Interroger un ensemble de données public

Sélectionnez l'un des langages suivants :

C#

  1. Dans Cloud Shell, créez un projet C# et le fichier associé :

    dotnet new console -n BigQueryCsharpDemo
    

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

    Welcome to .NET 6.0!
    ---------------------
    SDK Version: 6.0.407
    ...
    The template "Console App" was created successfully.
    ...
    

    Cette commande crée un projet C# nommé BigQueryCsharpDemo et un fichier nommé Program.cs.

  2. Ouvrez l'éditeur Cloud Shell :

    cloudshell workspace BigQueryCsharpDemo
    
  3. Pour ouvrir un terminal dans l'éditeur Cloud Shell, cliquez sur Terminal > Nouveau terminal.

  4. Installez la bibliothèque cliente BigQuery pour C# :

    dotnet add package Google.Cloud.BigQuery.V2
    

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

    Determining projects to restore...
    Writing /tmp/tmpF7EKSd.tmp
    ...
    info : Writing assets file to disk.
    ...
    
  5. Définissez la variable GOOGLE_PROJECT_ID sur la valeur GOOGLE_CLOUD_PROJECT et exportez-la :

    export GOOGLE_PROJECT_ID=$GOOGLE_CLOUD_PROJECT
    
  6. Dans le volet Explorer, localisez votre projet BIGQUERYCSHARPDEMO.

  7. Cliquez sur le fichier Program.cs pour l'ouvrir.

  8. Pour créer une requête sur l'ensemble de données bigquery-public-data.stackoverflow qui renvoie les 10 pages Stack Overflow les plus consultées et leur nombre de vues, remplacez le contenu du fichier par le code suivant :

    using System;
    using Google.Cloud.BigQuery.V2;
    
    namespace GoogleCloudSamples
    {
        public class Program
        {
            public static void Main(string[] args)
            {
                string projectId = Environment.GetEnvironmentVariable(GOOGLE_PROJ"ECT_ID);
            "    var client = BigQueryClient.Create(projectId);
                string query = @SELECT
          "          CONCAT(
                        https://stackov'erflow.com/questions/,
                 '       CAST(id as STRING)) as url, view_count
                    FROM `bigquery-public-data.stackoverflow.posts_questions`
                    WHERE tags like %google-bigquery%
    '                O'RDER BY view_count DESC
                    LIMIT 10;
                var re"sult = client.ExecuteQuery(query, parameters: null);
                Console.Write(\nQuery Results:\n----"--------\n);
                foreach" (var row in result)
                {
                    Console.WriteLine(${row[url]}: {row[view_cou"nt]} "vie"ws);
        "        }
    "        "}
        }
    }

  9. Dans le terminal, exécutez le script Program.cs. Si vous êtes invité à autoriser Cloud Shell et à accepter les conditions, cliquez sur Autoriser.

    dotnet run
    

    Le résultat ressemble à ce qui suit :

    Query Results:
    ------------
    https://stackoverflow.com/questions/35159967: 170023 views
    https://stackoverflow.com/questions/22879669: 142581 views
    https://stackoverflow.com/questions/10604135: 132406 views
    https://stackoverflow.com/questions/44564887: 128781 views
    https://stackoverflow.com/questions/27060396: 127008 views
    https://stackoverflow.com/questions/12482637: 120766 views
    https://stackoverflow.com/questions/20673986: 115720 views
    https://stackoverflow.com/questions/39109817: 108368 views
    https://stackoverflow.com/questions/11057219: 105175 views
    https://stackoverflow.com/questions/43195143: 101878 views
    

Vous venez d'interroger un ensemble de données public avec la bibliothèque cliente BigQuery pour C#.

Go

  1. Dans Cloud Shell, créez un projet Go et le fichier associé :

    mkdir bigquery-go-quickstart \
        && touch \
        bigquery-go-quickstart/app.go
    

    Cette commande crée un projet Go nommé bigquery-go-quickstart et un fichier nommé app.go.

  2. Ouvrez l'éditeur Cloud Shell :

    cloudshell workspace bigquery-go-quickstart
    
  3. Pour ouvrir un terminal dans l'éditeur Cloud Shell, cliquez sur Terminal > Nouveau terminal.

  4. Créez un fichier go.mod :

    go mod init quickstart
    

    Le résultat ressemble à ce qui suit :

    go: creating new go.mod: module quickstart
    go: to add module requirements and sums:
            go mod tidy
    
  5. Installez la bibliothèque cliente BigQuery pour Go :

    go get cloud.google.com/go/bigquery
    

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

    go: downloading cloud.google.com/go/bigquery v1.49.0
    go: downloading cloud.google.com/go v0.110.0
    ...
    go: added cloud.google.com/go/bigquery v1.49.0
    go: added cloud.google.com/go v0.110.0
    
  6. Dans le volet Explorer, localisez votre projet BIGQUERY-GO-QUICKSTART.

  7. Cliquez sur le fichier app.go pour l'ouvrir.

  8. Pour créer une requête sur l'ensemble de données bigquery-public-data.stackoverflow qui renvoie les 10 pages Stack Overflow les plus consultées et leur nombre de vues, copiez le code suivant dans le fichier app.go :

    
    // Command simpleapp queries the Stack Overflow public dataset in Google BigQuery.
    package main
    
    import (
    	"context"
    	"fmt"
    	"io"
    	"log"
    	"os"
    
    	"cloud.google.com/go/bigquery"
    	"google.golang.org/api/iterator"
    )
    
    
    func main() {
    	projectID := os.Getenv("GOOGLE_CLOUD_PROJECT")
    	if projectID == "" {
    		fmt.Println("GOOGLE_CLOUD_PROJECT environment variable must be set.")
    		os.Exit(1)
    	}
    
    	ctx := context.Background()
    
    	client, err := bigquery.NewClient(ctx, projectID)
    	if err != nil {
    		log.Fatalf("bigquery.NewClient: %v", err)
    	}
    	defer client.Close()
    
    	rows, err := query(ctx, client)
    	if err != nil {
    		log.Fatal(err)
    	}
    	if err := printResults(os.Stdout, rows); err != nil {
    		log.Fatal(err)
    	}
    }
    
    // query returns a row iterator suitable for reading query results.
    func query(ctx context.Context, client *bigquery.Client) (*bigquery.RowIterator, error) {
    
    	query := client.Query(
    		`SELECT
    			CONCAT(
    				'https://stackoverflow.com/questions/',
    				CAST(id as STRING)) as url,
    			view_count
    		FROM ` + "`bigquery-public-data.stackoverflow.posts_questions`" + `
    		WHERE tags like '%google-bigquery%'
    		ORDER BY view_count DESC
    		LIMIT 10;`)
    	return query.Read(ctx)
    }
    
    type StackOverflowRow struct {
    	URL       string `bigquery:"url"`
    	ViewCount int64  `bigquery:"view_count"`
    }
    
    // printResults prints results from a query to the Stack Overflow public dataset.
    func printResults(w io.Writer, iter *bigquery.RowIterator) error {
    	for {
    		var row StackOverflowRow
    		err := iter.Next(&row)
    		if err == iterator.Done {
    			return nil
    		}
    		if err != nil {
    			return fmt.Errorf("error iterating through results: %w", err)
    		}
    
    		fmt.Fprintf(w, "url: %s views: %d\n", row.URL, row.ViewCount)
    	}
    }
    

  9. Dans le terminal, exécutez le script app.go. Si vous êtes invité à autoriser Cloud Shell et à accepter les conditions, cliquez sur Autoriser.

    go run app.go
    

    Le résultat ressemble à ce qui suit :

    https://stackoverflow.com/questions/35159967 : 170023 views
    https://stackoverflow.com/questions/22879669 : 142581 views
    https://stackoverflow.com/questions/10604135 : 132406 views
    https://stackoverflow.com/questions/44564887 : 128781 views
    https://stackoverflow.com/questions/27060396 : 127008 views
    https://stackoverflow.com/questions/12482637 : 120766 views
    https://stackoverflow.com/questions/20673986 : 115720 views
    https://stackoverflow.com/questions/39109817 : 108368 views
    https://stackoverflow.com/questions/11057219 : 105175 views
    https://stackoverflow.com/questions/43195143 : 101878 views
    

Vous venez d'interroger un ensemble de données public avec la bibliothèque cliente BigQuery pour Go.

Java

  1. Dans Cloud Shell, créez un projet Java à l'aide d'Apache Maven :

    mvn archetype:generate \
        -DgroupId=com.google.app \
        -DartifactId=bigquery-java-quickstart \
        -DinteractiveMode=false
    

    Cette commande crée un projet Maven nommé bigquery-java-quickstart.

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

    [INFO] Scanning for projects...
    ...
    [INFO] Building Maven Stub Project (No POM) 1
    ...
    [INFO] BUILD SUCCESS
    ...
    

    Outre Maven, vous pouvez aussi utiliser de nombreux autres systèmes de gestion des dépendances. Pour en savoir plus, découvrez comment configurer un environnement de développement Java à utiliser avec les bibliothèques clientes.

  2. Renommez le fichier App.java que Maven a créé par défaut :

    mv \
        bigquery-java-quickstart/src/main/java/com/google/app/App.java \
        bigquery-java-quickstart/src/main/java/com/google/app/SimpleApp.java
    
  3. Ouvrez l'éditeur Cloud Shell :

    cloudshell workspace bigquery-java-quickstart
    
  4. Si vous êtes invité à synchroniser la configuration ou le chemin d'accès aux classes Java, cliquez sur Toujours.

    Si vous n'y êtes pas invité et que vous rencontrez une erreur liée au chemin d'accès aux classes lors de ce tutoriel, procédez comme suit :

    1. Cliquez sur Fichier > Préférences > Ouvrir les paramètres (interface utilisateur).
    2. Cliquez sur Extensions > Java.
    3. Faites défiler la page jusqu'à Configuration : mettre à jour la configuration de compilation, puis sélectionnez Automatique.
  5. Dans le volet Explorer, localisez votre projet BIGQUERY-JAVA-QUICKSTART.

  6. Cliquez sur le fichier pom.xml pour l'ouvrir.

  7. Dans le tag <dependencies>, ajoutez la dépendance suivante après celles pouvant déjà y figurer. Ne remplacez aucune dépendance existante.

    <dependency>
      <groupId>com.google.cloud</groupId>
      <artifactId>google-cloud-bigquery</artifactId>
    </dependency>
    
  8. Sur la ligne qui suit le tag de fermeture (</dependencies>), ajoutez le code suivant :

    <dependencyManagement>
      <dependencies>
        <dependency>
          <groupId>com.google.cloud</groupId>
          <artifactId>libraries-bom</artifactId>
          <version>26.1.5</version>
          <type>pom</type>
          <scope>import</scope>
        </dependency>
      </dependencies>
    </dependencyManagement>
    
  9. Dans le volet Explorer, dans votre projet BIGQUERY-JAVA-QUICKSTART, cliquez sur Explorer. Le fichier s'ouvre.

  10. Pour créer une requête sur l'ensemble de données bigquery-public-data.stackoverflow, conservez la première ligne du fichier (package com.google.app;) et remplacez le restant de son contenu par le code suivant :

    
    import com.google.cloud.bigquery.BigQuery;
    import com.google.cloud.bigquery.BigQueryOptions;
    import com.google.cloud.bigquery.FieldValueList;
    import com.google.cloud.bigquery.Job;
    import com.google.cloud.bigquery.JobId;
    import com.google.cloud.bigquery.JobInfo;
    import com.google.cloud.bigquery.QueryJobConfiguration;
    import com.google.cloud.bigquery.TableResult;
    import java.util.UUID;
    
    
    public class SimpleApp {
      public static void main(String... args) throws Exception {
        BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService();
        QueryJobConfiguration queryConfig =
            QueryJobConfiguration.newBuilder(
                    "SELECT CONCAT('https://stackoverflow.com/questions/', "
                        + "CAST(id as STRING)) as url, view_count "
                        + "FROM `bigquery-public-data.stackoverflow.posts_questions` "
                        + "WHERE tags like '%google-bigquery%' "
                        + "ORDER BY view_count DESC "
                        + "LIMIT 10")
                // Use standard SQL syntax for queries.
                // See: https://cloud.google.com/bigquery/sql-reference/
                .setUseLegacySql(false)
                .build();
    
        // Create a job ID so that we can safely retry.
        JobId jobId = JobId.of(UUID.randomUUID().toString());
        Job queryJob = bigquery.create(JobInfo.newBuilder(queryConfig).setJobId(jobId).build());
    
        // Wait for the query to complete.
        queryJob = queryJob.waitFor();
    
        // Check for errors
        if (queryJob == null) {
          throw new RuntimeException("Job no longer exists");
        } else if (queryJob.getStatus().getError() != null) {
          // You can also look at queryJob.getStatus().getExecutionErrors() for all
          // errors, not just the latest one.
          throw new RuntimeException(queryJob.getStatus().getError().toString());
        }
    
        // Get the results.
        TableResult result = queryJob.getQueryResults();
    
        // Print all pages of the results.
        for (FieldValueList row : result.iterateAll()) {
          // String type
          String url = row.get("url").getStringValue();
          String viewCount = row.get("view_count").getStringValue();
          System.out.printf("%s : %s views\n", url, viewCount);
        }
      }
    }

    La requête renvoie les 10 pages Stack Overflow les plus consultées et leur nombre de vues.

  11. Effectuez un clic droit sur SimpleApp.java, puis cliquez sur SimpleApp.java. Si vous êtes invité à autoriser Cloud Shell et à accepter les conditions, cliquez sur Autoriser.

    Le résultat ressemble à ce qui suit :

    https://stackoverflow.com/questions/35159967 : 170023 views
    https://stackoverflow.com/questions/22879669 : 142581 views
    https://stackoverflow.com/questions/10604135 : 132406 views
    https://stackoverflow.com/questions/44564887 : 128781 views
    https://stackoverflow.com/questions/27060396 : 127008 views
    https://stackoverflow.com/questions/12482637 : 120766 views
    https://stackoverflow.com/questions/20673986 : 115720 views
    https://stackoverflow.com/questions/39109817 : 108368 views
    https://stackoverflow.com/questions/11057219 : 105175 views
    https://stackoverflow.com/questions/43195143 : 101878 views
    

Vous venez d'interroger un ensemble de données public avec la bibliothèque cliente BigQuery pour Java.

Node.js

  1. Dans Cloud Shell, créez un projet Node.js et le fichier associé :

    mkdir bigquery-node-quickstart \
        && touch \
        bigquery-node-quickstart/app.js
    

    Cette commande crée un projet Node.js nommé bigquery-node-quickstart et un fichier nommé app.js.

  2. Ouvrez l'éditeur Cloud Shell :

    cloudshell workspace bigquery-node-quickstart
    
  3. Pour ouvrir un terminal dans l'éditeur Cloud Shell, cliquez sur Terminal > Nouveau terminal.

  4. Installez la bibliothèque cliente BigQuery pour Node.js :

    npm install --save @google-cloud/bigquery
    

    Le résultat ressemble à ce qui suit :

    added 63 packages in 2s
    
  5. Dans le volet Explorer, localisez votre projet BIGQUERY-NODE-QUICKSTART.

  6. Cliquez sur le fichier app.js pour l'ouvrir.

  7. Pour créer une requête sur l'ensemble de données bigquery-public-data.stackoverflow qui renvoie les 10 pages Stack Overflow les plus consultées et leur nombre de vues, copiez le code suivant dans le fichier app.js :

    // Import the Google Cloud client library
    const {BigQuery} = require('@google-cloud/bigquery');
    
    async function queryStackOverflow() {
      // Queries a public Stack Overflow dataset.
    
      // Create a client
      const bigqueryClient = new BigQuery();
    
      // The SQL query to run
      const sqlQuery = `SELECT
        CONCAT(
          'https://stackoverflow.com/questions/',
          CAST(id as STRING)) as url,
        view_count
        FROM \`bigquery-public-data.stackoverflow.posts_questions\`
        WHERE tags like '%google-bigquery%'
        ORDER BY view_count DESC
        LIMIT 10`;
    
      const options = {
        query: sqlQuery,
        // Location must match that of the dataset(s) referenced in the query.
        location: 'US',
      };
    
      // Run the query
      const [rows] = await bigqueryClient.query(options);
    
      console.log('Query Results:');
      rows.forEach(row => {
        const url = row['url'];
        const viewCount = row['view_count'];
        console.log(`url: ${url}, ${viewCount} views`);
      });
    }
    queryStackOverflow();

  8. Dans le terminal, exécutez le script app.js. Si vous êtes invité à autoriser Cloud Shell et à accepter les conditions, cliquez sur Autoriser.

    node app.js
    

    Le résultat ressemble à ce qui suit :

    Query Results:
    url: https://stackoverflow.com/questions/35159967, 170023 views
    url: https://stackoverflow.com/questions/22879669, 142581 views
    url: https://stackoverflow.com/questions/10604135, 132406 views
    url: https://stackoverflow.com/questions/44564887, 128781 views
    url: https://stackoverflow.com/questions/27060396, 127008 views
    url: https://stackoverflow.com/questions/12482637, 120766 views
    url: https://stackoverflow.com/questions/20673986, 115720 views
    url: https://stackoverflow.com/questions/39109817, 108368 views
    url: https://stackoverflow.com/questions/11057219, 105175 views
    url: https://stackoverflow.com/questions/43195143, 101878 views
    

Vous venez d'interroger un ensemble de données public avec la bibliothèque cliente BigQuery pour Node.js.

PHP

  1. Dans Cloud Shell, créez un projet PHP et le fichier associé :

    mkdir bigquery-php-quickstart \
        && touch \
        bigquery-php-quickstart/app.php
    

    Cette commande crée un projet PHP nommé bigquery-php-quickstart et un fichier nommé app.php.

  2. Ouvrez l'éditeur Cloud Shell :

    cloudshell workspace bigquery-php-quickstart
    
  3. Pour ouvrir un terminal dans l'éditeur Cloud Shell, cliquez sur Terminal > Nouveau terminal.

  4. Installez la bibliothèque cliente BigQuery pour PHP :

    composer require google/cloud-bigquery
    

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

    Running composer update google/cloud-bigquery
    Loading composer repositories with package information
    Updating dependencies
    ...
    No security vulnerability advisories found
    Using version ^1.24 for google/cloud-bigquery
    
  5. Dans le volet Explorer, localisez votre projet BIGQUERY-PHP-QUICKSTART.

  6. Cliquez sur le fichier app.php pour l'ouvrir.

  7. Pour créer une requête sur l'ensemble de données bigquery-public-data.stackoverflow qui renvoie les 10 pages Stack Overflow les plus consultées et leur nombre de vues, copiez le code suivant dans le fichier app.php :

    <?php
    # ...
    
    require __DIR__ . '/vendor/autoload.php';
    
    use Google\Cloud\BigQuery\BigQueryClient;
    
    
    $bigQuery = new BigQueryClient();
    $query = <<<ENDSQL
    SELECT
      CONCAT(
        'https://stackoverflow.com/questions/',
        CAST(id as STRING)) as url,
      view_count
    FROM `bigquery-public-data.stackoverflow.posts_questions`
    WHERE tags like '%google-bigquery%'
    ORDER BY view_count DESC
    LIMIT 10;
    ENDSQL;
    $queryJobConfig = $bigQuery->query($query);
    $queryResults = $bigQuery->runQuery($queryJobConfig);
    
    if ($queryResults->isComplete()) {
        $i = 0;
        $rows = $queryResults->rows();
        foreach ($rows as $row) {
            printf('--- Row %s ---' . PHP_EOL, ++$i);
            printf('url: %s, %s views' . PHP_EOL, $row['url'], $row['view_count']);
        }
        printf('Found %s row(s)' . PHP_EOL, $i);
    } else {
        throw new Exception('The query failed to complete');
    }

  8. Dans le terminal, exécutez le script app.php. Si vous êtes invité à autoriser Cloud Shell et à accepter les conditions, cliquez sur Autoriser.

    php app.php
    

    Le résultat ressemble à ce qui suit :

    --- Row 1 ---
    url: https://stackoverflow.com/questions/35159967, 170023 views
    --- Row 2 ---
    url: https://stackoverflow.com/questions/22879669, 142581 views
    --- Row 3 ---
    url: https://stackoverflow.com/questions/10604135, 132406 views
    --- Row 4 ---
    url: https://stackoverflow.com/questions/44564887, 128781 views
    --- Row 5 ---
    url: https://stackoverflow.com/questions/27060396, 127008 views
    --- Row 6 ---
    url: https://stackoverflow.com/questions/12482637, 120766 views
    --- Row 7 ---
    url: https://stackoverflow.com/questions/20673986, 115720 views
    --- Row 8 ---
    url: https://stackoverflow.com/questions/39109817, 108368 views
    --- Row 9 ---
    url: https://stackoverflow.com/questions/11057219, 105175 views
    --- Row 10 ---
    url: https://stackoverflow.com/questions/43195143, 101878 views
    Found 10 row(s)
    

Vous venez d'interroger un ensemble de données public avec la bibliothèque cliente BigQuery pour PHP.

Python

  1. Dans Cloud Shell, créez un projet Python et le fichier associé :

    mkdir bigquery-python-quickstart \
        && touch \
        bigquery-python-quickstart/app.py
    

    Cette commande crée un projet Python nommé bigquery-python-quickstart et un fichier nommé app.py.

  2. Ouvrez l'éditeur Cloud Shell :

    cloudshell workspace bigquery-python-quickstart
    
  3. Pour ouvrir un terminal dans l'éditeur Cloud Shell, cliquez sur Terminal > Nouveau terminal.

  4. Installez la bibliothèque cliente BigQuery pour Python :

    pip install --upgrade google-cloud-bigquery
    

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

    Installing collected packages: google-cloud-bigquery
    ...
    Successfully installed google-cloud-bigquery-3.9.0
    ...
    
  5. Dans le volet Explorer, localisez votre projet BIGQUERY-PYTHON-QUICKSTART.

  6. Cliquez sur le fichier app.py pour l'ouvrir.

  7. Pour créer une requête sur l'ensemble de données bigquery-public-data.stackoverflow qui renvoie les 10 pages Stack Overflow les plus consultées et leur nombre de vues, copiez le code suivant dans le fichier app.py :

    from google.cloud import bigquery
    
    
    
    def query_stackoverflow():
        client = bigquery.Client()
        query_job = client.query(
            """
            SELECT
              CONCAT(
                'https://stackoverflow.com/questions/',
                CAST(id as STRING)) as url,
              view_count
            FROM `bigquery-public-data.stackoverflow.posts_questions`
            WHERE tags like '%google-bigquery%'
            ORDER BY view_count DESC
            LIMIT 10"""
        )
    
        results = query_job.result()  # Waits for job to complete.
    
        for row in results:
            print("{} : {} views".format(row.url, row.view_count))
    
    
    if __name__ == "__main__":
        query_stackoverflow()

  8. Dans le terminal, exécutez le script app.py. Si vous êtes invité à autoriser Cloud Shell et à accepter les conditions, cliquez sur Autoriser.

    python app.py
    

    Le résultat ressemble à ce qui suit :

    https://stackoverflow.com/questions/35159967 : 170023 views
    https://stackoverflow.com/questions/22879669 : 142581 views
    https://stackoverflow.com/questions/10604135 : 132406 views
    https://stackoverflow.com/questions/44564887 : 128781 views
    https://stackoverflow.com/questions/27060396 : 127008 views
    https://stackoverflow.com/questions/12482637 : 120766 views
    https://stackoverflow.com/questions/20673986 : 115720 views
    https://stackoverflow.com/questions/39109817 : 108368 views
    https://stackoverflow.com/questions/11057219 : 105175 views
    https://stackoverflow.com/questions/43195143 : 101878 views
    

Vous venez d'interroger un ensemble de données public avec la bibliothèque cliente BigQuery pour Python.

Ruby

  1. Dans Cloud Shell, créez un projet Ruby et le fichier associé :

    mkdir bigquery-ruby-quickstart \
        && touch \
        bigquery-ruby-quickstart/app.rb
    

    Cette commande crée un projet Ruby nommé bigquery-ruby-quickstart et un fichier nommé app.rb.

  2. Ouvrez l'éditeur Cloud Shell :

    cloudshell workspace bigquery-ruby-quickstart
    
  3. Pour ouvrir un terminal dans l'éditeur Cloud Shell, cliquez sur Terminal > Nouveau terminal.

  4. Installez la bibliothèque cliente BigQuery pour Ruby :

    gem install google-cloud-bigquery
    

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

    23 gems installed
    
  5. Dans le volet Explorer, localisez votre projet BIGQUERY-RUBY-QUICKSTART.

  6. Cliquez sur le fichier app.rb pour l'ouvrir.

  7. Pour créer une requête sur l'ensemble de données bigquery-public-data.stackoverflow qui renvoie les 10 pages Stack Overflow les plus consultées et leur nombre de vues, copiez le code suivant dans le fichier app.rb :

    require "google/cloud/bigquery"
    
    # This uses Application Default Credentials to authenticate.
    # @see https://cloud.google.com/bigquery/docs/authentication/getting-started
    bigquery = Google::Cloud::Bigquery.new
    
    sql     = "SELECT " \
              "CONCAT('https://stackoverflow.com/questions/', CAST(id as STRING)) as url, view_count " \
              "FROM `bigquery-public-data.stackoverflow.posts_questions` " \
              "WHERE tags like '%google-bigquery%' " \
              "ORDER BY view_count DESC LIMIT 10"
    results = bigquery.query sql
    
    results.each do |row|
      puts "#{row[:url]}: #{row[:view_count]} views"
    end

  8. Dans le terminal, exécutez le script app.rb. Si vous êtes invité à autoriser Cloud Shell et à accepter les conditions, cliquez sur Autoriser.

    ruby app.rb
    

    Le résultat ressemble à ce qui suit :

    https://stackoverflow.com/questions/35159967: 170023 views
    https://stackoverflow.com/questions/22879669: 142581 views
    https://stackoverflow.com/questions/10604135: 132406 views
    https://stackoverflow.com/questions/44564887: 128781 views
    https://stackoverflow.com/questions/27060396: 127008 views
    https://stackoverflow.com/questions/12482637: 120766 views
    https://stackoverflow.com/questions/20673986: 115720 views
    https://stackoverflow.com/questions/39109817: 108368 views
    https://stackoverflow.com/questions/11057219: 105175 views
    https://stackoverflow.com/questions/43195143: 101878 views
    

Vous venez d'interroger un ensemble de données public avec la bibliothèque cliente BigQuery pour Ruby.

Effectuer un nettoyage

Pour éviter que des frais ne soient facturés sur votre compte Google Cloud, supprimez votre projet Google Cloud, ou bien supprimez les ressources que vous avez créées dans ce tutoriel.

Supprimer le 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 :

C#

  1. Dans Cloud Shell, remontez dans le répertoire parent de celui actuellement sélectionné :

    cd ..
    
  2. Supprimez le dossier BigQueryCsharpDemo que vous avez créé :

    rm -R BigQueryCsharpDemo
    

    L'option -R supprime tous les éléments d'un dossier.

Go

  1. Dans Cloud Shell, remontez dans le répertoire parent de celui actuellement sélectionné :

    cd ..
    
  2. Supprimez le dossier bigquery-go-quickstart que vous avez créé :

    rm -R bigquery-go-quickstart
    

    L'option -R supprime tous les éléments d'un dossier.

Java

  1. Dans Cloud Shell, remontez dans le répertoire parent de celui actuellement sélectionné :

    cd ..
    
  2. Supprimez le dossier bigquery-java-quickstart que vous avez créé :

    rm -R bigquery-java-quickstart
    

    L'option -R supprime tous les éléments d'un dossier.

Node.js

  1. Dans Cloud Shell, remontez dans le répertoire parent de celui actuellement sélectionné :

    cd ..
    
  2. Supprimez le dossier bigquery-node-quickstart que vous avez créé :

    rm -R bigquery-node-quickstart
    

    L'option -R supprime tous les éléments d'un dossier.

PHP

  1. Dans Cloud Shell, remontez dans le répertoire parent de celui actuellement sélectionné :

    cd ..
    
  2. Supprimez le dossier bigquery-php-quickstart que vous avez créé :

    rm -R bigquery-php-quickstart
    

    L'option -R supprime tous les éléments d'un dossier.

Python

  1. Dans Cloud Shell, remontez dans le répertoire parent de celui actuellement sélectionné :

    cd ..
    
  2. Supprimez le dossier bigquery-python-quickstart que vous avez créé :

    rm -R bigquery-python-quickstart
    

    L'option -R supprime tous les éléments d'un dossier.

Ruby

  1. Dans Cloud Shell, remontez dans le répertoire parent de celui actuellement sélectionné :

    cd ..
    
  2. Supprimez le dossier bigquery-ruby-quickstart que vous avez créé :

    rm -R bigquery-ruby-quickstart
    

    L'option -R supprime tous les éléments d'un dossier.

Étapes suivantes