עבודה עם היסטוריית השינויים
היסטוריית השינויים ב-BigQuery מאפשרת לעקוב אחרי היסטוריית השינויים בטבלה ב-BigQuery. אפשר להשתמש בפונקציות של GoogleSQL כדי לראות סוגים מסוימים של שינויים שבוצעו במהלך טווח זמן מסוים, וכך לעבד שינויים מצטברים שבוצעו בטבלה. הבנה של השינויים שבוצעו בטבלה יכולה לעזור לכם לבצע פעולות כמו תחזוקה מצטברת של רפליקה של טבלה מחוץ ל-BigQuery, תוך הימנעות מהעתקות יקרות.
ההרשאות הנדרשות
כדי לראות את היסטוריית השינויים בטבלה, צריך את ההרשאה bigquery.tables.getDataבטבלה הזו. ההרשאה הזו כלולה בתפקידים המוגדרים מראש הבאים בממשק של ניהול הזהויות והרשאות הגישה (IAM):
roles/bigquery.dataViewerroles/bigquery.dataEditorroles/bigquery.dataOwnerroles/bigquery.admin
אם בטבלה יש או היו מדיניות גישה ברמת השורה, רק אדמין של הטבלה יכול לגשת לנתונים היסטוריים של הטבלה. ההרשאה bigquery.rowAccessPolicies.overrideTimeTravelRestrictions נדרשת בטבלה והיא כלולה בתפקיד המוגדר מראש roles/bigquery.admin ב-IAM.
אם בטבלה יש אבטחה ברמת העמודה, אפשר לראות את היסטור השינויים רק בעמודות שיש לכם גישה אליהן.
פונקציות של היסטוריית שינויים
אפשר להשתמש בפונקציות הבאות כדי להבין את היסטוריית השינויים של טבלה:
APPENDS: מחזירה את כל השורות שצורפו לטבלה בטווח זמן נתון.הפעולות הבאות מוסיפות שורות להיסטוריית השינויים
APPENDS:
CHANGES: מחזירה את כל השורות שהשתנו בטבלה בטווח זמן נתון. כדי להשתמש בפונקציהCHANGESבטבלה, צריך להגדיר את האפשרותenable_change_historyשל הטבלה לערךTRUE.הפעולות הבאות מוסיפות שורות להיסטוריית השינויים
CHANGES:CREATE TABLEהצהרת DDLINSERTפקודת DML- נתונים שנוספו או שונו כחלק מ
MERGEפקודת DML UPDATEפקודת DMLDELETEפקודת DML- טעינת נתונים לתוך BigQuery
- הטמעת עדכונים בזמן אמת
TRUNCATE TABLEפקודת DML- משימות שהוגדרו עם
writeDispositionשלWRITE_TRUNCATE - מחיקות של מחיצות בטבלה
תמחור ועלויות
הפעלת פונקציות של היסטוריית שינויים כרוכה בעלויות מחשוב ב-BigQuery.
הפונקציות APPENDS ו-CHANGES דורשות עיבוד של כל הנתונים שנכתבו בטבלה בטווח הזמן שצוין. העיבוד הזה חל על כל פעולות הכתיבה, כולל פעולות הוספה ושינוי.
הגדרת האפשרות enable_change_history של טבלה ל-FALSE לא מפחיתה את הנתונים שעובדו על ידי APPENDS.
כשמגדירים את האפשרות enable_change_history בטבלה לערך TRUE כדי להשתמש בפונקציה CHANGES, BigQuery מאחסן מטא-נתונים של שינויים בטבלה. האחסון של המטא-נתונים האלה כרוך בעלויות אחסון נוספות ב-BigQuery ובעלויות מחשוב ב-BigQuery.
סכום החיוב תלוי במספר השינויים שבוצעו בטבלה ובסוג שלהם, ובדרך כלל הוא נמוך. בטבלאות שכוללות הרבה פעולות שינוי, במיוחד מחיקות גדולות, סביר להניח שיהיו עלויות משמעותיות.