תצוגת COLUMN_FIELD_PATHS

התצוגה INFORMATION_SCHEMA.COLUMN_FIELD_PATHS מכילה שורה אחת לכל עמודה ברמה העליונה או עמודה שמקוננת בתוך עמודה מסוג RECORD (או STRUCT).

ההרשאות הנדרשות

כדי לשלוח שאילתה לתצוגה INFORMATION_SCHEMA.COLUMN_FIELD_PATHS, צריך את ההרשאות הבאות לניהול זהויות והרשאות גישה (IAM):

  • bigquery.tables.get
  • bigquery.tables.list

כל אחד מהתפקידים הבאים שמוגדרים מראש ב-IAM כולל את ההרשאות שצוינו למעלה:

  • roles/bigquery.admin
  • roles/bigquery.dataViewer
  • roles/bigquery.dataEditor
  • roles/bigquery.metadataViewer

במאמר בקרת גישה באמצעות IAM יש מידע נוסף על הרשאות ב-BigQuery.

סכימה

תוצאות השאילתה מכילות שורה אחת לכל עמודה ברמה העליונה או עמודה מקוננת בתוך עמודה מסוג 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 שם העמודה ברמה העליונה או הנתיב לעמודה המוטמעת בתוך עמודה מסוג RECORD או STRUCT.
data_type STRING סוג הנתונים של העמודה ב-GoogleSQL.
description STRING תיאור העמודה.
collation_name STRING השם של מפרט ההשוואה, אם הוא קיים. אחרת, NULL.

אם מועבר שדה STRING,‏ ARRAY<STRING> או STRING ב-STRUCT, מוחזר מפרט ה-collation אם הוא קיים. אחרת, מוחזר NULL.
rounding_mode STRING מצב העיגול שמשמש כשמחילים דיוק וקנה מידה על ערכי NUMERIC או BIGNUMERIC עם פרמטרים. אחרת, הערך הוא NULL.
data_policies.name STRING רשימת כללי מדיניות הנתונים שמצורפים לעמודה כדי לשלוט בגישה ובמיסוך. השדה הזה נמצא בגרסת טרום-השקה (Preview).
data_governance_tags ARRAY<STRUCT> רשימת תגי משילות המידע (data governance) שמצורפים לעמודה או לשדה בתצוגת עץ כדי לשלוט בגישה ובמיסוך. כל STRUCT מכיל את השדות הבאים של STRING:
  • key: מפתח התג ממרחב השמות, בפורמט PROJECT_ID/TAG_KEY או ORGANIZATION_ID/TAG_KEY.
  • ‫value: השם המקוצר של ערך התג.
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: מזהה הפרויקט ב- Cloud de Confiance (אופציונלי). אם לא מציינים פרויקט, המערכת משתמשת בפרויקט שמוגדר כברירת מחדל.
  • ‫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      |
  +------------+-------------+---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------+-------------+