Tampilan COLUMNS
Tampilan INFORMATION_SCHEMA.COLUMNS berisi satu baris untuk setiap kolom
(kolom) dalam tabel.
Izin yang diperlukan
Untuk membuat kueri tabel virtual INFORMATION_SCHEMA.COLUMNS, Anda memerlukan izin Identity and Access Management (IAM) berikut:
bigquery.tables.getbigquery.tables.list
Setiap peran IAM yang telah ditetapkan berikut mencakup izin sebelumnya:
roles/bigquery.adminroles/bigquery.dataViewerroles/bigquery.dataEditorroles/bigquery.metadataViewer
Untuk mengetahui informasi selengkapnya tentang izin BigQuery, lihat Kontrol akses dengan IAM.
Skema
Saat Anda membuat kueri tampilan INFORMATION_SCHEMA.COLUMNS, hasil kueri akan berisi
satu baris untuk setiap kolom dalam tabel.
Tampilan INFORMATION_SCHEMA.COLUMNS memiliki skema berikut
| Nama kolom | Jenis data | Nilai |
|---|---|---|
table_catalog |
STRING |
ID project dari project yang berisi set data. |
table_schema |
STRING |
Nama set data yang berisi tabel juga disebut sebagai
datasetId. |
table_name |
STRING |
Nama tabel atau tabel virtual juga disebut sebagai tableId. |
column_name |
STRING |
Nama kolom. |
ordinal_position |
INT64 |
Offset berindeks 1 pada kolom dalam tabel; jika kolomnya berupa kolom semu seperti _PARTITIONTIME atau _PARTITIONDATE, nilainya adalah NULL. |
is_nullable |
STRING |
YES atau NO bergantung pada apakah mode kolom
memungkinkan nilai NULL atau tidak. |
data_type |
STRING |
Jenis data GoogleSQL pada kolom . |
is_generated |
STRING |
Nilainya adalah ALWAYS jika kolomnya adalah
kolom embedding yang dibuat secara otomatis;
jika tidak, nilainya adalah NEVER. |
generation_expression |
STRING |
Nilainya adalah ekspresi pembuatan yang digunakan untuk menentukan kolom
jika kolomnya adalah kolom embedding yang dibuat secara otomatis
yang dibuat secara otomatis; jika tidak, nilainya adalah NULL. |
is_stored |
STRING |
Nilainya adalah YES jika kolomnya adalah kolom embedding yang dibuat secara otomatis; jika tidak, nilainya adalah NULL. |
async_generation_status |
STRUCT |
Berisi error pemblokiran untuk tugas pembuatan embedding latar belakang jika kolomnya adalah kolom embedding yang dibuat secara otomatis; jika tidak, nilainya adalah NULL. Untuk mengetahui informasi tentang error pemblokiran, lihat
kolom async_generation_status.blocking_error.message.
Error pemblokiran dapat mencakup hal berikut:
async_generation_status kolom akan dihapus.
|
is_hidden |
STRING |
YES atau NO bergantung pada apakah kolom merupakan kolom semu seperti _PARTITIONTIME atau _PARTITIONDATE. |
is_updatable |
STRING |
Nilainya selalu NULL. |
is_system_defined |
STRING |
YES atau NO bergantung pada apakah kolom merupakan kolom semu seperti _PARTITIONTIME atau _PARTITIONDATE. |
is_partitioning_column |
STRING |
YES atau NO bergantung pada apakah kolom tersebut merupakan kolom partisi. |
clustering_ordinal_position |
INT64 |
Offset berindeks 1 kolom dalam kolom pengelompokan tabel; nilainya adalah NULL jika tabel tersebut bukan tabel pengelompokan. |
collation_name |
STRING |
Nama spesifikasi kolasi
jika ada; jika tidak, NULL.Jika STRING atau ARRAY<STRING> diteruskan
spesifikasi kolasi akan ditampilkan jika ada; jika tidak
NULL akan ditampilkan.
|
column_default |
STRING |
Nilai default dari
kolom jika ada; jika tidak, nilainya adalah NULL.
|
rounding_mode |
STRING |
Mode pembulatan yang digunakan untuk nilai yang ditulis ke kolom jika jenisnya adalah
NUMERIC atau BIGNUMERIC berparameter;
jika tidak, nilainya adalah NULL.
|
data_policies.name |
STRING |
Daftar kebijakan data yang dilampirkan ke kolom untuk mengontrol akses dan penyamaran. Kolom ini berada dalam (Pratinjau). |
policy_tags |
ARRAY<STRING> |
Daftar tag kebijakan yang dilampirkan ke kolom. |
is_identity |
STRING |
YES atau NO bergantung pada apakah kolom tersebut merupakan kolom identitas.
|
identity_generation |
STRING |
Salah satu dari ALWAYS atau BY DEFAULT, bergantung pada mode pembuatan kolom identitas. Jika kolomnya bukan kolom identitas, nilainya adalah NULL.
|
identity_start |
INT64 |
Nilai pertama yang dibuat oleh kolom identitas, atau NULL
jika kolomnya bukan kolom identitas.
|
identity_increment |
INT64 |
Perbedaan minimum antara ID yang dibuat secara berurutan untuk kolom
identitas, atau NULL jika kolomnya bukan kolom
identitas.
|
identity_maximum |
INT64 |
Nilai maksimum yang dapat dibuat untuk kolom identitas, atau
NULL jika kolomnya bukan kolom identitas.
|
identity_minimum |
INT64 |
Nilai minimum yang dapat dibuat untuk kolom identitas, atau
NULL jika kolomnya bukan kolom identitas.
|
identity_cycle |
STRING |
Jika kolomnya adalah kolom identitas, nilai ini adalah
NEVER; jika tidak, nilainya adalah NULL.
|
Untuk stabilitas, sebaiknya Anda mencantumkan kolom secara eksplisit dalam kueri skema informasi, bukan menggunakan karakter pengganti (SELECT *). Mencantumkan kolom secara eksplisit mencegah kueri rusak jika skema yang mendasarinya berubah.
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.COLUMNS |
Level project | REGION |
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.COLUMNS |
Level set data | Lokasi set data |
-
Opsional:
PROJECT_ID: ID Google Cloud project 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
Contoh berikut mengambil metadata dari tampilan INFORMATION_SCHEMA.COLUMNS
untuk tabel population_by_zip_2010 dalam
set data
census_bureau_usa. Set data ini adalah bagian dari
program set data publik BigQuery.
Karena tabel yang Anda buat kuerinya berada di project lain, yakni project
bigquery-public-data, Anda menambahkan project ID ke set data dalam
format berikut:
`project_id`.dataset.INFORMATION_SCHEMA.view;
untuk contoh,
`bigquery-public-data`.census_bureau_usa.INFORMATION_SCHEMA.TABLES.
Kolom berikut dikecualikan dari hasil kueri:
IS_UPDATABLE
SELECT * EXCEPT(is_updatable) FROM `bigquery-public-data`.census_bureau_usa.INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'population_by_zip_2010';
Hasilnya mirip dengan berikut ini. Agar mudah dibaca, beberapa kolom dikecualikan dari hasil.
+------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+-------------+ | table_name | column_name | ordinal_position | is_nullable | data_type | is_hidden | is_system_defined | is_partitioning_column | clustering_ordinal_position | policy_tags | +------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+-------------+ | population_by_zip_2010 | zipcode | 1 | NO | STRING | NO | NO | NO | NULL | 0 rows | | population_by_zip_2010 | geo_id | 2 | YES | STRING | NO | NO | NO | NULL | 0 rows | | population_by_zip_2010 | minimum_age | 3 | YES | INT64 | NO | NO | NO | NULL | 0 rows | | population_by_zip_2010 | maximum_age | 4 | YES | INT64 | NO | NO | NO | NULL | 0 rows | | population_by_zip_2010 | gender | 5 | YES | STRING | NO | NO | NO | NULL | 0 rows | | population_by_zip_2010 | population | 6 | YES | INT64 | NO | NO | NO | NULL | 0 rows | +------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+-------------+