התצוגה TABLE_OPTIONS

התצוגה INFORMATION_SCHEMA.TABLE_OPTIONS מכילה שורה אחת לכל אפשרות, לכל טבלה או תצוגה במערך נתונים. התצוגות TABLES ו-TABLE_OPTIONS מכילות גם מידע כללי על הצפיות. מידע מפורט זמין בתצוגה INFORMATION_SCHEMA.VIEWS.

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

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

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

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

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

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

סכימה

כשמריצים שאילתה בתצוגה INFORMATION_SCHEMA.TABLE_OPTIONS, תוצאות השאילתה מכילות שורה אחת לכל אפשרות, לכל טבלה או תצוגה במערך נתונים. למידע מפורט על תצוגות, אפשר להריץ שאילתה על התצוגה INFORMATION_SCHEMA.VIEWS.

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

שם העמודה סוג נתונים ערך
table_catalog STRING מזהה הפרויקט שמכיל את מערך הנתונים
table_schema STRING השם של מערך הנתונים שמכיל את הטבלה או התצוגה, שנקרא גם datasetId
table_name STRING השם של הטבלה או התצוגה, שנקרא גם tableId
option_name STRING אחד מערכי השם בטבלת האפשרויות
option_type STRING אחד מערכי סוג הנתונים בטבלת האפשרויות
option_value STRING אחת מאפשרויות הערכים בטבלת האפשרויות
טבלת אפשרויות

OPTION_NAME

OPTION_TYPE

OPTION_VALUE

description

STRING

תיאור של הטבלה

enable_refresh

BOOL

אם הרענון האוטומטי מופעל בתצוגה חומרית

expiration_timestamp

TIMESTAMP

השעה שבה יפוג התוקף של הטבלה הזו

friendly_name

STRING

השם התיאורי של הטבלה

kms_key_name

STRING

השם של מפתח Cloud KMS שמשמש להצפנת הטבלה

labels

ARRAY<STRUCT<STRING, STRING>>

מערך של STRUCT שמייצג את התוויות בטבלה

max_staleness

INTERVAL

הערך המקסימלי של נתוני הטבלה שהוגדרה בעדכונים של נתוני שינוי (CDC) ב-BigQuery

partition_expiration_days

FLOAT64

משך החיים שמוגדר כברירת מחדל, בימים, של כל המחיצות בטבלה מחולקת למחיצות

refresh_interval_minutes

FLOAT64

התדירות שבה תצוגה חומרית מתרעננת

require_partition_filter

BOOL

האם שאילתות בטבלה דורשות מסנן מחיצה

tags

ARRAY<STRUCT<STRING, STRING>>

תגים שמצורפים לטבלה בתחביר <key, value> במרחב שמות. מידע נוסף זמין במאמר בנושא תגים וגישה מותנית.

בטבלאות חיצוניות, האפשרויות הן:

אפשרויות
allow_jagged_rows

BOOL

אם הערך הוא true, המערכת מאפשרת שורות שחסרות בהן עמודות אופציונליות בסוף.

ההגדרה חלה על נתוני CSV.

allow_quoted_newlines

BOOL

אם true, מאפשרים בקובץ קטעי נתונים עם מרכאות שמכילים תווים של שורה חדשה.

ההגדרה חלה על נתוני CSV.

bigtable_options

STRING

נדרש רק כשיוצרים טבלה חיצונית של Bigtable.

מציין את הסכימה של הטבלה החיצונית ב-Bigtable בפורמט JSON.

רשימת האפשרויות להגדרת טבלאות Bigtable מופיעה במאמר בנושא BigtableOptionsבהפניית API בארכיטקטורת REST.

column_name_character_map

STRING

מגדיר את היקף התווים הנתמכים בשמות העמודות ואת אופן הטיפול בתווים לא נתמכים. ההגדרה שמוגדרת כברירת מחדל היא STRICT, כלומר תווים לא נתמכים גורמים ל-BigQuery להחזיר שגיאות. ‫V1 ו-V2 מחליפים כל תו לא נתמך בקו תחתון.

