Bibliothèque cliente BigQuery Go : interroger des données publiques

Bibliothèque cliente BigQuery Go : interroger des données publiques

Découvrez comment :

  1. Activer Cloud Shell dans un projet Google Cloud
  2. Ouvrir l'éditeur Cloud Shell
  3. Préparer les fichiers pour les requêtes
  4. Interroger un ensemble de données public dans BigQuery
  5. effectuer un nettoyage.

Durée estimée :

Pour commencer, cliquez sur Démarrer.

Activer Cloud Shell dans un projet Google Cloud

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

  2. Cliquez sur Activer Cloud Shell . Démonstration

Pour découvrir comment ouvrir l'éditeur Cloud Shell, cliquez sur Suivant.

Ouvrir l'éditeur Cloud Shell

  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 intitulé app.go.

  2. Ouvrez l'éditeur Cloud Shell :

    cloudshell workspace bigquery-go-quickstart
    

Pour apprendre à préparer les fichiers pour les requêtes, cliquez sur Suivant.

Préparer les fichiers pour les requêtes

  1. Pour ouvrir un terminal dans l'éditeur Cloud Shell, cliquez sur Ouvrir le terminal.

  2. Ouvrez le répertoire de votre projet :

    cd bigquery-go-quickstart
    
  3. 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
    
  4. 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 le résultat.

    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
    

Pour apprendre à interroger un ensemble de données public dans BigQuery, cliquez sur Suivant.

Interroger un ensemble de données public dans BigQuery

  1. Cliquez sur Ouvrir l'éditeur.

  2. Dans le volet Explorateur, localisez votre projet BIGQUERY-GO-QUICKSTART.

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

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

  5. Cliquez sur Ouvrir le terminal.

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

Pour éviter que des frais ne soient facturés sur votre compte et pour découvrir les étapes suivantes, cliquez sur Suivant.

Étapes suivantes

Conservez les ressources que vous avez créées et exploitez tout le potentiel de BigQuery, ou effectuez un nettoyage pour éviter que des frais ne vous soient facturés.

Exploiter tout le potentiel de BigQuery

Effectuer un nettoyage

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

Supprimer le projet

Si vous avez créé un projet pour apprendre à utiliser BigQuery et que vous n'en avez plus besoin, supprimez-le. Sachez que la suppression d'un projet entraîne la suppression de tout son contenu, y compris des ID de projets personnalisés.

Supprimer les ressources

Si vous avez utilisé un projet existant, supprimez le dossier bigquery-go-quickstart que vous avez créé :

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

    cd ..
    
  2. Supprimez les ressources que vous avez créées :

    rm -R bigquery-go-quickstart
    

    Le flag -R supprime tous les éléments d'un dossier.