התצוגה TABLE_STORAGE_BY_FOLDER
התצוגה INFORMATION_SCHEMA.TABLE_STORAGE_BY_FOLDER מכילה שורה אחת לכל טבלה או תצוגה חומרית בתיקיית ההורה של הפרויקט הנוכחי, כולל תיקיות המשנה שלו.
הנתונים בטבלה הזו לא מתעדכנים בזמן אמת, ויכול להיות שיהיה עיכוב של כמה שניות עד כמה דקות. שינויים בנפח האחסון שנובעים רק מחלוקה למחיצות או מתפוגה של טבלה, או משינויים בחלון הזמן של מסד הנתונים, עשויים להופיע בתצוגה INFORMATION_SCHEMA.TABLE_STORAGE תוך יום. אם נמחק מערך נתונים שמכיל יותר מ-1,000 טבלאות, השינוי לא יופיע בתצוגה הזו עד שיעבור חלון הזמן של התכונה 'חזרה בזמן' עבור מערך הנתונים שנמחק.
תצוגות האחסון בטבלה מאפשרות לכם לראות בקלות את צריכת נפח האחסון הנוכחית, וגם מספקות פרטים על סוג האחסון: בייטים לוגיים לא דחוסים, בייטים פיזיים דחוסים או בייטים של Time Travel. המידע הזה יכול לעזור לכם במשימות כמו תכנון צמיחה עתידית והבנת דפוסי העדכון של טבלאות.
הנתונים שכלולים בעמודות *_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.getbigquery.tables.list
כל אחד מהתפקידים הבאים שמוגדרים מראש ב-IAM כולל את ההרשאות שצוינו למעלה:
roles/bigquery.adminroles/bigquery.dataViewerroles/bigquery.dataEditorroles/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 |
המספר הכולל של בייטים פיזיים (דחוסים) שמשמשים לאחסון, כולל בייטים של נתונים פעילים, נתונים לטווח ארוך ונתונים של Time Travel (נתונים שנמחקו או שונו). לא נכללים בחישוב בייטים של נתונים שמוחקים או משנים אותם אחרי חלון הזמן של השחזור. |
active_physical_bytes |
INT64 |
מספר הבייטים הפיזיים (דחוסים) שגילם פחות מ-90 ימים, כולל בייטים של נתונים שנמחקו או שונו. |
long_term_physical_bytes |
INT64 |
מספר הבייטים הפיזיים (דחוסים) שנוצרו לפני יותר מ-90 ימים. |
time_travel_physical_bytes |
INT64 |
מספר הבייטים הפיזיים (דחוסים) שנעשה בהם שימוש באחסון של Time Travel (נתונים שנמחקו או שונו). |
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_deletion_time |
TIMESTAMP |
השעה שבה הטבלה נמחקה. |
כדי לשמור על יציבות, מומלץ לציין במפורש את העמודות בשאילתות של סכימת המידע, במקום להשתמש בתו כל כללי (SELECT *). ציון מפורש של העמודות מונע את השבירה של השאילתות אם הסכימה הבסיסית משתנה.
היקף ותחביר
שאילתות שמופעלות על התצוגה הזו חייבות לכלול מסנן אזור. בטבלה הבאה מוסבר היקף האזור בתצוגה הזו:
| שם התצוגה | היקף המשאבים | היקף האזור |
|---|---|---|
[`PROJECT_ID`.]`region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE_BY_FOLDER |
התיקייה שמכילה את הפרויקט שצוין | REGION |
-
אופציונלי:
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . אם לא מציינים פרויקט, המערכת משתמשת בפרויקט שמוגדר כברירת מחדל. -
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 | +---------------------+---------------------+