התצוגה TABLE_STORAGE_BY_FOLDER

התצוגה INFORMATION_SCHEMA.TABLE_STORAGE_BY_FOLDER מכילה שורה אחת לכל טבלה או תצוגה חומרית בתיקיית ההורה של הפרויקט הנוכחי, כולל תיקיות המשנה שלו.

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

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

הנתונים שכלולים בעמודות *_BYTES

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

  • טבלאות קבועות שנוצרו באמצעות אחת מהשיטות שמתוארות במאמר יצירה ושימוש בטבלאות.
  • טבלאות זמניות שנוצרו בסשנים. הטבלאות האלה ממוקמות במערכי נתונים עם שמות שנוצרו באופן אוטומטי, כמו ‎ "_c018003e063d09570001ef33ae401fad6ab92a6a"‎.
  • טבלאות זמניות שנוצרו בשאילתות עם כמה הצהרות ("סקריפטים"). הטבלאות האלה ממוקמות במערכי נתונים עם שמות שנוצרו באופן אוטומטי, כמו '_script72280c173c88442c3a7200183a50eeeaa4073719'.

הנתונים שמאוחסנים במטמון של תוצאות השאילתות לא מחויבים, ולכן הם לא נכללים בערכים של העמודה *_BYTES.

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

תחזית לחיוב על אחסון

כדי לחזות את החיוב החודשי על אחסון של מערך נתונים, אפשר להשתמש בעמודות logical או physical *_BYTES בתצוגה הזו, בהתאם למודל החיוב על אחסון מערך הנתונים שבו נעשה שימוש במערך הנתונים. חשוב לזכור שמדובר בתחזית גסה בלבד, וסכומי החיוב המדויקים מחושבים על סמך השימוש בתשתית החיוב של אחסון ב-BigQuery, ומוצגים בחיוב ב-Cloud.

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

‫((ACTIVE_LOGICAL_BYTES value / POW(1024, 3)) * active logical bytes pricing) + ((LONG_TERM_LOGICAL_BYTES value / POW(1024, 3)) * long-term logical bytes pricing)

הערך ACTIVE_LOGICAL_BYTES בטבלה משקף את מספר הבייטים הפעילים שמשמשים כרגע את הטבלה.

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

‫((ACTIVE_PHYSICAL_BYTES + FAIL_SAFE_PHYSICAL_BYTES value / POW(1024, 3)) * active physical bytes pricing) + ((LONG_TERM_PHYSICAL_BYTES value / POW(1024, 3)) * long-term physical bytes pricing)

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

כדי לראות את מספר הבייטים הפעילים בטבלה בלבד, מחסרים את הערך TIME_TRAVEL_PHYSICAL_BYTES מהערך ACTIVE_PHYSICAL_BYTES.

מידע נוסף זמין במאמר בנושא תמחור של אחסון.

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

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

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

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

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

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

סכימה

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

