Consulte um conjunto de dados público com a biblioteca cliente do BigQuery para Go

Consulte um conjunto de dados público com a biblioteca cliente do BigQuery para Go

Saiba como:

  1. Ativar o Cloud Shell num Google Cloud projeto.
  2. Abrir o editor do Cloud Shell.
  3. Preparar ficheiros para consultas.
  4. Consultar um conjunto de dados público no BigQuery.
  5. Limpar.

Tempo estimado para concluir:

Clique em Iniciar para começar.

Ative o Cloud Shell num Google Cloud projeto

  1. Se não ativar a faturação para um projeto, trabalha automaticamente no sandbox do BigQuery. O sandbox do BigQuery permite-lhe aprender a usar o BigQuery com um conjunto limitado de funcionalidades do BigQuery sem custo financeiro. Se não planear usar o seu projeto para além deste documento, recomendamos que use o sandbox do BigQuery.

  2. Clique em Ativar Cloud Shell. Mostrar-me

Para saber como abrir o editor do Cloud Shell, clique em Seguinte.

Abra o editor do Cloud Shell

  1. No Cloud Shell, crie um novo projeto e ficheiro Go:

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

    Este comando cria um projeto Go com o nome bigquery-go-quickstart e um ficheiro com o nome app.go.

  2. Abra o editor do Cloud Shell:

    cloudshell workspace bigquery-go-quickstart
    

Para saber como preparar ficheiros para consultas, clique em Seguinte.

Prepare ficheiros para consultas

  1. Para abrir um terminal no editor do Cloud Shell, clique em Abrir terminal.

  2. Abra o diretório do projeto:

    cd bigquery-go-quickstart
    
  3. Crie um ficheiro go.mod:

    go mod init quickstart
    

    O resultado é semelhante ao seguinte:

    go: creating new go.mod: module quickstart
    go: to add module requirements and sums:
            go mod tidy
    
  4. Instale a biblioteca cliente do BigQuery para Go:

    go get cloud.google.com/go/bigquery
    

    O resultado é semelhante ao seguinte. Omitiram-se várias linhas para simplificar o resultado.

    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
    

Para saber como consultar um conjunto de dados público no BigQuery, clique em Seguinte.

Consulte um conjunto de dados público no BigQuery

  1. Clique em Abrir editor.

  2. No painel Explorador, localize o projeto BIGQUERY-GO-QUICKSTART.

  3. Clique no ficheiro app.go para o abrir.

  4. Para criar uma consulta no conjunto de dados bigquery-public-data.stackoverflow que devolva as 10 páginas do Stack Overflow mais vistas e as respetivas contagens de visualizações, copie o seguinte código para o ficheiro 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. Clique em Abrir terminal.

  6. No terminal, execute o script app.go. Se lhe for pedido que autorize o Cloud Shell e aceite os termos, clique em Autorizar.

    go run app.go
    

    O resultado é semelhante ao seguinte:

    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
    

Consultou com êxito um conjunto de dados público com a biblioteca cliente do BigQuery para Go.

Para evitar custos na sua conta e saber mais sobre os passos seguintes, clique em Seguinte.

Passos seguintes

Mantenha os recursos que criou e faça mais com o BigQuery ou limpe para evitar cobranças de faturação.

Faça mais com o BigQuery

Limpe

Para evitar custos na sua Google Cloud conta, elimine o seu Google Cloud projeto ou elimine os recursos que criou neste tutorial.

Elimine o projeto

Se criou um novo projeto para saber mais sobre o BigQuery e já no precisa do projeto, elimine-o. Tenha em atenção que a eliminação de um projeto elimina tudo no projeto e os IDs de projetos personalizados são perdidos.

Elimine os recursos

Se usou um projeto existente, elimine a pasta bigquery-go-quickstart que criou:

  1. No Cloud Shell, avance um diretório:

    cd ..
    
  2. Elimine os recursos que criou:

    rm -R bigquery-go-quickstart
    

    A opção -R elimina todos os recursos numa pasta.