Mendapatkan informasi tentang tampilan

Dokumen ini menjelaskan cara membuat daftar, mendapatkan informasi, dan melihat metadata untuk tampilan di BigQuery.

Anda dapat membuat daftar tampilan dalam set data dengan cara:

  • Menggunakan Konsol Google Cloud
  • Menggunakan perintah bq ls di alat command line bq
  • Memanggil metode API tables.list
  • Menggunakan library klien

Sebelum memulai

Memberikan peran Identity and Access Management (IAM) yang memberi izin yang diperlukan kepada pengguna untuk melakukan setiap tugas dalam dokumen ini.

Membuat daftar tampilan

Membuat daftar tampilan sama dengan proses membuat daftar tabel.

Izin yang diperlukan

Untuk membuat daftar tampilan dalam set data, Anda memerlukan izin IAM bigquery.tables.list.

Setiap peran IAM yang telah ditetapkan berikut mencakup izin yang diperlukan untuk membuat daftar tampilan dalam set data:

  • roles/bigquery.user
  • roles/bigquery.metadataViewer
  • roles/bigquery.dataViewer
  • roles/bigquery.dataOwner
  • roles/bigquery.dataEditor
  • roles/bigquery.admin

Untuk mengetahui informasi lebih lanjut tentang peran dan izin IAM di BigQuery, lihat Peran dan izin yang telah ditetapkan.

Membuat daftar tampilan dalam set data

Untuk membuat daftar tampilan dalam set data:

Konsol

  1. Di panel Explorer, luaskan project Anda dan pilih set data.

  2. Scroll melalui daftar untuk melihat tabel di set data. Tabel dan tampilan diidentifikasi dengan ikon yang berbeda.

    Ikon tabel dan tampilan

SQL

Gunakan tampilan INFORMATION_SCHEMA.VIEWS:

  1. Di konsol Google Cloud, buka halaman BigQuery.

    Buka BigQuery

  2. Di editor kueri, masukkan pernyataan berikut:

    SELECT table_name
    FROM DATASET_ID.INFORMATION_SCHEMA.VIEWS;
    

    Ganti DATASET_ID dengan nama set data.

  3. Klik Run.

Untuk informasi selengkapnya tentang cara menjalankan kueri, lihat Menjalankan kueri interaktif.

bq

Berikan perintah bq ls. Flag --format dapat digunakan untuk mengontrol output. Jika Anda membuat daftar tampilan dalam project selain project default Anda, tambahkan project ID ke set data dalam format berikut: project_id:dataset.

bq ls --format=pretty project_id:dataset

Dengan keterangan:

  • project_id adalah project ID Anda.
  • dataset adalah nama set data.

Saat Anda menjalankan perintah, kolom Type akan menampilkan TABLE atau VIEW. Contoh:

+-------------------------+-------+----------------------+-------------------+
|         tableId         | Type  |        Labels        | Time Partitioning |
+-------------------------+-------+----------------------+-------------------+
| mytable                 | TABLE | department:shipping  |                   |
| myview                  | VIEW  |                      |                   |
+-------------------------+-------+----------------------+-------------------+

Contoh:

Masukkan perintah berikut untuk membuat daftar tampilan dalam set data mydataset di project default Anda.

bq ls --format=pretty mydataset

Masukkan perintah berikut untuk membuat daftar tampilan dalam set data mydataset di myotherproject.

bq ls --format=pretty myotherproject:mydataset

API

Untuk membuat daftar tampilan menggunakan API, panggil metode tables.list.

Go

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Go di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Go API.

Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.

import (
	"context"
	"fmt"
	"io"

	"cloud.google.com/go/bigquery"
	"google.golang.org/api/iterator"
)

// listTables demonstrates iterating through the collection of tables in a given dataset.
func listTables(w io.Writer, projectID, datasetID string) error {
	// projectID := "my-project-id"
	// datasetID := "mydataset"
	// tableID := "mytable"
	ctx := context.Background()
	client, err := bigquery.NewClient(ctx, projectID)
	if err != nil {
		return fmt.Errorf("bigquery.NewClient: %v", err)
	}
	defer client.Close()

	ts := client.Dataset(datasetID).Tables(ctx)
	for {
		t, err := ts.Next()
		if err == iterator.Done {
			break
		}
		if err != nil {
			return err
		}
		fmt.Fprintf(w, "Table: %q\n", t.TableID)
	}
	return nil
}

Python

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Python API.

Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.


from google.cloud import bigquery

# Construct a BigQuery client object.
client = bigquery.Client()

# TODO(developer): Set dataset_id to the ID of the dataset that contains
#                  the tables you are listing.
# dataset_id = 'your-project.your_dataset'

tables = client.list_tables(dataset_id)  # Make an API request.

print("Tables contained in '{}':".format(dataset_id))
for table in tables:
    print("{}.{}.{}".format(table.project, table.dataset_id, table.table_id))

Anda bisa mendapatkan metadata tampilan dengan:

  • Menggunakan Konsol Google Cloud
  • Menggunakan perintah bq show alat command line bq
  • Memanggil metode API tables.get
  • Menggunakan library klien
  • Membuat kueri tampilan INFORMATION_SCHEMA

Mendapatkan informasi tentang tampilan

Mendapatkan informasi tentang tampilan sama dengan proses mendapatkan informasi tentang tabel.

Izin yang diperlukan

Untuk mendapatkan informasi tentang tampilan, Anda memerlukan izin IAM bigquery.tables.get.

