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.get
bigquery.tables.list
Setiap peran IAM yang telah ditetapkan berikut mencakup izin sebelumnya:
roles/bigquery.admin
roles/bigquery.dataViewer
roles/bigquery.dataEditor
roles/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 |
Project ID 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 selalu NEVER |
GENERATION_EXPRESSION |
STRING |
Nilainya selalu NULL |
IS_STORED |
STRING |
Nilainya selalu NULL |
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 yang dikelompokkan |
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 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
|
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 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
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.
Tabel yang Anda buat kuerinya berada di project lain, yakni project
bigquery-public-data
, maka tambahkan ID project 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 karena saat ini dicadangkan untuk penggunaan pada masa mendatang:
IS_GENERATED
GENERATION_EXPRESSION
IS_STORED
IS_UPDATABLE
SELECT * EXCEPT(is_generated, generation_expression, is_stored, 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 | +------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+ | population_by_zip_2010 | zipcode | 1 | NO | STRING | NO | NO | NO | NULL | | population_by_zip_2010 | geo_id | 2 | YES | STRING | NO | NO | NO | NULL | | population_by_zip_2010 | minimum_age | 3 | YES | INT64 | NO | NO | NO | NULL | | population_by_zip_2010 | maximum_age | 4 | YES | INT64 | NO | NO | NO | NULL | | population_by_zip_2010 | gender | 5 | YES | STRING | NO | NO | NO | NULL | | population_by_zip_2010 | population | 6 | YES | INT64 | NO | NO | NO | NULL | +------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+