Tampilan TABLES

Tampilan INFORMATION_SCHEMA.TABLES berisi satu baris untuk setiap tabel atau tampilan dalam set data. Tampilan TABLES dan TABLE_OPTIONS juga berisi informasi tingkat tinggi tentang tampilan. Untuk informasi selengkapnya, buat kueri tampilan INFORMATION_SCHEMA.VIEWS.

Izin yang diperlukan

Untuk membuat kueri tabel virtual INFORMATION_SCHEMA.TABLES, Anda memerlukan izin Identity and Access Management (IAM) berikut:

  • bigquery.tables.get
  • bigquery.tables.list
  • bigquery.routines.get
  • bigquery.routines.list

Setiap peran IAM yang telah ditetapkan berikut mencakup izin sebelumnya:

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

Untuk mengetahui informasi selengkapnya tentang izin BigQuery, lihat Kontrol akses dengan IAM.

Skema

Saat Anda membuat kueri tampilan INFORMATION_SCHEMA.TABLES, hasil kueri akan berisi satu baris untuk setiap tabel atau tampilan dalam set data. Untuk informasi mendetail tentang tampilan, buat kueri tampilan INFORMATION_SCHEMA.VIEWS.

Tampilan INFORMATION_SCHEMA.TABLES memiliki skema berikut:

Nama kolom Jenis data Nilai
table_catalog STRING Project ID dari project yang berisi set data.
table_schema STRING Nama set data yang berisi tabel atau tampilan tersebut. Juga disebut sebagai datasetId.
table_name STRING Nama tabel atau tampilan. Juga disebut sebagai tableId.
table_type STRING Jenis tabel; salah satu dari yang berikut:
is_insertable_into STRING YES atau NO bergantung pada apakah tabel mendukung pernyataan DML INSERT atau tidak
is_typed STRING Nilainya selalu NO
creation_time TIMESTAMP Waktu pembuatan tabel
base_table_catalog STRING Untuk clone tabel dan snapshot tabel, project tabel dasar. Hanya berlaku untuk tabel dengan table_type yang ditetapkan ke CLONE atau SNAPSHOT.
base_table_schema STRING Untuk clone tabel dan snapshot tabel, set data tabel dasar. Hanya berlaku untuk tabel dengan table_type yang ditetapkan ke CLONE atau SNAPSHOT.
base_table_name STRING Untuk clone tabel dan snapshot tabel, nama tabel dasar. Hanya berlaku untuk tabel dengan table_type yang ditetapkan ke CLONE atau SNAPSHOT.
snapshot_time_ms TIMESTAMP Untuk clone tabel dan snapshot tabel, waktu saat operasi clone atau snapshot dijalankan pada tabel dasar untuk membuat tabel ini. Jika perjalanan waktu digunakan, kolom ini berisi stempel waktu perjalanan waktu. Jika tidak, kolom snapshot_time_ms sama dengan kolom creation_time. Hanya berlaku untuk tabel dengan table_type yang ditetapkan ke CLONE atau SNAPSHOT.
replica_source_catalog STRING Untuk replika tampilan terwujud, project tampilan terwujud dasar.
replica_source_schema STRING Untuk replika tampilan terwujud, set data tampilan terwujud dasar.
replica_source_name STRING Untuk replika tampilan terwujud, nama tampilan terwujud dasar.
replication_status STRING Untuk replika tampilan terwujud, status replikasi dari tampilan terwujud dasar ke replika tampilan terwujud; salah satu hal berikut:
  • REPLICATION_STATUS_UNSPECIFIED
  • ACTIVE: Replikasi aktif tanpa error
  • SOURCE_DELETED: Tampilan terwujud sumber telah dihapus
  • PERMISSION_DENIED: Tampilan terwujud sumber belum diotorisasi pada set data yang berisi tabel Amazon S3 BigLake sumber yang digunakan dalam kueri yang membuat tampilan terwujud.
  • UNSUPPORTED_CONFIGURATION: Ada masalah dengan prasyarat replika selain otorisasi tampilan terwujud sumber.
replication_error STRING Jika replication_status menunjukkan masalah replikasi untuk replika tampilan terwujud, replication_error akan memberikan detail lebih lanjut tentang masalah tersebut.
ddl STRING Pernyataan DDL yang dapat digunakan untuk membuat ulang tabel, seperti CREATE TABLE atau CREATE VIEW
default_collation_name STRING Nama spesifikasi kolasi default jika ada. Jika tidak, NULL.
upsert_stream_apply_watermark TIMESTAMP Untuk tabel yang menggunakan pengambilan data perubahan (CDC), waktu saat modifikasi baris terakhir diterapkan. Untuk mengetahui informasi selengkapnya, lihat Memantau progres operasi pembaruan dan penyisipan tabel.

Cakupan dan sintaksis

Kueri terhadap tabel virtual ini harus menyertakan set data atau penentu region. Untuk kueri dengan penentu set data, Anda harus memiliki izin untuk set data. Untuk kueri dengan penentu region, Anda harus memiliki izin untuk project. Untuk informasi selengkapnya, lihat Sintaksis. Tabel berikut menjelaskan cakupan region dan resource untuk tabel virtual ini:

Nama tabel virtual Cakupan resource Cakupan region
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.TABLES Level project REGION
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.TABLES Level set data Lokasi set data
Ganti kode berikut:

  • Opsional: PROJECT_ID: ID project Google Cloud Anda. Jika tidak ditentukan, project default akan digunakan.
  • REGION: nama region set data apa pun. Misalnya, region-us.
  • DATASET_ID: ID set data Anda. Untuk mengetahui informasi selengkapnya, lihat Penentu set data.

Contoh

-- Returns metadata for tables in a single dataset.
SELECT * FROM myDataset.INFORMATION_SCHEMA.TABLES;

