התצוגה COLUMN_FIELD_PATHS
התצוגה INFORMATION_SCHEMA.COLUMN_FIELD_PATHS מכילה שורה אחת לכל עמודה מוטמעת בעמודה RECORD (או STRUCT).
ההרשאות הנדרשות
כדי לשלוח שאילתה לתצוגה INFORMATION_SCHEMA.COLUMN_FIELD_PATHS, צריך את ההרשאות הבאות בממשק לניהול זהויות והרשאות גישה (IAM):
bigquery.tables.getbigquery.tables.list
כל אחד מהתפקידים הבאים שמוגדרים מראש ב-IAM כולל את ההרשאות שצוינו למעלה:
roles/bigquery.adminroles/bigquery.dataViewerroles/bigquery.dataEditorroles/bigquery.metadataViewer
מידע נוסף על הרשאות ב-BigQuery זמין במאמר בקרת גישה באמצעות IAM.
סכימה
תוצאות השאילתה מכילות שורה אחת לכל עמודה מוטמעת בעמודה RECORD (או STRUCT).
כשמבצעים שאילתה בתצוגה INFORMATION_SCHEMA.COLUMN_FIELD_PATHS, התוצאות של השאילתה מכילות שורה אחת לכל עמודה מוטמעת בעמודה RECORD (או STRUCT).
לתצוגה INFORMATION_SCHEMA.COLUMN_FIELD_PATHS יש את הסכימה הבאה:
| שם העמודה | סוג נתונים | ערך |
|---|---|---|
table_catalog |
STRING |
מזהה הפרויקט שמכיל את מערך הנתונים. |
table_schema |
STRING |
שם מערך הנתונים שמכיל את הטבלה, שנקרא גם datasetId. |
table_name |
STRING |
השם של הטבלה או התצוגה, שנקרא גם tableId. |
column_name |
STRING |
שם העמודה. |
field_path |
STRING |
הנתיב לעמודה nested בתוך עמודה מסוג `RECORD` או `STRUCT`. |
data_type |
STRING |
סוג הנתונים ב-GoogleSQL של העמודה. |
description |
STRING |
התיאור של העמודה. |
collation_name |
STRING |
השם של הגדרת ה-collation
אם היא קיימת, אחרת, NULL.אם מועבר שדה STRING, ARRAY<STRING> או STRING ב-STRUCT, מוחזרת הגדרת האיסוף אם היא קיימת. אחרת, מוחזר NULL.
|
rounding_mode |
STRING |
אופן העיגול שבו משתמשים כשמחילים דיוק וקנה מידה על ערכים של פרמטרים NUMERIC או BIGNUMERIC. אחרת, הערך הוא NULL.
|
data_policies.name |
STRING |
רשימת מדיניות הנתונים שמצורפת לעמודה כדי לשלוט בגישה ובהסתרת נתונים. השדה הזה נמצא בגרסת טרום-השקה (Preview). |
policy_tags |
ARRAY<STRING> |
רשימת תגי המדיניות שמצורפים לעמודה. |
כדי לשמור על יציבות, מומלץ לציין במפורש את העמודות בשאילתות של סכימת המידע, במקום להשתמש בתו כל כללי (SELECT *). ציון מפורש של העמודות מונע את השבירה של השאילתות אם הסכימה הבסיסית משתנה.
היקף ותחביר
שאילתות שמופעלות על התצוגה הזו חייבות לכלול מערך נתונים או מסווג אזור. לשאילתות עם מזהה מערך נתונים, צריכות להיות לכם הרשאות למערך הנתונים. כדי להריץ שאילתות עם מסנן אזור, צריך הרשאות בפרויקט. מידע נוסף מופיע במאמר בנושא תחביר. בטבלה הבאה מוסברות רמות הפירוט של האזור והמשאבים בתצוגה הזו:
| שם התצוגה | היקף המשאבים | היקף האזור |
|---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.COLUMN_FIELD_PATHS |
ברמת הפרויקט | REGION |
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.COLUMN_FIELD_PATHS |
רמת מערך הנתונים | מיקום מערך הנתונים |
-
אופציונלי:
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . אם לא מציינים פרויקט, המערכת משתמשת בפרויקט שמוגדר כברירת מחדל. -
REGION: כל שם של אזור במערך נתונים. לדוגמה,`region-us`. -
DATASET_ID: המזהה של מערך הנתונים. מידע נוסף מופיע במאמר בנושא מאפיין מסנן של מערך נתונים.
דוגמה
בדוגמה הבאה מאחזרים מטא-נתונים מהתצוגה INFORMATION_SCHEMA.COLUMN_FIELD_PATHS של הטבלה commits במערך הנתונים github_repos.
מערך הנתונים הזה הוא חלק מתוכנית מערכי הנתונים הציבוריים של BigQuery.
מכיוון שהטבלה שאתם שולחים לה שאילתה נמצאת בפרויקט אחר, פרויקט bigquery-public-data, אתם מוסיפים את מזהה הפרויקט למערך הנתונים בפורמט הבא:
`project_id`.dataset.INFORMATION_SCHEMA.view;
לדוגמה,
`bigquery-public-data`.github_repos.INFORMATION_SCHEMA.COLUMN_FIELD_PATHS.
הטבלה commits מכילה את העמודות המקוננות והחוזרות הבאות:
-
author: עמודהRECORDמוצבת בתוך עמודה אחרת -
committer: עמודהRECORDמוצבת בתוך עמודה אחרת -
trailer: עמודה מקוננת וחוזרתRECORD -
difference: עמודה מקוננת וחוזרתRECORD
כדי לראות את המטא-נתונים של העמודות author ו-difference, מריצים את השאילתה הבאה.
SELECT * FROM `bigquery-public-data`.github_repos.INFORMATION_SCHEMA.COLUMN_FIELD_PATHS WHERE table_name = 'commits' AND (column_name = 'author' OR column_name = 'difference');
התוצאה תהיה דומה לזו שמופיעה בהמשך. כדי שהתוצאה תהיה קריאה, חלק מהעמודות לא נכללות בה.
+------------+-------------+---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------+-------------+ | table_name | column_name | field_path | data_type | description | policy_tags | +------------+-------------+---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------+-------------+ | commits | author | author | STRUCT<name STRING, email STRING, time_sec INT64, tz_offset INT64, date TIMESTAMP> | NULL | 0 rows | | commits | author | author.name | STRING | NULL | 0 rows | | commits | author | author.email | STRING | NULL | 0 rows | | commits | author | author.time_sec | INT64 | NULL | 0 rows | | commits | author | author.tz_offset | INT64 | NULL | 0 rows | | commits | author | author.date | TIMESTAMP | NULL | 0 rows | | 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 | 0 rows | | commits | difference | difference.old_mode | INT64 | NULL | 0 rows | | commits | difference | difference.new_mode | INT64 | NULL | 0 rows | | commits | difference | difference.old_path | STRING | NULL | 0 rows | | commits | difference | difference.new_path | STRING | NULL | 0 rows | | commits | difference | difference.old_sha1 | STRING | NULL | 0 rows | | commits | difference | difference.new_sha1 | STRING | NULL | 0 rows | | commits | difference | difference.old_repo | STRING | NULL | 0 rows | | commits | difference | difference.new_repo | STRING | NULL | 0 rows | +------------+-------------+---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------+-------------+