הערכים הנתמכים כוללים:

compression

STRING

סוג הדחיסה של מקור הנתונים. הערכים הנתמכים כוללים: GZIP. אם לא מציינים, מקור הנתונים לא דחוס.

ההגדרה חלה על נתוני CSV ו-JSON.

decimal_target_types

ARRAY<STRING>

ההגדרה קובעת איך להמיר סוג Decimal. שווה ערך ל-ExternalDataConfiguration.decimal_target_types

דוגמה: ["NUMERIC", "BIGNUMERIC"]

description

STRING

תיאור של הטבלה.

enable_list_inference

BOOL

אם true, נעשה שימוש בהסקת סכימה באופן ספציפי עבור סוג לוגי של רשימת Parquet.

ההגדרה חלה על נתונים בפורמט Parquet.

enable_logical_types

BOOL

אם true, ממירים סוגים לוגיים של Avro לסוגי ה-SQL התואמים שלהם. מידע נוסף זמין במאמר בנושא סוגים לוגיים.

ההגדרה חלה על נתוני Avro.

encoding

STRING

קידוד התווים של הנתונים. הערכים הנתמכים כוללים: UTF8 (או UTF-8),‏ ISO_8859_1 (או ISO-8859-1),‏ UTF-16BE,‏ UTF-16LE,‏ UTF-32BE או UTF-32LE. ערך ברירת המחדל הוא UTF-8.

ההגדרה חלה על נתוני CSV.

enum_as_string

BOOL

אם true, המערכת מסיקה שסוג הנתונים הלוגי Parquet ENUM הוא STRING במקום BYTES כברירת מחדל.

ההגדרה חלה על נתונים בפורמט Parquet.

expiration_timestamp

TIMESTAMP

הזמן שבו תוקף הטבלה יפוג. אם לא מציינים תאריך תפוגה, הטבלה לא תפוג.

דוגמה: "2025-01-01 00:00:00 UTC"

field_delimiter

STRING

התו המפריד בין השדות בקובץ CSV.

ההגדרה חלה על נתוני CSV.

format

STRING

הפורמט של הנתונים החיצוניים. הערכים הנתמכים של CREATE EXTERNAL TABLE כוללים: AVRO, ‏ CLOUD_BIGTABLE, ‏ CSV,‏ DATASTORE_BACKUP, ‏ DELTA_LAKE (גרסת Preview),‏ GOOGLE_SHEETS, ‏ NEWLINE_DELIMITED_JSON (או JSON), ‏ ORC, ‏ PARQUET.

הערכים הנתמכים של LOAD DATA כוללים: AVRO, ‏ CSV,‏ DELTA_LAKE (גרסת טרום-השקה),‏ NEWLINE_DELIMITED_JSON (או JSON),‏ ORC ו-PARQUET.

הערך JSON שווה לערך NEWLINE_DELIMITED_JSON.

hive_partition_uri_prefix

STRING

קידומת משותפת לכל מזהי ה-URI של המקור לפני שמתחיל קידוד מפתח המחיצה. ההגדרה חלה רק על טבלאות חיצוניות עם חלוקה למחיצות ב-Hive.

ההגדרה הזו חלה על נתוני Avro,‏ CSV,‏ JSON,‏ Parquet ו-ORC.

דוגמה: "gs://bucket/path"

file_set_spec_type

STRING

מציין איך לפרש כתובות URI של מקורות למשימות טעינה ולטבלאות חיצוניות.

הערכים הנתמכים כוללים:

  • FILE_SYSTEM_MATCH. מרחיב את מזהי ה-URI של המקור על ידי הצגת רשימה של קבצים ממאגר האובייקטים. זו התנהגות ברירת המחדל אם לא מוגדר FileSetSpecType.
  • NEW_LINE_DELIMITED_MANIFEST. מציין שכתובות ה-URI שסופקו הן קובצי מניפסט שמופרדים באמצעות תווי שורה חדשה, עם כתובת URI אחת בכל שורה. כתובות URI עם תווים כלליים לא נתמכות בקובצי המניפסט, וכל קובצי הנתונים שמפנים אליהם צריכים להיות באותו מאגר כמו קובץ המניפסט.

