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

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

Você vai aprender a:

  1. Ativar o Cloud Shell em um projeto do Google Cloud .
  2. Abrir o editor do Cloud Shell.
  3. Preparar arquivos para consultas.
  4. Consultar um conjunto de dados público no BigQuery.
  5. Fazer a limpeza.

Tempo estimado para a conclusão:

Clique em Iniciar para começar.

Ativar o Cloud Shell em um projeto do Google Cloud

  1. Se você não ativar o faturamento de um projeto, vai trabalhar automaticamente no sandbox do BigQuery. No sandbox do BigQuery, você aprende a usar o BigQuery com um conjunto limitado de recursos sem custos financeiros. Se você não planeja usar o projeto fora deste documento, recomendamos utilizar o sandbox do BigQuery.

  2. Clique em Ativar o Cloud Shell. Mostre

Para saber como abrir o editor do Cloud Shell, clique em Próximo.

Abra o editor do Cloud Shell

  1. No Cloud Shell, crie um projeto e um arquivo do Go:

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

    Esse comando cria um projeto do Go com o nome bigquery-go-quickstart e um arquivo chamado app.go.

  2. Abra o editor do Cloud Shell:

    cloudshell workspace bigquery-go-quickstart
    

Para saber como preparar arquivos para consultas, clique em Próximo.

Preparar arquivos 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 arquivo go.mod:

    go mod init quickstart
    

    O resultado será semelhante a este:

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

    go get cloud.google.com/go/bigquery
    

    A resposta será semelhante ao exemplo a seguir. Várias linhas são omitidas para simplificar a resposta.

    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 Próximo.

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 arquivo app.go para abri-lo.

  4. Para criar uma consulta no conjunto de dados bigquery-public-data.stackoverflow que retorna as 10 páginas mais visualizadas do Stack Overflow e o número de visualizações, copie o código a seguir para o arquivo 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 for necessário autorizar o Cloud Shell e concordar com os termos, clique em Autorizar.

    go run app.go
    

    O resultado será semelhante a este:

    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
    

Você consultou um conjunto de dados público com a biblioteca de cliente em Go do BigQuery.

Para evitar cobranças na conta e saber quais são as próximas etapas, clique em Próximo.

Próximas etapas

Mantenha os recursos criados e aproveite ainda mais o BigQuery ou faça uma limpeza para evitar cobranças de faturamento.

Faça mais com o BigQuery

Limpar

Para evitar cobranças na sua conta do Google Cloud , exclua o projeto do Google Cloud ou os recursos criados neste tutorial.

Excluir o projeto

Se você criou um projeto para aprender sobre o BigQuery e não precisa mais dele, pode excluí-lo. Lembre-se de que a exclusão de um projeto exclui tudo o que está contido nele. Além disso, os IDs dos projetos personalizados são perdidos.

Excluir os recursos

Se você usou um projeto atual, exclua a pasta bigquery-go-quickstart que você criou:

  1. No Cloud Shell, mova um diretório para cima:

    cd ..
    
  2. Exclua os recursos que você criou:

    rm -R bigquery-go-quickstart
    

    A flag -R exclui todos os recursos de uma pasta.