Contoh

Contoh 1:

Contoh berikut mengambil metadata tabel untuk semua tabel dalam set data bernama mydataset. Metadata yang ditampilkan adalah untuk semua jenis tabel di mydataset dalam project default Anda.

mydataset berisi tabel berikut:

  • mytable1: tabel BigQuery standar
  • myview1: tampilan BigQuery

Untuk menjalankan kueri terhadap project selain project default Anda, tambahkan project ID ke set data dalam format berikut: `project_id`.dataset.INFORMATION_SCHEMA.view; misalnya, `myproject`.mydataset.INFORMATION_SCHEMA.TABLES.

SELECT
  table_catalog, table_schema, table_name, table_type,
  is_insertable_into, creation_time, ddl
FROM
  mydataset.INFORMATION_SCHEMA.TABLES;

Hasilnya mirip dengan berikut ini. Agar mudah dibaca, beberapa kolom dikecualikan dari hasil.

+----------------+---------------+----------------+------------+--------------------+---------------------+---------------------------------------------+
| table_catalog  | table_schema  |   table_name   | table_type | is_insertable_into |    creation_time    |                     ddl                     |
+----------------+---------------+----------------+------------+--------------------+---------------------+---------------------------------------------+
| myproject      | mydataset     | mytable1       | BASE TABLE | YES                | 2018-10-29 20:34:44 | CREATE TABLE `myproject.mydataset.mytable1` |
|                |               |                |            |                    |                     | (                                           |
|                |               |                |            |                    |                     |   id INT64                                  |
|                |               |                |            |                    |                     | );                                          |
| myproject      | mydataset     | myview1        | VIEW       | NO                 | 2018-12-29 00:19:20 | CREATE VIEW `myproject.mydataset.myview1`   |
|                |               |                |            |                    |                     | AS SELECT 100 as id;                        |
+----------------+---------------+----------------+------------+--------------------+---------------------+---------------------------------------------+
Contoh 2:

Contoh berikut mengambil metadata tabel untuk semua tabel dengan jenis CLONE atau SNAPSHOT dari tampilan INFORMATION_SCHEMA.TABLES. Metadata yang ditampilkan adalah untuk tabel dalam mydataset di project default Anda.

Untuk menjalankan kueri terhadap project selain project default Anda, tambahkan project ID ke set data dalam format berikut: `project_id`.dataset.INFORMATION_SCHEMA.view; misalnya, `myproject`.mydataset.INFORMATION_SCHEMA.TABLES.

  SELECT
    table_name, table_type, base_table_catalog,
    base_table_schema, base_table_name, snapshot_time_ms
  FROM
    mydataset.INFORMATION_SCHEMA.TABLES
  WHERE
    table_type = 'CLONE'
  OR
    table_type = 'SNAPSHOT';

Hasilnya mirip dengan berikut ini. Agar mudah dibaca, beberapa kolom dikecualikan dari hasil.

  +--------------+------------+--------------------+-------------------+-----------------+---------------------+
  | table_name   | table_type | base_table_catalog | base_table_schema | base_table_name | snapshot_time_ms    |
  +--------------+------------+--------------------+-------------------+-----------------+---------------------+
  | items_clone  | CLONE      | myproject          | mydataset         | items           | 2018-10-31 22:40:05 |
  | orders_bk    | SNAPSHOT   | myproject          | mydataset         | orders          | 2018-11-01 08:22:39 |
  +--------------+------------+--------------------+-------------------+-----------------+---------------------+

Contoh 3:

Contoh berikut mengambil kolom table_name dan ddl dari tampilan INFORMATION_SCHEMA.TABLES untuk tabel population_by_zip_2010 di set data census_bureau_usa. Set data ini adalah bagian dari program set data publik BigQuery.

Karena tabel yang Anda kueri berada di project lain, Anda menambahkan project ID ke set data dalam format berikut: `project_id`.dataset.INFORMATION_SCHEMA.view. Dalam contoh ini, nilainya adalah `bigquery-public-data`.census_bureau_usa.INFORMATION_SCHEMA.TABLES.

SELECT
  table_name, ddl
FROM
  `bigquery-public-data`.census_bureau_usa.INFORMATION_SCHEMA.TABLES
WHERE
  table_name = 'population_by_zip_2010';

Hasilnya serupa dengan berikut ini:

+------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|       table_name       |                                                                                                            ddl                                                                                                             |
+------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| population_by_zip_2010 | CREATE TABLE `bigquery-public-data.census_bureau_usa.population_by_zip_2010`                                                                                                                                               |
|                        | (                                                                                                                                                                                                                          |
|                        |   geo_id STRING OPTIONS(description="Geo code"),                                                                                                                                                                           |
|                        |   zipcode STRING NOT NULL OPTIONS(description="Five digit ZIP Code Tabulation Area Census Code"),                                                                                                                          |
|                        |   population INT64 OPTIONS(description="The total count of the population for this segment."),                                                                                                                             |
|                        |   minimum_age INT64 OPTIONS(description="The minimum age in the age range. If null, this indicates the row as a total for male, female, or overall population."),                                                          |
|                        |   maximum_age INT64 OPTIONS(description="The maximum age in the age range. If null, this indicates the row as having no maximum (such as 85 and over) or the row is a total of the male, female, or overall population."), |
|                        |   gender STRING OPTIONS(description="male or female. If empty, the row is a total population summary.")                                                                                                                    |
|                        | )                                                                                                                                                                                                                          |
|                        | OPTIONS(                                                                                                                                                                                                                   |
|                        |   labels=[("freebqcovid", "")]                                                                                                                                                                                             |
|                        | );                                                                                                                                                                                                                         |
+------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+