מבוא לשיבוטים של טבלאות
במאמר הזה מפורטת סקירה כללית על שיבוטים של טבלאות ב-BigQuery. המאמר מיועד למשתמשים שמכירים את BigQuery ואת הטבלאות ב-BigQuery.
שיבוט טבלה הוא עותק קל משקל של טבלה אחרת (שנקראת טבלת הבסיס), שאפשר לכתוב בו. החיוב הוא רק על אחסון נתונים בשיבוט הטבלה ששונים מהטבלה הבסיסית, כך שבתחילה אין עלות אחסון לשיבוט טבלה. מלבד מודל החיוב על אחסון, וכמה מטא-נתונים נוספים של טבלת הבסיס, שיבוט של טבלה דומה לטבלה רגילה – אפשר לשלוח אליה שאילתות, ליצור ממנה עותק, למחוק אותה וכו'.
תרחישים נפוצים לשימוש בשיבוטים של טבלאות:
- יצירת עותקים של טבלאות ייצור שאפשר להשתמש בהן לפיתוח ולבדיקה.
- יצירת סביבות Sandbox למשתמשים כדי ליצור ניתוחים משלהם ולבצע מניפולציות בנתונים, בלי להעתיק פיזית את כל נתוני הייצור. החיוב הוא רק על הנתונים שמשתנים.
אחרי שיוצרים שיבוט של טבלה, היא לא תלויה בטבלת הבסיס. שינויים שתבצעו בטבלת הבסיס או בשיבוט הטבלה לא יופיעו בטבלה השנייה.
אם אתם צריכים עותקים קלים לקריאה בלבד של הטבלאות, כדאי להשתמש בתמונות מצב של טבלאות.
מטא-נתונים של שיבוט טבלה
שיבוט של טבלה כולל את אותם מטא-נתונים כמו טבלה רגילה, בנוסף לפרטים הבאים:
- הפרויקט, מערך הנתונים והשם של טבלת הבסיס של שיבוט הטבלה.
- השעה שבה בוצעה פעולת שיבוט הטבלה. אם נעשה שימוש במסע בזמן כדי ליצור את שיבוט הטבלה, זהו חותמת הזמן של המסע בזמן.
מידע נוסף זמין במאמר בנושא INFORMATION_SCHEMA.TABLES.
פעולות שיבוט של טבלה
באופן כללי, משתמשים בשיבוטים של טבלאות באותו אופן שבו משתמשים בטבלאות רגילות, כולל הפעולות הבאות:
- שליחת שאילתות
- בקרת גישה
- אחזור מטא-נתונים
- חלוקה למחיצות (partitioning) וקיבוץ לאשכולות (clustering)
- עבודה עם סכימות
- מתבצעת מחיקה
עם זאת, יצירת שיבוט של טבלה שונה מיצירת טבלה רגילה. מידע נוסף זמין במאמר בנושא יצירת שיבוטים של טבלאות.
עלויות אחסון
עלויות אחסון חלות על שיבוטים של טבלאות, אבל BigQuery מחייב רק על הנתונים בשיבוט של טבלה שלא מחויבים כבר בטבלה אחרת:
כשיוצרים שיבוט של טבלה, בהתחלה אין עלות אחסון לשיבוט הטבלה.
אם מוסיפים נתונים או משנים אותם בשיבוט של טבלה, תחויבו על אחסון הנתונים שנוספו או עודכנו.
כשמשכפלים טבלה, סוג האחסון של המשובט זהה לסוג האחסון של נתוני המקור. לדוגמה, אם משכפלים טבלה שמסווגת כאחסון פעיל, סוג האחסון של המשובט הוא פעיל. באופן דומה, אם טבלת הבסיס מסווגת כאחסון לטווח ארוך, סוג האחסון של השיבוט הוא לטווח ארוך.
אם נתונים נמחקים בשיבוט של טבלה, לא תחויבו על אחסון הנתונים שנמחקו.
אם הנתונים משתנים או נמחקים בטבלת הבסיס שקיימת גם בשיבוט של הטבלה, תשלמו על אחסון השיבוט של הטבלה של הנתונים ששונו או נמחקו. אם יש כמה שיבוטים שמכילים את הנתונים ששונו או נמחקו, תחויבו רק על האחסון שמשמש את השיבוט הכי ישן.
אם נתונים נוספים לטבלת הבסיס אחרי שנוצר שיבוט של הטבלה, לא תחויבו על אחסון הנתונים האלה בשיבוט הטבלה, אבל תחויבו עליהם בטבלת הבסיס.
ההבדל בין חיובים על אחסון של טבלת בסיס לבין חיובים על אחסון של שיבוט טבלה מוצג בתמונה הבאה:
מידע נוסף על התמחור של אחסון ב-BigQuery
מגבלות
- אפשר לשכפל טבלה בין מערכי נתונים באותו פרויקט, ובין מערכי נתונים בפרויקטים שונים. עם זאת, מערך הנתונים של היעד לשכפול הטבלה צריך להיות באותו אזור ובאותו ארגון כמו הטבלה שמשוכפלת. לדוגמה, אי אפשר לשכפל טבלה ממערך נתונים שמבוסס על האיחוד האירופי למערך נתונים שמבוסס על ארה"ב.
- אי אפשר ליצור שיבוט של נתוני טבלה אם התקופה שחלפה מאז שהנתונים נשמרו ארוכה יותר ממשך הזמן של חלון החזרה בזמן של מערך הנתונים של הטבלה.
- אי אפשר ליצור שיבוט של תצוגה או של תצוגה מהותית.
- אי אפשר ליצור שיבוט של טבלה חיצונית.
- אם משכפלים טבלה שיש בה נתונים באחסון שעבר אופטימיזציה לכתיבה (מאגר הנתונים הזמני של הסטרימינג לשורות שהועברו בסטרימינג לאחרונה), הנתונים באחסון שעבר אופטימיזציה לכתיבה לא נכללים בשכפול הטבלה.
- אם משכפלים טבלה שיש בה נתונים במסע בזמן, הנתונים האלה לא נכללים בשכפול.
- אי אפשר להבחין בין שיבוטים של טבלאות לבין טבלאות רגילות בחלונית Explorer. עם זאת, אפשר להבחין בין שיבוט של טבלה לבין טבלה רגילה על ידי הצגת פרטי הטבלה. בפרטי שיבוט הטבלה יש קטע Base Table Info שלא קיים בטבלאות רגילות.
- אי אפשר להשתמש בפעולת שיבוט כדי לצרף נתונים לטבלה קיימת. לדוגמה, אי אפשר להשתמש בהגדרות הדגל
--append_table=trueו---clone=trueבאותה פקודתbq cp. כדי להוסיף נתונים כשמשכפלים טבלה, צריך להשתמש בפעולת העתקה במקום זאת. - כשיוצרים שיבוט של טבלה, השם שלה צריך לעמוד באותם כללי מתן שמות כמו כשיוצרים טבלה.
- יצירת שיבוט של טבלה כפופה למגבלות של BigQuery על משימות העתקה.
- הזמן שנדרש ל-BigQuery כדי ליצור שיבוטים של טבלאות עשוי להשתנות באופן משמעותי בין הרצות שונות, כי האחסון הבסיסי מנוהל באופן דינמי.
מכסות ומגבלות
השכפול של טבלאות כפוף לאותן מכסות ומגבלות שחלות על טבלאות רגילות. מידע נוסף זמין במאמר בנושא מכסות ומגבלות של טבלאות. יש גם מגבלות על שיבוט טבלאות.