Tabel virtual COLUMN_FIELD_PATHS

Tabel virtual INFORMATION_SCHEMA.COLUMN_FIELD_PATHS berisi satu baris untuk setiap kolom yang bertingkat dalam kolom RECORD (atau STRUCT).

Izin yang diperlukan

Untuk membuat kueri tabel virtual INFORMATION_SCHEMA.COLUMN_FIELD_PATHS, 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

Hasil kueri berisi satu baris untuk setiap kolom yang bertingkat dalam kolom RECORD (atau STRUCT).

Saat Anda membuat kueri tabel virtual INFORMATION_SCHEMA.COLUMN_FIELD_PATHS, hasil kueri akan berisi satu baris untuk setiap kolom yang bertingkat dalam kolom RECORD (atau STRUCT).

Tabel virtual INFORMATION_SCHEMA.COLUMN_FIELD_PATHS 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
FIELD_PATH STRING Jalur ke kolom yang bertingkat dalam kolom `RECORD` atau `STRUCT`
DATA_TYPE STRING Jenis data GoogleSQL pada kolom
DESCRIPTION STRING Deskripsi kolom
COLLATION_NAME STRING Nama spesifikasi kolasi jika ada; jika tidak ada, NULL

Jika kolom STRING, ARRAY<STRING>, atau STRING dalam STRUCT diteruskan, spesifikasi kolasi akan ditampilkan jika ada; jika tidak ada, NULL akan ditampilkan
ROUNDING_MODE STRING Mode pembulatan yang digunakan saat menerapkan presisi dan skala ke nilai NUMERIC atau BIGNUMERIC yang 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.COLUMN_FIELD_PATHS Level project REGION
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.COLUMN_FIELD_PATHS 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 tabel virtual INFORMATION_SCHEMA.COLUMN_FIELD_PATHS untuk tabel commits dalam set data github_repos. 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`.github_repos.INFORMATION_SCHEMA.COLUMN_FIELD_PATHS.

Tabel commits berisi kolom bertingkat serta kolom bertingkat dan berulang berikut:

  • author: kolom RECORD bertingkat
  • committer: kolom RECORD bertingkat
  • trailer: kolom RECORD bertingkat dan berulang
  • difference: kolom RECORD bertingkat dan berulang

Untuk melihat metadata tentang kolom author dan difference, jalankan kueri berikut.

SELECT
  *
FROM
  `bigquery-public-data`.github_repos.INFORMATION_SCHEMA.COLUMN_FIELD_PATHS
WHERE
  table_name = 'commits'
  AND (column_name = 'author' OR column_name = 'difference');

Hasilnya mirip dengan berikut ini. Agar mudah dibaca, beberapa kolom dikecualikan dari hasil.

  +------------+-------------+---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------+
  | table_name | column_name |     field_path      |                                                                      data_type                                                                      | description |
  +------------+-------------+---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------+
  | commits    | author      | author              | STRUCT<name STRING, email STRING, time_sec INT64, tz_offset INT64, date TIMESTAMP>                                                                  | NULL        |
  | commits    | author      | author.name         | STRING                                                                                                                                              | NULL        |
  | commits    | author      | author.email        | STRING                                                                                                                                              | NULL        |
  | commits    | author      | author.time_sec     | INT64                                                                                                                                               | NULL        |
  | commits    | author      | author.tz_offset    | INT64                                                                                                                                               | NULL        |
  | commits    | author      | author.date         | TIMESTAMP                                                                                                                                           | NULL        |
  | commits    | difference  | difference          | ARRAY<STRUCT<old_mode INT64, new_mode INT64, old_path STRING, new_path STRING, old_sha1 STRING, new_sha1 STRING, old_repo STRING, new_repo STRING>> | NULL        |
  | commits    | difference  | difference.old_mode | INT64                                                                                                                                               | NULL        |
  | commits    | difference  | difference.new_mode | INT64                                                                                                                                               | NULL        |
  | commits    | difference  | difference.old_path | STRING                                                                                                                                              | NULL        |
  | commits    | difference  | difference.new_path | STRING                                                                                                                                              | NULL        |
  | commits    | difference  | difference.old_sha1 | STRING                                                                                                                                              | NULL        |
  | commits    | difference  | difference.new_sha1 | STRING                                                                                                                                              | NULL        |
  | commits    | difference  | difference.old_repo | STRING                                                                                                                                              | NULL        |
  | commits    | difference  | difference.new_repo | STRING                                                                                                                                              | NULL        |
  +------------+-------------+---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------+