לדוגמה, אם ה-URI של המקור הוא "gs://bucket/path/file" וה-file_set_spec_type הוא FILE_SYSTEM_MATCH, הקובץ ישמש ישירות כקובץ נתונים. אם הערך של file_set_spec_type הוא NEW_LINE_DELIMITED_MANIFEST, כל שורה בקובץ מפורשת כ-URI שמפנה לקובץ נתונים.

ignore_unknown_values

BOOL

אם true, המערכת מתעלמת מערכים נוספים שלא מיוצגים בסכימת הטבלה, בלי להחזיר שגיאה.

ההגדרה חלה על נתוני CSV ו-JSON.

json_extension

STRING

לנתוני JSON, מציין פורמט מסוים של חילופי JSON. אם לא מציינים את הפורמט, BigQuery קורא את הנתונים כרשומות JSON כלליות.

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

max_bad_records

INT64

המספר המקסימלי של רשומות פגומות להתעלמות בזמן קריאת הנתונים.

רלוונטי לנתוני CSV,‏ JSON ו-Google Sheets.

max_staleness

INTERVAL

האפשרות הזו רלוונטית לטבלאות BigLake ולטבלאות אובייקטים.

המדיניות הזו מציינת אם פעולות שמתבצעות בטבלה משתמשות במטא-נתונים ששמורים במטמון, ומה רמת העדכניות של המטא-נתונים ששמורים במטמון שנדרשת כדי שהפעולה תוכל להשתמש בהם.

כדי להשבית את השמירה במטמון של המטא-נתונים, מציינים את הערך 0. (זוהי ברירת המחדל)

כדי להפעיל שמירת מטא-נתונים במטמון, צריך לציין ערך של מילול לציון מרווח בין 30 דקות ל-7 ימים. לדוגמה, כדי להגדיר את מרווח הזמן של הנתונים הלא עדכניים ל-4 שעות, מציינים INTERVAL 4 HOUR. אם הערך הזה קיים, פעולות שמתבצעות בטבלה משתמשות במטא נתונים ששמורים במטמון, אם הם רעננו ב-4 השעות האחרונות. אם המטא-נתונים שנשמרו במטמון ישנים יותר, הפעולה חוזרת לאחזור מטא-נתונים מ-Cloud Storage.

null_marker

STRING

המחרוזת שמייצגת ערכים של NULL בקובץ CSV.

ההגדרה חלה על נתוני CSV.

null_markers

ARRAY<STRING>

רשימת המחרוזות שמייצגות ערכים של NULL בקובץ CSV.

אי אפשר להשתמש באפשרות הזו עם האפשרות null_marker.

ההגדרה חלה על נתוני CSV.

object_metadata

STRING

נדרש רק כשיוצרים טבלת אובייקטים.

מגדירים את הערך של האפשרות הזו כ-SIMPLE כשיוצרים טבלת אובייקטים.

preserve_ascii_control_characters

BOOL

אם true, אז תווי הבקרה המוטמעים מסוג ASCII שמופיעים ב-32 התווים הראשונים בטבלת ASCII, בטווח ‎'\x00' עד ‎ '\x1F', נשמרים.

ההגדרה חלה על נתוני CSV.

projection_fields

STRING

רשימה של מאפייני ישות לטעינה.

ההגדרה חלה על נתונים ב-Datastore.

quote

STRING

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

ההגדרה חלה על נתוני CSV.

reference_file_schema_uri

STRING

קובץ עזר שסופק על ידי המשתמש עם סכימת הטבלה.

רלוונטי לנתונים בפורמט Parquet/ORC/AVRO.

דוגמה: "gs://bucket/path/reference_schema_file.parquet"

require_hive_partition_filter

