Membuat kueri set data publik dengan library klien BigQuery Go

Membuat kueri set data publik dengan library klien BigQuery Go

Pelajari cara:

  1. Aktifkan Cloud Shell di project Google Cloud .
  2. Buka Cloud Shell Editor.
  3. Siapkan file untuk kueri.
  4. Buat kueri set data publik di BigQuery.
  5. Jalankan pembersihan.

Perkiraan waktu penyelesaian:

Klik Mulai untuk memulai.

Mengaktifkan Cloud Shell di project Google Cloud

  1. Jika penagihan untuk suatu project tidak diaktifkan, Anda akan secara otomatis menggunakan sandbox BigQuery. Sandbox BigQuery memungkinkan Anda mempelajari BigQuery dengan sekumpulan fitur terbatas BigQuery tanpa biaya. Jika Anda tidak berencana untuk menggunakan project di luar dokumen ini, sebaiknya gunakan sandbox BigQuery.

  2. Klik Aktifkan Cloud Shell. Tunjukkan pada saya

Untuk mempelajari cara membuka Cloud Shell Editor, klik Berikutnya.

Buka Cloud Shell Editor

  1. Di Cloud Shell, buat project dan file Go yang baru:

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

    Perintah ini membuat project Go bernama bigquery-go-quickstart dan file bernama app.go.

  2. Buka Cloud Shell Editor:

    cloudshell workspace bigquery-go-quickstart
    

Untuk mempelajari cara menyiapkan file untuk kueri, klik Berikutnya.

Menyiapkan file untuk kueri

  1. Untuk membuka terminal di Cloud Shell Editor, klik Open Terminal.

  2. Buka direktori project Anda:

    cd bigquery-go-quickstart
    
  3. Buat file go.mod:

    go mod init quickstart
    

    Outputnya mirip dengan yang berikut ini:

    go: creating new go.mod: module quickstart
    go: to add module requirements and sums:
            go mod tidy
    
  4. Instal library klien BigQuery untuk Go:

    go get cloud.google.com/go/bigquery
    

    Outputnya mirip dengan yang berikut ini. Beberapa baris dihilangkan untuk menyederhanakan output.

    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
    

Untuk mempelajari cara membuat kueri set data publik di BigQuery, klik Berikutnya.

Mengkueri set data publik di BigQuery

  1. Klik Open Editor.

  2. Di panel Penjelajah, cari lokasi project BIGQUERY-GO-QUICKSTART Anda.

  3. Klik file app.go untuk membukanya.

  4. Untuk membuat kueri terhadap set data bigquery-public-data.stackoverflow yang menampilkan 10 halaman Stack Overflow yang paling sering dilihat dan jumlah tampilannya, salin kode berikut ke file 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. Klik Open Terminal.

  6. Di terminal, jalankan skrip app.go. Jika Anda diminta untuk memberi otorisasi Cloud Shell dan menyetujui persyaratannya, klik Otorisasi.

    go run app.go
    

    Hasilnya mirip dengan berikut ini:

    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
    

Anda telah berhasil membuat kueri set data publik dengan library klien Go BigQuery.

Untuk menghindari timbulnya biaya pada akun Anda dan mempelajari langkah berikutnya, klik Berikutnya.

Langkah berikutnya

Pertahankan resource yang telah Anda buat dan lakukan lebih banyak hal dengan BigQuery, atau bersihkan untuk menghindari biaya penagihan.

Lakukan lebih banyak hal dengan BigQuery

Pembersihan

Agar akun Google Cloud Anda tidak dikenai biaya, hapus project Google Cloud Anda, atau hapus resource yang Anda buat di panduan ini.

Menghapus project

Jika Anda membuat project baru untuk mempelajari BigQuery dan Anda tidak lagi memerlukan project tersebut, hapus project tersebut. Perlu diperhatikan bahwa penghapusan project akan menghapus semua hal dalam project dan ID project kustom akan hilang.

Menghapus resource

Jika Anda menggunakan project yang sudah ada, hapus folder bigquery-go-quickstart yang Anda buat:

  1. Di Cloud Shell, pindahkan direktori:

    cd ..
    
  2. Hapus resource yang Anda buat:

    rm -R bigquery-go-quickstart
    

    Flag -R menghapus semua aset di dalam folder.