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 |
is_change_history_enabled |
STRING |
YES atau NO bergantung pada apakah
histori perubahan
diaktifkan |
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 dari berikut:
|
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 |
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 standarmyview1
: 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", "")] | | | ); | +------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+