BOOL

אם true, כל השאילתות בטבלה הזו דורשות מסנן מחיצות שאפשר להשתמש בו כדי להסיר מחיצות כשקוראים נתונים. ההגדרה חלה רק על טבלאות חיצוניות עם חלוקה למחיצות ב-Hive.

ההגדרה הזו חלה על נתוני Avro,‏ CSV,‏ JSON,‏ Parquet ו-ORC.

sheet_range

STRING

הטווח של גיליון אלקטרוני ב-Google Sheets שממנו רוצים לשלוף נתונים.

המידע מתייחס לנתונים ב-Google Sheets.

דוגמה: "sheet1!A1:B20",

skip_leading_rows

INT64

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

ההגדרה הזו חלה על נתונים ב-CSV וב-Google Sheets.

source_column_match

STRING

ההגדרה הזו קובעת את השיטה שבה המערכת משתמשת כדי להתאים בין העמודות שנטענו לבין הסכימה.

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

הערכים הנתמכים כוללים:

  • POSITION: התאמות לפי מיקום. באפשרות הזו מניחים שהעמודות מסודרות באותו אופן כמו הסכימה.
  • NAME: התאמות לפי שם. האפשרות הזו קוראת את שורת הכותרת כשמות של עמודות ומסדרת מחדש את העמודות כך שיתאימו לשמות השדות בסכימה. שמות העמודות נקראים מהשורה האחרונה שדילגתם עליה, על סמך המאפיין skip_leading_rows.
tags <ARRAY<STRUCT<STRING, STRING>>>

מערך של תגי IAM לטבלה, שמוצגים כצמדי מפתח/ערך. המפתח צריך להיות שם המפתח במרחב השמות, והערך צריך להיות השם המקוצר.

time_zone

STRING

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

בודקים את השמות התקינים של אזורי הזמן.

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

ההגדרה חלה על נתוני CSV ו-JSON.

date_format

STRING

רכיבי פורמט שמגדירים את הפורמט של ערכי התאריך בקובצי הקלט (לדוגמה, MM/DD/YYYY).

אם הערך הזה קיים, זהו הפורמט היחיד התואם של DATE. זיהוי אוטומטי של סכימה יקבע גם את סוג העמודה DATE על סמך הפורמט הזה במקום הפורמט הקיים.

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

ההגדרה חלה על נתוני CSV ו-JSON.

datetime_format

STRING

רכיבי פורמט שמגדירים את הפורמט של ערכי DATETIME בקובצי הקלט (לדוגמה, MM/DD/YYYY HH24:MI:SS.FF3).

אם הערך הזה קיים, זהו הפורמט היחיד התואם של DATETIME. זיהוי אוטומטי של סכימה יקבע גם את סוג העמודה DATETIME על סמך הפורמט הזה במקום הפורמט הקיים.

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

ההגדרה חלה על נתוני CSV ו-JSON.

time_format

STRING

רכיבי פורמט שמגדירים את הפורמט של ערכי השעה בקובצי הקלט (לדוגמה, HH24:MI:SS.FF3).

אם הערך הזה קיים, הפורמט הזה הוא הפורמט היחיד התואם של TIME. זיהוי אוטומטי של סכימה יקבע גם את סוג העמודה TIME על סמך הפורמט הזה במקום הפורמט הקיים.

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

ההגדרה חלה על נתוני CSV ו-JSON.

timestamp_format

STRING

רכיבי פורמט שמגדירים איך ערכי חותמת הזמן מפורמטים בקובצי הקלט (לדוגמה, MM/DD/YYYY HH24:MI:SS.FF3).

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

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

ההגדרה חלה על נתוני CSV ו-JSON.

uris

בטבלאות חיצוניות, כולל טבלאות אובייקטים, שאינן טבלאות Bigtable:

ARRAY<STRING>