שם עמודה סוג נתונים ערך
folder_numbers REPEATED INTEGER מזהי המספרים של התיקיות שמכילות את הפרויקט, החל מהתיקייה שמכילה ישירות את הפרויקט, ואחריה התיקייה שמכילה את תיקיית הצאצא, וכן הלאה. לדוגמה, אם folder_numbers הוא [1, 2, 3], אז התיקייה 1 מכילה מיד את הפרויקט, התיקייה 2 מכילה את 1 והתיקייה 3 מכילה את 2. העמודה הזו מאוכלסת רק ב-TABLE_STORAGE_BY_FOLDER.
project_id STRING מזהה הפרויקט שמכיל את מערך הנתונים.
project_number INT64 מספר הפרויקט שמכיל את מערך הנתונים.
table_catalog STRING מזהה הפרויקט שמכיל את מערך הנתונים.
table_schema STRING השם של מערך הנתונים שמכיל את הטבלה או את התצוגה החומרית, שנקרא גם datasetId.
table_name STRING השם של הטבלה או התצוגה החומרית, שנקראת גם tableId.
creation_time TIMESTAMP זמן היצירה של הטבלה.
total_rows INT64 המספר הכולל של השורות בטבלה או בתצוגה החומרית.
total_partitions INT64 מספר המחיצות שקיימות בטבלה או בתצוגה החומרית. בטבלאות לא מחולקות מוחזר הערך 0.
total_logical_bytes INT64 המספר הכולל של בייטים לוגיים (לא דחוסים) בטבלה או בתצוגה החומרית.
active_logical_bytes INT64 מספר הבייטים הלוגיים (לא דחוסים) שנוצרו לפני פחות מ-90 ימים.
long_term_logical_bytes INT64 מספר הבייטים הלוגיים (לא דחוסים) שנוצרו לפני יותר מ-90 ימים.
current_physical_bytes INT64 המספר הכולל של בייטים פיזיים לאחסון הנוכחי של הטבלה בכל המחיצות.
total_physical_bytes INT64 המספר הכולל של בייטים פיזיים (דחוסים) שמשמשים לאחסון, כולל בייטים של נתונים פעילים, נתונים לטווח ארוך ונתונים שחזרו אחורה בזמן (נתונים שנמחקו או שונו). לא נכללים בחישוב בייטים של נתונים שמוחקים או משנים אותם אחרי חלון הזמן של השחזור.
active_physical_bytes INT64 מספר הבייטים הפיזיים (דחוסים) שגילם פחות מ-90 ימים, כולל בייטים של נתונים ששוחזרו (נתונים שנמחקו או שונו).
long_term_physical_bytes INT64 מספר הבייטים הפיזיים (דחוסים) שהועלו לפני יותר מ-90 ימים.
time_travel_physical_bytes INT64 מספר הבייטים הפיזיים (דחוסים) שנעשה בהם שימוש באחסון של נסיעה בזמן (נתונים שנמחקו או שונו).
storage_last_modified_time TIMESTAMP השעה האחרונה שבה נכתבו נתונים בטבלה. הפונקציה מחזירה NULL אם לא קיימים נתונים.
deleted BOOLEAN מציין אם הטבלה נמחקה או לא.
table_type STRING סוג הטבלה. לדוגמה, BASE TABLE.
managed_table_type STRING העמודה הזו נמצאת בגרסת טרום-השקה (Preview). הסוג המנוהל של הטבלה. לדוגמה: NATIVE או BIGLAKE.
fail_safe_physical_bytes INT64 מספר הבייטים הפיזיים (דחוסים) שנעשה בהם שימוש באחסון בטוח מפני כשלים (נתונים שנמחקו או שונו).
last_metadata_index_refresh_time TIMESTAMP השעה שבה בוצע רענון אחרון של אינדקס המטא-נתונים של הטבלה.
table_deletion_reason STRING הסיבה למחיקת הטבלה אם הערך בשדה deleted הוא true. הערכים האפשריים הם:
  • טבלה אחת (TABLE_EXPIRATION:) נמחקה אחרי שהגיע הזמן שנקבע לתפוגה
  • קבוצת נתונים אחת (DATASET_DELETION:) נמחקה על ידי המשתמש
  • טבלה אחת (USER_DELETED:) נמחקה על ידי המשתמש
table_deletion_time TIMESTAMP זמן המחיקה של הטבלה.

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

היקף ותחביר

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

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

כדי לאחזר את פרטי האחסון של טבלאות בתיקיית האב של הפרויקט שצוין, מריצים את השאילתה הבאה:

SELECT * FROM `myProject`.`region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE_BY_FOLDER;

דוגמה

השאילתה הבאה מראה באילו פרויקטים בתיקייה נעשה שימוש בהכי הרבה נפח אחסון:

SELECT
  project_id,
  SUM(total_logical_bytes) AS total_logical_bytes
FROM
  `region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE_BY_FOLDER
GROUP BY
  project_id
ORDER BY
  total_logical_bytes DESC;

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

+---------------------+---------------------+
|     project_id      | total_logical_bytes |
+---------------------+---------------------+
| projecta            |     971329178274633 |
+---------------------+---------------------+
| projectb            |     834638211024843 |
+---------------------+---------------------+
| projectc            |     562910385625126 |
+---------------------+---------------------+