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
Ganti kode berikut:

  • Opsional: PROJECT_ID: ID project Google Cloud Anda. Jika tidak ditentukan, project default akan digunakan.

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