מערך של מזהי URI מוגדרים במלואם למיקומי הנתונים החיצוניים. כל URI יכול להכיל כוכבית אחת (*), תו כללי, שחייבת להופיע אחרי שם הקטגוריה. כשמציינים ערכים של uris שמטרגטים כמה קבצים, לכל הקבצים האלה צריכה להיות סכימה תואמת.

בדוגמאות הבאות מוצגים ערכים חוקיים של uris:

  • ['gs://bucket/path1/myfile.csv']
  • ['gs://bucket/path1/*.csv']
  • ['gs://bucket/path1/*', 'gs://bucket/path2/file00*']

לטבלאות Bigtable:

STRING

כתובת ה-URI שמזהה את טבלת Bigtable שבה רוצים להשתמש כמקור נתונים. אפשר לציין רק URI אחד של Bigtable.

דוגמה: https://googleapis.com/bigtable/projects/project_id/instances/instance_id[/appProfiles/app_profile]/tables/table_name

מידע נוסף על יצירת URI של Bigtable זמין במאמר בנושא אחזור ה-URI של Bigtable.

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

היקף ותחביר

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

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

דוגמה

דוגמה 1:

בדוגמה הבאה מאחזרים את זמני התפוגה של טבלאות ברירת המחדל לכל הטבלאות ב-mydataset בפרויקט ברירת המחדל (myproject) על ידי שאילתה של התצוגה INFORMATION_SCHEMA.TABLE_OPTIONS.

כדי להריץ את השאילתה על פרויקט שאינו פרויקט ברירת המחדל, מוסיפים את מזהה הפרויקט למערך הנתונים בפורמט הבא: `project_id`.dataset.INFORMATION_SCHEMA.view. לדוגמה: `myproject`.mydataset.INFORMATION_SCHEMA.TABLE_OPTIONS.

  SELECT
    *
  FROM
    mydataset.INFORMATION_SCHEMA.TABLE_OPTIONS
  WHERE
    option_name = 'expiration_timestamp';

התוצאה אמורה להיראות כך:

  +----------------+---------------+------------+----------------------+-------------+--------------------------------------+
  | table_catalog  | table_schema  | table_name |     option_name      | option_type |             option_value             |
  +----------------+---------------+------------+----------------------+-------------+--------------------------------------+
  | myproject      | mydataset     | mytable1   | expiration_timestamp | TIMESTAMP   | TIMESTAMP "2020-01-16T21:12:28.000Z" |
  | myproject      | mydataset     | mytable2   | expiration_timestamp | TIMESTAMP   | TIMESTAMP "2021-01-01T21:12:28.000Z" |
  +----------------+---------------+------------+----------------------+-------------+--------------------------------------+
  

דוגמה 2:

בדוגמה הבאה מאחזרים מטא-נתונים על כל הטבלאות ב-mydataset שמכילות נתוני בדיקה. השאילתה משתמשת בערכים באפשרות description כדי למצוא טבלאות שמכילות את המחרוזת 'test' בכל מקום בתיאור. ‫mydataset נמצא בפרויקט ברירת המחדל שלכם – myproject.

כדי להריץ את השאילתה בפרויקט שאינו פרויקט ברירת המחדל, מוסיפים את מזהה הפרויקט למערך הנתונים בפורמט הבא: `project_id`.dataset.INFORMATION_SCHEMA.view; לדוגמה: `myproject`.mydataset.INFORMATION_SCHEMA.TABLE_OPTIONS.

  SELECT
    *
  FROM
    mydataset.INFORMATION_SCHEMA.TABLE_OPTIONS
  WHERE
    option_name = 'description'
    AND option_value LIKE '%test%';

התוצאה אמורה להיראות כך:

  +----------------+---------------+------------+-------------+-------------+--------------+
  | table_catalog  | table_schema  | table_name | option_name | option_type | option_value |
  +----------------+---------------+------------+-------------+-------------+--------------+
  | myproject      | mydataset     | mytable1   | description | STRING      | "test data"  |
  | myproject      | mydataset     | mytable2   | description | STRING      | "test data"  |
  +----------------+---------------+------------+-------------+-------------+--------------+