תצוגת עמודות

התצוגה INFORMATION_SCHEMA.COLUMNS מכילה שורה אחת לכל עמודה (שדה) בטבלה.

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

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

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

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

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

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

סכימה

כשמריצים שאילתה בתצוגה INFORMATION_SCHEMA.COLUMNS, תוצאות השאילתה מכילות שורה אחת לכל עמודה (שדה) בטבלה.

לתצוגה INFORMATION_SCHEMA.COLUMNS יש את הסכימה הבאה:

שם העמודה סוג נתונים ערך
table_catalog STRING מזהה הפרויקט שמכיל את מערך הנתונים.
table_schema STRING שם מערך הנתונים שמכיל את הטבלה, שנקרא גם datasetId.
table_name STRING השם של הטבלה או התצוגה, שנקרא גם tableId.
column_name STRING שם העמודה.
ordinal_position INT64 ההיסט של העמודה בטבלה, מבוסס על אינדקס שמתחיל מ-1. אם זו עמודה וירטואלית כמו _PARTITIONTIME או _PARTITIONDATE, הערך הוא NULL.
is_nullable STRING YES או NO, בהתאם למצב של העמודה שמאפשר ערכי NULL.
data_type STRING סוג הנתונים ב-GoogleSQL של העמודה.
is_generated STRING הערך הוא ALWAYS אם העמודה היא עמודת הטמעה שנוצרה באופן אוטומטי. אחרת, הערך הוא NEVER.
generation_expression STRING הערך הוא ביטוי הדור שמשמש להגדרת העמודה אם העמודה היא עמודת הטמעה שנוצרת באופן אוטומטי. אחרת, הערך הוא NULL.
is_stored STRING הערך הוא YES אם העמודה היא עמודת הטמעה שנוצרה באופן אוטומטי, אחרת הערך הוא NULL.
is_hidden STRING YES או NO, בהתאם לשאלה אם העמודה היא עמודה פסאודו כמו ‎_PARTITIONTIME או ‎_PARTITIONDATE.
is_updatable STRING הערך הוא תמיד NULL.
is_system_defined STRING YES או NO, בהתאם לשאלה אם העמודה היא עמודה פסאודו כמו ‎_PARTITIONTIME או ‎_PARTITIONDATE.
is_partitioning_column STRING YES או NO, בהתאם לשאלה אם העמודה היא עמודת חלוקה.
clustering_ordinal_position INT64 ההיסט של העמודה בטבלה, מבוסס על אינדקס של 1, בתוך עמודות האשכולות של הטבלה. הערך הוא NULL אם הטבלה לא מסודרת באשכולות.
collation_name STRING השם של הגדרת ה-collation אם היא קיימת, אחרת, NULL.

אם מועבר STRING או ARRAY<STRING>, מוחזרת הגדרת ה-collation אם היא קיימת. אחרת, מוחזר NULL.
column_default STRING ערך ברירת המחדל של העמודה אם היא קיימת, אחרת הערך הוא NULL.
rounding_mode STRING אופן העיגול שמשמש לעיגול ערכים שנכתבים בשדה אם הסוג שלו הוא NUMERIC או BIGNUMERIC עם פרמטרים. אחרת, הערך הוא NULL.
data_policies.name STRING רשימת מדיניות הנתונים שמצורפת לעמודה כדי לשלוט בגישה ובהסתרת נתונים. השדה הזה נמצא בגרסת טרום-השקה (Preview).
policy_tags ARRAY<STRING> רשימת תגי המדיניות שמצורפים לעמודה.

כדי לשמור על יציבות, מומלץ לציין במפורש את העמודות בשאילתות של סכימת המידע, במקום להשתמש בתו כל כללי (SELECT *). ציון מפורש של העמודות מונע את השבירה של השאילתות אם הסכימה הבסיסית משתנה.

היקף ותחביר

שאילתות שמופעלות על התצוגה הזו חייבות לכלול מערך נתונים או מסווג אזור. לשאילתות עם מזהה מערך נתונים, צריכות להיות לכם הרשאות למערך הנתונים. כדי להריץ שאילתות עם מסנן אזור, צריך הרשאות בפרויקט. מידע נוסף מופיע במאמר בנושא תחביר. בטבלה הבאה מוסברות רמות הפירוט של האזור והמשאבים בתצוגה הזו:

שם התצוגה היקף המשאבים היקף האזור
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.COLUMNS ברמת הפרויקט REGION
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.COLUMNS רמת מערך הנתונים מיקום מערך הנתונים
מחליפים את מה שכתוב בשדות הבאים:
  • אופציונלי: PROJECT_ID: מזהה הפרויקט ב- Google Cloud . אם לא מציינים פרויקט, המערכת משתמשת בפרויקט שמוגדר כברירת מחדל.
  • REGION: כל שם של אזור במערך נתונים. לדוגמה, `region-us`.
  • DATASET_ID: המזהה של מערך הנתונים. מידע נוסף מופיע במאמר בנושא מאפיין מסנן של מערך נתונים.

דוגמה

בדוגמה הבאה מאחזרים מטא-נתונים מהתצוגה INFORMATION_SCHEMA.COLUMNS של הטבלה population_by_zip_2010 במערך הנתונים census_bureau_usa. מערך הנתונים הזה הוא חלק מתוכנית מערכי הנתונים הציבוריים של BigQuery.

מכיוון שהטבלה שאתם שולחים לה שאילתה נמצאת בפרויקט אחר, פרויקט bigquery-public-data, אתם מוסיפים את מזהה הפרויקט למערך הנתונים בפורמט הבא: `project_id`.dataset.INFORMATION_SCHEMA.view; לדוגמה, `bigquery-public-data`.census_bureau_usa.INFORMATION_SCHEMA.TABLES.

העמודה הבאה לא נכללת בתוצאות השאילתה:

  • IS_UPDATABLE
  SELECT
    * EXCEPT(is_updatable)
  FROM
    `bigquery-public-data`.census_bureau_usa.INFORMATION_SCHEMA.COLUMNS
  WHERE
    table_name = 'population_by_zip_2010';

התוצאה תהיה דומה לזו שמופיעה בהמשך. כדי שהתוצאה תהיה קריאה, חלק מהעמודות לא נכללות בה.

+------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+-------------+
|       table_name       | column_name | ordinal_position | is_nullable | data_type | is_hidden | is_system_defined | is_partitioning_column | clustering_ordinal_position | policy_tags |
+------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+-------------+
| population_by_zip_2010 | zipcode     |                1 | NO          | STRING    | NO        | NO                | NO                     |                        NULL | 0 rows      |
| population_by_zip_2010 | geo_id      |                2 | YES         | STRING    | NO        | NO                | NO                     |                        NULL | 0 rows      |
| population_by_zip_2010 | minimum_age |                3 | YES         | INT64     | NO        | NO                | NO                     |                        NULL | 0 rows      |
| population_by_zip_2010 | maximum_age |                4 | YES         | INT64     | NO        | NO                | NO                     |                        NULL | 0 rows      |
| population_by_zip_2010 | gender      |                5 | YES         | STRING    | NO        | NO                | NO                     |                        NULL | 0 rows      |
| population_by_zip_2010 | population  |                6 | YES         | INT64     | NO        | NO                | NO                     |                        NULL | 0 rows      |
+------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+-------------+