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 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 tampilan 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 kolom 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 kolom adalah kolom penyematan yang dibuat secara otomatis; jika tidak, nilainya adalah NULL.
is_stored STRING Nilainya adalah YES jika kolom adalah kolom embedding yang dibuat secara otomatis; jika tidak, nilainya adalah 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 pada 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.
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.

Untuk stabilitas, sebaiknya cantumkan kolom secara eksplisit dalam kueri skema informasi Anda, bukan menggunakan karakter pengganti (SELECT *). Mencantumkan kolom secara eksplisit akan 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
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

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      |
+------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+-------------+