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 |
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
: kolomRECORD
bertingkatcommitter
: kolomRECORD
bertingkattrailer
: kolomRECORD
bertingkat dan berulangdifference
: kolomRECORD
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 | +------------+-------------+---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------+