Setiap peran IAM yang telah ditetapkan berikut menyertakan izin yang Anda perlukan untuk mendapatkan informasi tentang tampilan:

  • roles/bigquery.metadataViewer
  • roles/bigquery.dataViewer
  • roles/bigquery.dataOwner
  • roles/bigquery.dataEditor
  • roles/bigquery.admin

Selain itu, jika memiliki izin bigquery.datasets.create, Anda bisa mendapatkan informasi tentang tampilan dalam set data yang Anda buat.

Untuk mengetahui informasi lebih lanjut tentang peran dan izin IAM di BigQuery, lihat Peran dan izin yang telah ditetapkan.

Untuk mendapatkan informasi tentang tampilan:

Konsol

  1. Perluas set data Anda.

  2. Klik nama tampilan.

  3. Klik Details. Tab Details menampilkan deskripsi tampilan, informasi tampilan, dan kueri SQL yang menentukan tampilan.

    Lihat detail

SQL

Buat kueri tampilan INFORMATION_SCHEMA.VIEWS. Contoh berikut mengambil semua kolom kecuali check_option, yang dicadangkan untuk penggunaan pada masa mendatang. Metadata yang ditampilkan adalah untuk semua tampilan dalam DATASET_ID dalam project default Anda:

  1. Di Konsol Google Cloud, buka halaman BigQuery.

    Buka BigQuery

  2. Di editor kueri, masukkan pernyataan berikut:

      SELECT
        * EXCEPT (check_option)
      FROM
        DATASET_ID.INFORMATION_SCHEMA.VIEWS;
      

    Ganti DATASET_ID dengan nama set data.

  3. Klik Run.

Untuk informasi selengkapnya tentang cara menjalankan kueri, lihat Menjalankan kueri interaktif.

bq

Berikan perintah bq show. Flag --format dapat digunakan untuk mengontrol output. Jika Anda mendapatkan informasi tentang tampilan dalam project selain project default Anda, tambahkan project ID ke set data dalam format berikut: [PROJECT_ID]:[DATASET].

bq show \
--format=prettyjson \
project_id:dataset.view

Dengan keterangan:

  • project_id adalah project ID Anda.
  • dataset adalah nama set data.
  • view adalah nama tampilan.

Contoh:

Masukkan perintah berikut untuk menampilkan informasi tentang myview dalam set data mydataset di project default Anda.

bq show --format=prettyjson mydataset.myview

Masukkan perintah berikut untuk menampilkan informasi tentang myview dalam set data mydataset di myotherproject.

bq show --format=prettyjson myotherproject:mydataset.myview

API

Panggil metode tables.get dan berikan parameter yang relevan.

Go

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Go di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Go API.

Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.

import (
	"context"
	"fmt"
	"io"

	"cloud.google.com/go/bigquery"
)

// getView demonstrates fetching the metadata from a BigQuery logical view and printing it to an io.Writer.
func getView(w io.Writer, projectID, datasetID, viewID string) error {
	// projectID := "my-project-id"
	// datasetID := "mydataset"
	// viewID := "myview"
	ctx := context.Background()
	client, err := bigquery.NewClient(ctx, projectID)
	if err != nil {
		return fmt.Errorf("bigquery.NewClient: %v", err)
	}
	defer client.Close()

	view := client.Dataset(datasetID).Table(viewID)
	meta, err := view.Metadata(ctx)
	if err != nil {
		return err
	}
	fmt.Fprintf(w, "View %s, query: %s\n", view.FullyQualifiedName(), meta.ViewQuery)
	return nil
}

Java

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Java API.

Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.

import com.google.cloud.bigquery.BigQuery;
import com.google.cloud.bigquery.BigQueryException;
import com.google.cloud.bigquery.BigQueryOptions;
import com.google.cloud.bigquery.Table;
import com.google.cloud.bigquery.TableId;

// Sample to get a view
public class GetView {

  public static void main(String[] args) {
    // TODO(developer): Replace these variables before running the sample.
    String datasetName = "MY_DATASET_NAME";
    String viewName = "MY_VIEW_NAME";
    getView(datasetName, viewName);
  }

  public static void getView(String datasetName, String viewName) {
    try {
      // Initialize client that will be used to send requests. This client only needs to be created
      // once, and can be reused for multiple requests.
      BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService();

      TableId tableId = TableId.of(datasetName, viewName);
      Table view = bigquery.getTable(tableId);
      System.out.println("View retrieved successfully" + view.getDescription());
    } catch (BigQueryException e) {
      System.out.println("View not retrieved. \n" + e.toString());
    }
  }
}

Node.js

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Node.js API.

Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.

// Import the Google Cloud client library
const {BigQuery} = require('@google-cloud/bigquery');
const bigquery = new BigQuery();

async function getView() {
  // Retrieves view properties.

  /**
   * TODO(developer): Uncomment the following lines before running the sample
   */
  // const datasetId = "my_dataset";
  // const tableId = "my_view";

  // Retrieve view
  const dataset = bigquery.dataset(datasetId);
  const [view] = await dataset.table(tableId).get();

  const fullTableId = view.metadata.id;
  const viewQuery = view.metadata.view.query;

  // Display view properties
  console.log(`View at ${fullTableId}`);
  console.log(`View query: ${viewQuery}`);
}
getView();

Python

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Python API.

Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.

from google.cloud import bigquery

client = bigquery.Client()

view_id = "my-project.my_dataset.my_view"
# Make an API request to get the table resource.
view = client.get_table(view_id)

# Display view properties
print(f"Retrieved {view.table_type}: {str(view.reference)}")
print(f"View Query:\n{view.view_query}")

Keamanan tampilan

Untuk mengontrol akses ke tampilan di BigQuery, lihat Tampilan yang diotorisasi.

Langkah selanjutnya