ניהול טבלאות
אתם יכולים לנהל את טבלאות BigQuery כדי לשלוט במחזור החיים שלהן, לייעל את עלויות האחסון ולהבטיח את משילות מידע (data governance). ניהול טבלאות כולל משימות כמו עדכון מאפיינים, שינוי שם, העתקה ומחיקה של טבלאות. כשמעדכנים את מאפייני הטבלה ב-BigQuery, אפשר לשנות את זמן התפוגה, התיאור, הגדרת הסכימה, התוויות ואופן העיגול שמוגדר כברירת מחדל.
כדי לשחזר טבלה שנמחקה, אפשר לעיין במאמר שחזור טבלאות שנמחקו. כדי לקבל מידע נוסף על יצירה ושימוש בטבלאות, כולל קבלת מידע על טבלאות, הצגת רשימה של טבלאות ובקרה על הגישה לנתוני הטבלאות, אפשר לעיין במאמר יצירה ושימוש בטבלאות.
לפני שמתחילים
צריך להקצות תפקידים של ניהול זהויות והרשאות גישה (IAM) שמעניקים למשתמשים את ההרשאות הנדרשות לביצוע כל משימה שמופיעה במאמר הזה. ההרשאות שנדרשות לביצוע משימה (אם יש כאלה) מפורטות בקטע 'הרשאות נדרשות' של המשימה.
עדכון מאפייני הטבלה
אפשר לעדכן את הרכיבים הבאים בטבלה:
ההרשאות הנדרשות
כדי לקבל את ההרשאות שנדרשות לעדכון מאפייני הטבלה, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM Data Editor (roles/bigquery.dataEditor) בטבלה.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
זהו תפקיד שמוגדר מראש וכולל את ההרשאות שנדרשות לעדכון מאפייני הטבלה. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי לעדכן את מאפייני הטבלה, נדרשות ההרשאות הבאות:
-
bigquery.tables.update -
bigquery.tables.get
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
בנוסף, אם יש לכם הרשאה bigquery.datasets.create, אתם יכולים לעדכן את המאפיינים של הטבלאות במערכי הנתונים שאתם יוצרים.
עדכון התיאור של טבלה
אפשר לעדכן את התיאור של טבלה בדרכים הבאות:
- באמצעות מסוף Google Cloud .
- באמצעות הצהרה של שפת הגדרת נתונים (DDL)
ALTER TABLE. - שימוש בפקודה
bq updateשל כלי שורת הפקודה של bq. - קריאה לשיטה
tables.patchשל API. - שימוש בספריות הלקוח.
- יצירת תיאור באמצעות Gemini ב-BigQuery.
כדי לעדכן את התיאור של טבלה:
המסוף
אי אפשר להוסיף תיאור כשיוצרים טבלה באמצעות מסוףGoogle Cloud . אחרי שיוצרים את הטבלה, אפשר להוסיף תיאור בדף פרטים.
בחלונית הימנית, לוחצים על כלי הניתוחים:

אם החלונית הימנית לא מוצגת, לוחצים על הרחבת החלונית הימנית כדי לפתוח אותה.
בחלונית Explorer, מרחיבים את הפרויקט, לוחצים על Datasets ובוחרים מערך נתונים.
לוחצים על סקירה כללית > טבלאות ובוחרים טבלה.
לוחצים על הכרטיסייה פרטים ואז על עריכת הפרטים.
בקטע תיאור, מוסיפים תיאור חדש או עורכים תיאור קיים.
לוחצים על Save.
SQL
משתמשים בהצהרת ALTER TABLE SET OPTIONS. בדוגמה הבאה מעדכנים את התיאור של טבלה בשם mytable:
במסוף Google Cloud , עוברים לדף BigQuery.
מזינים את ההצהרה הבאה בעורך השאילתות:
ALTER TABLE mydataset.mytable SET OPTIONS ( description = 'Description of mytable');
לוחצים על הפעלה.
מידע נוסף על הרצת שאילתות זמין במאמר הרצת שאילתה אינטראקטיבית.
BQ
-
במסוף Google Cloud , מפעילים את Cloud Shell.
בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
מריצים את הפקודה
bq updateעם הדגל--description. אם אתם מעדכנים טבלה בפרויקט שאינו פרויקט ברירת המחדל שלכם, צריך להוסיף את מזהה הפרויקט לשם מערך הנתונים בפורמט הבא:project_id:dataset.bq update \ --description "description" \ project_id:dataset.table
מחליפים את מה שכתוב בשדות הבאים:
-
description: הטקסט שמתאר את הטבלה במירכאות -
project_id: מזהה הפרויקט -
dataset: שם מערך הנתונים שמכיל את הטבלה שאתם מעדכנים -
table: שם הטבלה שרוצים לעדכן
דוגמאות:
כדי לשנות את התיאור של הטבלה
mytableבמערך הנתוניםmydatasetל-Description of mytable, מזינים את הפקודה הבאה. מערך הנתוניםmydatasetנמצא בפרויקט ברירת המחדל.bq update --description "Description of mytable" mydataset.mytable
כדי לשנות את התיאור של הטבלה
mytableבמערך הנתוניםmydatasetל-Description of mytable, מזינים את הפקודה הבאה. מערך הנתוניםmydatasetנמצא בפרויקטmyotherprojectולא בפרויקט ברירת המחדל.bq update \ --description "Description of mytable" \ myotherproject:mydataset.mytable
-
API
קוראים לשיטה tables.patch ומשתמשים במאפיין description במשאב הטבלה כדי לעדכן את תיאור הטבלה. עדיף להשתמש בשיטה tables.patch כי השיטה tables.update מחליפה את כל משאב הטבלה.
המשך
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Goהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Go API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Javaהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Java API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Python
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Pythonהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Python API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
מגדירים את המאפיין Table.description וקוראים לפונקציה Client.update_table() כדי לשלוח את העדכון ל-API.Gemini
אתם יכולים ליצור תיאור של טבלה באמצעות Gemini ב-BigQuery בעזרת תובנות לגבי נתונים. תובנות לגבי נתונים היא דרך אוטומטית לבדוק את הנתונים, להבין אותם ולנהל אותם.
מידע נוסף על תובנות לגבי נתונים, כולל שלבי ההגדרה, תפקידי ה-IAM הנדרשים ושיטות מומלצות לשיפור הדיוק של התובנות שנוצרו, זמין במאמר יצירת תובנות לגבי נתונים ב-BigQuery.
במסוף Google Cloud , עוברים לדף BigQuery.
בחלונית הימנית, לוחצים על כלי הניתוחים:

בחלונית Explorer, מרחיבים את הפרויקט ואת מערך הנתונים, ואז בוחרים את הטבלה.
בחלונית הפרטים, לוחצים על הכרטיסייה סכימה.
לוחצים על יצירה.
Gemini יוצר תיאור של הטבלה ותובנות לגביה. יעברו כמה דקות עד שהמידע יאוכלס. אפשר לראות את התובנות שנוצרו בכרטיסייה תובנות של הטבלה.
כדי לערוך ולשמור את תיאור הטבלה שנוצר:
לוחצים על הצגת תיאורים של עמודות.
מוצגים תיאור הטבלה הנוכחי והתיאור שנוצר.
בקטע תיאור הטבלה, לוחצים על שמירה בפרטים.
כדי להחליף את התיאור הנוכחי בתיאור שנוצר, לוחצים על העתקת התיאור המוצע.
עורכים את תיאור הטבלה לפי הצורך ולוחצים על שמירה בפרטים.
תיאור הטבלה מתעדכן באופן מיידי.
כדי לסגור את החלונית תצוגה מקדימה של תיאורים, לוחצים על סגירה.
עדכון מועד התפוגה של טבלה
אפשר להגדיר זמן תפוגה של טבלה כברירת מחדל ברמת מערך הנתונים, או להגדיר את זמן התפוגה של טבלה כשיוצרים אותה. זמן התפוגה של טבלה נקרא לעיתים 'זמן החיים' או TTL.
כשמועד התפוגה של טבלה מסתיים, היא נמחקת יחד עם כל הנתונים שבה. אם צריך, אפשר לבטל את המחיקה של הטבלה שפג תוקפה במסגרת חלון הזמן של Time Travel שצוין עבור מערך הנתונים. מידע נוסף זמין במאמר בנושא שחזור טבלאות שנמחקו.
אם מגדירים את תאריך התפוגה כשיוצרים את הטבלה, תאריך התפוגה שמוגדר כברירת מחדל למערך הנתונים לא יחול על הטבלה. אם לא מגדירים תאריך תפוגה כברירת מחדל ברמת מערך הנתונים, ולא מגדירים תאריך תפוגה כשיוצרים את הטבלה, תאריך התפוגה של הטבלה לא יוגדר לעולם ותצטרכו למחוק את הטבלה באופן ידני.
בכל שלב אחרי יצירת הטבלה, אפשר לעדכן את תאריך התפוגה של הטבלה בדרכים הבאות:
- באמצעות מסוף Google Cloud .
- באמצעות הצהרה של שפת הגדרת נתונים (DDL)
ALTER TABLE. - שימוש בפקודה
bq updateשל כלי שורת הפקודה של bq. - קריאה לשיטה
tables.patchשל API. - שימוש בספריות הלקוח.
כדי לעדכן את זמן התפוגה של טבלה:
המסוף
אי אפשר להוסיף תאריך תפוגה כשיוצרים טבלה באמצעות מסוףGoogle Cloud . אחרי שיוצרים טבלה, אפשר להוסיף או לעדכן את תאריך התפוגה של הטבלה בדף פרטי הטבלה.
בחלונית הימנית, לוחצים על כלי הניתוחים:

בחלונית Explorer, מרחיבים את הפרויקט, לוחצים על Datasets ובוחרים מערך נתונים.
לוחצים על סקירה כללית > טבלאות ובוחרים טבלה.
לוחצים על הכרטיסייה פרטים ואז על עריכת הפרטים.
בקטע תאריך תפוגה, בוחרים באפשרות ציון תאריך. אחר כך בוחרים את תאריך התפוגה באמצעות הווידג'ט של היומן.
לוחצים על Save. זמן התפוגה המעודכן מופיע בקטע פרטי הטבלה.
SQL
משתמשים בהצהרת ALTER TABLE SET OPTIONS. בדוגמה הבאה מתעדכנת שעת התפוגה של טבלה בשם mytable:
במסוף Google Cloud , עוברים לדף BigQuery.
מזינים את ההצהרה הבאה בעורך השאילתות:
ALTER TABLE mydataset.mytable SET OPTIONS ( -- Sets table expiration to timestamp 2025-02-03 12:34:56 expiration_timestamp = TIMESTAMP '2025-02-03 12:34:56');
לוחצים על הפעלה.
מידע נוסף על הרצת שאילתות זמין במאמר הרצת שאילתה אינטראקטיבית.
BQ
-
במסוף Google Cloud , מפעילים את Cloud Shell.
בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
מריצים את הפקודה
bq updateעם הדגל--expiration. אם אתם מעדכנים טבלה בפרויקט שאינו פרויקט ברירת המחדל שלכם, צריך להוסיף את מזהה הפרויקט לשם מערך הנתונים בפורמט הבא:project_id:dataset.bq update \ --expiration integer \
project_id:dataset.tableמחליפים את מה שכתוב בשדות הבאים:
-
integer: משך החיים שמוגדר כברירת מחדל (בשניות) לטבלה. הערך המינימלי הוא 3,600 שניות (שעה אחת). מועד התפוגה הוא השעה הנוכחית בתוספת הערך השלם. אם מציינים את הערך0, התוקף של הטבלה יוסר והוא לא יפוג לעולם. צריך למחוק ידנית טבלאות ללא תאריך תפוגה. project_id: מזהה הפרויקט.-
dataset: השם של מערך הנתונים שמכיל את הטבלה שאתם מעדכנים. -
table: שם הטבלה שרוצים לעדכן.
דוגמאות:
כדי לעדכן את זמן התפוגה של טבלת
mytableבמערך הנתוניםmydatasetל-5 ימים (432,000 שניות), מזינים את הפקודה הבאה. מערך הנתוניםmydatasetנמצא בפרויקט שמוגדר כברירת מחדל.bq update --expiration 432000 mydataset.mytable
כדי לעדכן את זמן התפוגה של טבלת
mytableבמערך הנתוניםmydatasetל-5 ימים (432,000 שניות), מזינים את הפקודה הבאה. מערך הנתוניםmydatasetנמצא בפרויקטmyotherprojectולא בפרויקט ברירת המחדל.bq update --expiration 432000 myotherproject:mydataset.mytable
-
API
קוראים לשיטה tables.patch ומשתמשים במאפיין expirationTime במשאב הטבלה כדי לעדכן את תאריך התפוגה של הטבלה באלפיות השנייה. מכיוון שהשיטה tables.update מחליפה את כל משאב הטבלה, עדיף להשתמש בשיטה tables.patch.
המשך
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Goהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Go API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Javaהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Java API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Node.js
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Node.jsהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Node.js API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Python
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Pythonהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Python API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
מגדירים את המאפיין Table.expires ומפעילים את Client.update_table() כדי לשלוח את העדכון ל-API.כדי לעדכן את זמן התפוגה של מחיצת ברירת המחדל של מערך הנתונים:
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Javaהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Java API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Python
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Pythonהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Python API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
עדכון של אופן העיגול בטבלה
אפשר לעדכן את מצב העיגול שמוגדר כברירת מחדל בטבלה באמצעות הצהרת ה-DDL ALTER TABLE SET OPTIONS. בדוגמה הבאה, מצב העיגול שמוגדר כברירת מחדל עבור mytable מתעדכן ל-ROUND_HALF_EVEN:
ALTER TABLE mydataset.mytable SET OPTIONS ( default_rounding_mode = "ROUND_HALF_EVEN");
כשמוסיפים שדה NUMERIC או BIGNUMERIC לטבלה ולא מציינים שיטת עיגול, שיטת העיגול מוגדרת אוטומטית לשיטת העיגול שמוגדרת כברירת מחדל בטבלה. שינוי מצב העיגול שמוגדר כברירת מחדל בטבלה לא משנה את מצב העיגול של שדות קיימים.
עדכון הגדרת הסכימה של טבלה
מידע נוסף על עדכון הגדרת הסכימה של טבלה זמין במאמר בנושא שינוי סכימות של טבלאות.
שינוי שם של טבלה
אפשר לשנות את השם של טבלה אחרי שיוצרים אותה באמצעות הצהרת ALTER TABLE RENAME TO.
בדוגמה הבאה, השם mytable משתנה ל-mynewtable:
ALTER TABLE mydataset.mytable RENAME TO mynewtable;
ההצהרה ALTER TABLE RENAME TO יוצרת מחדש את הטבלה במערך נתוני היעד עם חותמת הזמן של היצירה של הטבלה המקורית. אם הגדרתם תפוגה של טבלה ברמת מערך הנתונים, יכול להיות שהטבלה ששמה שונה תימחק באופן מיידי אם חותמת הזמן המקורית של היצירה שלה לא נמצאת בטווח של חלון התפוגה.
מגבלות על שינוי השם של טבלאות
- אם רוצים לשנות את השם של טבלה שמוזנים אליה נתונים בסטרימינג, צריך להפסיק את הסטרימינג, לבצע קומיט לסטרימינג בהמתנה ולחכות עד ש-BigQuery יציין שהסטרימינג לא בשימוש.
- בדרך כלל אפשר לשנות את השם של טבלה 5 שעות אחרי פעולת הסטרימינג האחרונה, אבל לפעמים זה לוקח יותר זמן.
- רשימות ACL קיימות של טבלאות ומדיניות גישה לשורות נשמרות, אבל עדכונים לרשימות ACL של טבלאות ולמדיניות גישה לשורות שבוצעו במהלך שינוי השם של הטבלה לא נשמרים.
- אי אפשר לשנות את השם של טבלה ולהריץ פקודת DML על אותה טבלה בו-זמנית.
- שינוי השם של טבלה מסיר את כל התגים של Data Catalog (הוצא משימוש) ואת כל ההיבטים של Knowledge Catalog בטבלה.
- כל אינדקס חיפוש או אינדקס וקטורי שנוצרו בטבלה נמחקים כשמשנים את השם של הטבלה.
- אי אפשר לשנות את השם של טבלאות חיצוניות.
העתקת טבלה
בקטע הזה מוסבר איך ליצור עותק מלא של טבלה. מידע על סוגים אחרים של עותקים של טבלאות זמין במאמרים בנושא שיבוט טבלאות ותמונות מצב של טבלאות.
אפשר להעתיק טבלה בדרכים הבאות:
- משתמשים במסוף Google Cloud .
- משתמשים בפקודה
bq cp. - משתמשים בהצהרה של שפת הגדרת נתונים (DDL)
CREATE TABLE COPY. - קוראים לשיטת ה-API jobs.insert ומגדירים משימת
copy. - משתמשים בספריות הלקוח.
מגבלות על העתקת טבלאות
ההגבלות הבאות חלות על עבודות של העתקת טבלאות:
- אי אפשר לעצור פעולת העתקה של טבלה אחרי שהיא מתחילה. פעולת העתקה של טבלה מתבצעת באופן אסינכרוני, והיא לא מפסיקה גם כשמבטלים את העבודה. תחויבו גם על העברת נתונים לצורך העתקה של טבלה בין אזורים ועל אחסון באזור היעד.
- כשמעתיקים טבלה, השם של טבלת היעד צריך להיות בהתאם לאותם כללי מתן שמות כמו כשיוצרים טבלה.
- עותקים של טבלאות כפופים למגבלות של BigQuery על משימות העתקה.
- Google Cloud במסוף אפשר להעתיק רק טבלה אחת בכל פעם. אי אפשר להחליף טבלה קיימת במערך נתוני היעד. לטבלה צריך להיות שם ייחודי במערך נתוני היעד.
- העתקה של כמה טבלאות מקור לטבלת יעד לא נתמכת במסוף Google Cloud .
כשמעתיקים כמה טבלאות מקור לטבלת יעד באמצעות ה-API, כלי שורת הפקודה של BigQuery או ספריות הלקוח, כל טבלאות המקור צריכות להיות בעלות סכימות זהות, כולל חלוקה למחיצות או סידור באשכולות.
עדכונים מסוימים בסכימת הטבלה, כמו השמטה או שינוי שם של עמודות, יכולים לגרום לכך שלטבלאות יהיו סכימות שנראות זהות אבל ייצוגים פנימיים שונים. במקרה כזה, יכול להיות שפעולת העתקה של טבלה תיכשל עם השגיאה
Maximum limit on diverging physical schemas reached. במקרה כזה, אפשר להשתמש בהצהרהCREATE TABLE LIKEכדי לוודא שהסכימה של טבלת המקור זהה בדיוק לסכימה של טבלת היעד.הזמן שנדרש ל-BigQuery כדי להעתיק טבלאות עשוי להשתנות באופן משמעותי בין הרצות שונות, כי האחסון הבסיסי מנוהל באופן דינמי.
אי אפשר להעתיק טבלת מקור ולהוסיף אותה לטבלת יעד שיש בה יותר עמודות מאשר בטבלת המקור, ולעמודות הנוספות יש ערכי ברירת מחדל. במקום זאת, אפשר להריץ את הפקודה
INSERT destination_table SELECT * FROM source_tableכדי להעתיק את הנתונים.אם פעולת ההעתקה מחליפה טבלה קיימת, הרשאות הגישה ברמת הטבלה של הטבלה הקיימת נשמרות. תגים מטבלת המקור לא מועתקים לטבלה שהוחלפה, אבל התגים בטבלה הקיימת נשמרים. עם זאת, כשמעתיקים טבלאות בין אזורים, התגים בטבלה הקיימת מוסרים.
אם פעולת ההעתקה יוצרת טבלה חדשה, הגישה ברמת הטבלה לטבלה החדשה נקבעת לפי מדיניות הגישה של מערך הנתונים שבו נוצרת הטבלה החדשה. בנוסף, תגים מועתקים מטבלת המקור לטבלה החדשה.
כשמעתיקים כמה טבלאות מקור לטבלת יעד, כל טבלאות המקור צריכות לכלול תגים זהים.
התפקידים הנדרשים
כדי לבצע את המשימות שמתוארות במאמר הזה, נדרשות ההרשאות הבאות.
תפקידים להעתקת טבלאות ומחיצות
כדי לקבל את ההרשאות שנדרשות להעתקת טבלאות ומחיצות, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM Data Editor (roles/bigquery.dataEditor) במערכי הנתונים של המקור והיעד.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
זהו תפקיד שמוגדר מראש וכולל את ההרשאות שנדרשות להעתקת טבלאות ומחיצות. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי להעתיק טבלאות ומחיצות, נדרשות ההרשאות הבאות:
-
bigquery.tables.getDataבמערכי נתוני המקור והיעד -
bigquery.tables.getבמערכי נתוני המקור והיעד -
bigquery.tables.createבמערך נתוני היעד -
bigquery.tables.updateבמערך נתוני היעד
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
הרשאה להפעלת משימת העתקה
כדי לקבל את ההרשאה שנדרשת להפעלת עבודת העתקה, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM Job User (roles/bigquery.jobUser) במערכי הנתונים של המקור והיעד.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקיד המוגדר מראש הזה כולל את ההרשאה bigquery.jobs.create, שנדרשת כדי להפעיל עבודת העתקה.
יכול להיות שתוכלו לקבל את ההרשאה הזו גם בתפקידים בהתאמה אישית או בתפקידים אחרים שמוגדרים מראש.
העתקת טבלת מקור יחידה
אפשר להעתיק טבלה אחת באחת מהדרכים הבאות:
- באמצעות מסוף Google Cloud .
- שימוש בפקודה
bq cpשל כלי שורת הפקודה של bq. - באמצעות הצהרה של שפת הגדרת נתונים (DDL)
CREATE TABLE COPY. - קריאה לשיטת ה-API
jobs.insert, הגדרת משימתcopyוציון המאפייןsourceTable. - שימוש בספריות הלקוח.
ההצהרה Google Cloud והמסוף CREATE TABLE COPYתומכים רק בטבלת מקור אחת ובטבלת יעד אחת במשימת העתקה. כדי להעתיק כמה קובצי מקור לטבלת יעד, צריך להשתמש בכלי שורת הפקודה של BigQuery או ב-API.
כדי להעתיק טבלת מקור אחת:
המסוף
בחלונית הימנית, לוחצים על כלי הניתוחים:

בחלונית Explorer, מרחיבים את הפרויקט, לוחצים על Datasets ובוחרים מערך נתונים.
לוחצים על סקירה כללית > טבלאות ובוחרים טבלה.
בחלונית הפרטים, לוחצים על העתקה.
בתיבת הדו-שיח העתקת הטבלה, בקטע יעד:
- בשדה Project, בוחרים את הפרויקט שבו יישמר העותק של הטבלה.
- בשדה Dataset, בוחרים את מערך הנתונים שבו רוצים לאחסן את הטבלה שהועתקה. מערכי נתוני המקור והיעד צריכים להיות באותו מיקום.
- בשדה Table, מזינים שם לטבלה החדשה. השם חייב להיות ייחודי במערך הנתונים של היעד. אי אפשר להחליף טבלה קיימת במערך הנתונים של היעד באמצעות מסוף Google Cloud . מידע נוסף על הדרישות לשמות של טבלאות זמין במאמר בנושא שמות של טבלאות.
לוחצים על העתקה כדי להתחיל את משימת ההעתקה.
SQL
משתמשים בהצהרה CREATE TABLE COPY כדי להעתיק טבלה בשם table1 לטבלה חדשה בשם table1copy:
במסוף Google Cloud , עוברים לדף BigQuery.
מזינים את ההצהרה הבאה בעורך השאילתות:
CREATE TABLE
myproject.mydataset.table1copyCOPYmyproject.mydataset.table1;לוחצים על הפעלה.
מידע נוסף על הרצת שאילתות זמין במאמר הרצת שאילתה אינטראקטיבית.
BQ
-
במסוף Google Cloud , מפעילים את Cloud Shell.
בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
מריצים את הפקודה
bq cp. אפשר להשתמש בדגלים אופציונליים כדי לשלוט בהגדרת הכתיבה של טבלת היעד:-
-aאו--append_tableמוסיפים את הנתונים מהטבלה של המקור לטבלה קיימת במערך נתוני היעד. -
-fאו--forceמחליפים טבלה קיימת במערך נתוני היעד בלי לבקש אישור. - הפונקציה
-nאו--no_clobberמחזירה את הודעת השגיאה הבאה אם הטבלה קיימת במערך הנתונים של היעד:Table 'project_id:dataset.table' already exists, skipping.אם לא מציינים את-n, ברירת המחדל היא הצגת הנחיה לבחור אם להחליף את טבלת היעד. -
--destination_kms_keyהוא מפתח Cloud KMS בניהול הלקוח שמשמש להצפנת טבלת היעד.
--destination_kms_keyלא מוסבר כאן. מידע נוסף זמין במאמר הגנה על נתונים באמצעות מפתחות של Cloud Key Management Service.אם מערך הנתונים של המקור או היעד נמצא בפרויקט שאינו פרויקט ברירת המחדל, צריך להוסיף את מזהה הפרויקט לשמות של מערכי הנתונים בפורמט הבא:
project_id:dataset.(אופציונלי) מציינים את הדגל
--locationומגדירים את הערך למיקום.bq --location=location cp \ -a -f -n \
project_id:dataset.source_table\project_id:dataset.destination_tableמחליפים את מה שכתוב בשדות הבאים:
-
location: שם המיקום. הדגל--locationהוא אופציונלי. לדוגמה, אם אתם משתמשים ב-BigQuery באזור טוקיו, אתם יכולים להגדיר את הערך של הדגל כ-asia-northeast1. אפשר להגדיר ערך ברירת מחדל למיקום באמצעות קובץ.bigqueryrc. project_id: מזהה הפרויקט.-
dataset: השם של מערך הנתונים של המקור או היעד. -
source_table: הטבלה שאתם מעתיקים. -
destination_table: השם של הטבלה במערך הנתונים של היעד.
דוגמאות:
כדי להעתיק את הטבלה
mydataset.mytableלטבלהmydataset2.mytable2, מזינים את הפקודה הבאה. שני מערכי הנתונים נמצאים בפרויקט שמוגדר כברירת המחדל.bq cp mydataset.mytable mydataset2.mytable2
כדי להעתיק את הטבלה
mydataset.mytableולדרוס טבלת יעד עם אותו שם, מזינים את הפקודה הבאה. מערך הנתונים של המקור נמצא בפרויקט ברירת המחדל. מערך הנתונים של היעד נמצא בפרויקטmyotherproject. מקש הקיצור-fמשמש להחלפת טבלת היעד בלי להציג הנחיה.bq cp -f \ mydataset.mytable \ myotherproject:myotherdataset.mytable
כדי להעתיק את הטבלה
mydataset.mytableולהחזיר שגיאה אם מערך הנתונים של היעד מכיל טבלה עם אותו שם, מזינים את הפקודה הבאה. מערך הנתונים של המקור נמצא בפרויקט ברירת המחדל. מערך הנתונים של היעד נמצא בפרויקטmyotherproject. מקש הקיצור-nמשמש כדי למנוע החלפה של טבלה עם אותו שם.bq cp -n \ mydataset.mytable \ myotherproject:myotherdataset.mytable
כדי להעתיק את הטבלה
mydataset.mytableולצרף את הנתונים לטבלת יעד עם אותו שם, מזינים את הפקודה הבאה. מערך הנתונים של המקור נמצא בפרויקט ברירת המחדל. מערך הנתונים של היעד נמצא בפרויקטmyotherproject. מקש הקיצור- aמשמש להוספה לטבלת היעד.bq cp -a mydataset.mytable myotherproject:myotherdataset.mytable
-
API
אפשר להעתיק טבלה קיימת באמצעות ה-API על ידי קריאה לשיטה bigquery.jobs.insert והגדרת משימת copy. מציינים את המיקום במאפיין location בקטע jobReference של משאב המשימה.
צריך לציין את הערכים הבאים בהגדרות האישיות של המשימה:
"copy": {
"sourceTable": { // Required
"projectId": string, // Required
"datasetId": string, // Required
"tableId": string // Required
},
"destinationTable": { // Required
"projectId": string, // Required
"datasetId": string, // Required
"tableId": string // Required
},
"createDisposition": string, // Optional
"writeDisposition": string, // Optional
},
הפרמטר sourceTable מספק מידע על הטבלה שרוצים להעתיק, הפרמטר destinationTable מספק מידע על הטבלה החדשה, הפרמטר createDisposition מציין אם ליצור את הטבלה אם היא לא קיימת, והפרמטר writeDisposition מציין אם להחליף טבלה קיימת או להוסיף לה נתונים.
C#
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי C#הוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery C# API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
המשך
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Goהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Go API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Javaהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Java API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Node.js
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Node.jsהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Node.js API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
PHP
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי PHPהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery PHP API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Python
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Pythonהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Python API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
העתקת כמה טבלאות מקור
אפשר להעתיק כמה טבלאות מקור לטבלת יעד באופנים הבאים:
- שימוש בפקודה
bq cpשל כלי שורת הפקודה של bq. - ביצוע קריאה לשיטה
jobs.insert, הגדרת משימתcopyוציון המאפייןsourceTables. - שימוש בספריות הלקוח.
לכל טבלאות המקור צריכות להיות סכימות ותגים זהים, ומותרת רק טבלת יעד אחת.
צריך לציין את טבלאות המקור כרשימה שמופרדת בפסיקים. אי אפשר להשתמש בתווים כלליים כשמעתיקים כמה טבלאות מקור.
כדי להעתיק כמה טבלאות מקור, בוחרים באחת מהאפשרויות הבאות:
BQ
-
במסוף Google Cloud , מפעילים את Cloud Shell.
בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
מריצים את הפקודה
bq cpוכוללים כמה טבלאות מקור כרשימה שמופרדת בפסיקים. אפשר להשתמש בדגלים אופציונליים כדי לשלוט בשיטת הכתיבה של טבלת היעד:-
-aאו--append_tableמוסיפים את הנתונים מהטבלאות של מקור הנתונים לטבלה קיימת במערך הנתונים של היעד. -
-fאו--forceמחליפים טבלת יעד קיימת במערך נתוני היעד, ולא מוצגת בקשה לאישור. -
-nאו--no_clobberמחזירה את הודעת השגיאה הבאה אם הטבלה קיימת במערך הנתונים של היעד:Table 'project_id:dataset.table' already exists, skipping.אם לא מציינים את-n, התנהגות ברירת המחדל היא הצגת הנחיה לבחירה אם להחליף את טבלת היעד. -
--destination_kms_keyהוא מפתח Cloud Key Management Service בניהול הלקוח שמשמש להצפנה של טבלת היעד.
--destination_kms_keyלא מוסבר כאן. מידע נוסף זמין במאמר הגנה על נתונים באמצעות מפתחות של Cloud Key Management Service.אם מערך הנתונים של המקור או היעד נמצא בפרויקט שאינו פרויקט ברירת המחדל, צריך להוסיף את מזהה הפרויקט לשמות של מערכי הנתונים בפורמט הבא:
project_id:dataset.(אופציונלי) מציינים את הדגל
--locationומגדירים את הערך למיקום.bq --location=location cp \ -a -f -n \
project_id:dataset.source_table,project_id:dataset.source_table\project_id:dataset.destination_tableמחליפים את מה שכתוב בשדות הבאים:
-
location: שם המיקום. הדגל--locationהוא אופציונלי. לדוגמה, אם אתם משתמשים ב-BigQuery באזור טוקיו, אתם יכולים להגדיר את הערך של הדגל כ-asia-northeast1. אפשר להגדיר ערך ברירת מחדל למיקום באמצעות קובץ.bigqueryrc. project_id: מזהה הפרויקט.-
dataset: השם של מערך הנתונים של המקור או היעד. -
source_table: הטבלה שאתם מעתיקים. -
destination_table: השם של הטבלה במערך הנתונים של היעד.
דוגמאות:
כדי להעתיק את הטבלה
mydataset.mytableואת הטבלהmydataset.mytable2לטבלהmydataset2.tablecopy, מזינים את הפקודה הבאה . כל מערכי הנתונים נמצאים בפרויקט ברירת המחדל שלכם.bq cp \ mydataset.mytable,mydataset.mytable2 \ mydataset2.tablecopy
כדי להעתיק את הטבלה
mydataset.mytableואת הטבלהmydataset.mytable2לטבלהmyotherdataset.mytableולדרוס טבלת יעד עם אותו שם, מזינים את הפקודה הבאה. מערך הנתונים של היעד נמצא בפרויקטmyotherprojectולא בפרויקט ברירת המחדל. מקש הקיצור-fמשמש להחלפת טבלת היעד בלי להציג הנחיה.bq cp -f \ mydataset.mytable,mydataset.mytable2 \ myotherproject:myotherdataset.mytable
כדי להעתיק את הטבלה
myproject:mydataset.mytableואת הטבלהmyproject:mydataset.mytable2ולהחזיר שגיאה אם מערך הנתונים של היעד מכיל טבלה עם אותו שם, מזינים את הפקודה הבאה. מערך הנתונים של היעד נמצא בפרויקטmyotherproject. קיצור הדרך-nמשמש כדי למנוע החלפה של טבלה עם אותו שם.bq cp -n \ myproject:mydataset.mytable,myproject:mydataset.mytable2 \ myotherproject:myotherdataset.mytable
כדי להעתיק את הטבלה
mydataset.mytableואת הטבלהmydataset.mytable2ולצרף את הנתונים לטבלת יעד עם אותו שם, מזינים את הפקודה הבאה. מערך הנתונים של המקור נמצא בפרויקט ברירת המחדל. מערך הנתונים של היעד נמצא בפרויקטmyotherproject. מקש הקיצור-aמשמש להוספה לטבלת היעד.bq cp -a \ mydataset.mytable,mydataset.mytable2 \ myotherproject:myotherdataset.mytable
-
API
כדי להעתיק כמה טבלאות באמצעות ה-API, צריך להפעיל את השיטה jobs.insert, להגדיר עבודת copy של טבלה ולציין את המאפיין sourceTables.
מציינים את האזור במאפיין location בקטע jobReference של משאב המשרה.
המשך
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Goהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Go API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Javaהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Java API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Node.js
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Node.jsהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Node.js API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Python
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Pythonהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Python API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
העתקת טבלאות בין אזורים
אפשר להעתיק טבלה, תמונת מצב של טבלה או שיבוט של טבלה מאזור BigQuery אחד או ממספר אזורים לאזור אחר. זה כולל טבלאות שמוגדר בהן Cloud KMS (CMEK) בניהול הלקוח.
העתקת טבלה בין אזורים כרוכה בחיובים נוספים על העברת נתונים, בהתאם לתמחור של BigQuery. חיובים נוספים יחולו גם אם תבטלו את העתקת הטבלה בין האזורים לפני שהיא תושלם.
כדי להעתיק טבלה בין אזורים, בוחרים באחת מהאפשרויות הבאות:
BQ
-
במסוף Google Cloud , מפעילים את Cloud Shell.
בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
מריצים את הפקודה
bq cp:
bq cp \ -f -n \SOURCE_PROJECT:SOURCE_DATASET.SOURCE_TABLE\DESTINATION_PROJECT:DESTINATION_DATASET.DESTINATION_TABLE
מחליפים את מה שכתוב בשדות הבאים:
SOURCE_PROJECT: מזהה פרויקט המקור. אם מערך הנתונים של המקור נמצא בפרויקט שאינו פרויקט ברירת המחדל, צריך להוסיף את מזהה הפרויקט לשם של מערך הנתונים של המקור.
DESTINATION_PROJECT: מזהה פרויקט היעד. אם מערך הנתונים של היעד נמצא בפרויקט שאינו פרויקט ברירת המחדל, צריך להוסיף את מזהה הפרויקט לשם של מערך הנתונים של היעד.
SOURCE_DATASET: השם של מערך הנתונים של המקור.
DESTINATION_DATASET: השם של מערך הנתונים של היעד.
SOURCE_TABLE: הטבלה שרוצים להעתיק.
DESTINATION_TABLE: השם של הטבלה במערך הנתונים של היעד.
הדוגמה הבאה היא פקודה שמעתיקה את הטבלה mydataset_us.mytable מהאזור הגיאוגרפי us למספר אזורים לטבלה mydataset_eu.mytable2 באזור הגיאוגרפי eu למספר אזורים. שני מערכי הנתונים נמצאים בפרויקט שמוגדר כברירת מחדל.
bq cp --sync=false mydataset_us.mytable mydataset_eu.mytable2
כדי להעתיק טבלה בין אזורים למערך נתונים של יעד שמופעלת בו הצפנת CMEK, צריך להפעיל הצפנת CMEK בטבלה באמצעות מפתח מהאזור של הטבלה. הצפנת ה-CMEK בטבלה לא חייבת להיות אותה הצפנת CMEK שמופעלת במערך נתונים של היעד. בדוגמה הבאה מועתקת טבלה שמופעלת בה הצפנת CMEK למערך נתונים של יעד באמצעות הפקודה bq cp.
bq cp source-project-id:source-dataset-id.source-table-id destination-project-id:destination-dataset-id.destination-table-id
לעומת זאת, כדי להעתיק טבלה שמופעלת בה הצפנת CMEK מאזור אחד לאזור אחר אל מערך נתונים של יעד, אפשר להפעיל את הצפנת ה-CMEK במערך נתוני היעד באמצעות מפתח מאזור מערך נתוני היעד. אפשר גם להשתמש בדגל destination_kms_keys בפקודה bq cp, כמו בדוגמה הבאה:
bq cp --destination_kms_key=projects/project_id/locations/eu/keyRings/eu_key/cryptoKeys/eu_region mydataset_us.mytable mydataset_eu.mytable2
API
כדי להעתיק טבלה בין אזורים באמצעות ה-API, מפעילים את method jobs.insert ומגדירים משימת copy של טבלה.
מציינים את האזור במאפיין location בקטע jobReference של משאב המשרה.
C#
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי C#הוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery C# API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
המשך
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Goהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Go API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Javaהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Java API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Node.js
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Node.jsהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Node.js API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
PHP
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי PHPהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery PHP API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Python
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Pythonהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Python API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
מגבלות
העתקת טבלה בין אזורים כפופה למגבלות הבאות:
- אי אפשר להעתיק טבלה באמצעות מסוף Google Cloud או באמצעות הצהרת
TABLE COPY DDL. - אי אפשר להעתיק טבלה אם יש בה תגי מדיניות.
- אי אפשר להעתיק טבלה אם טבלת המקור גדולה מ-20TiB. במאמר אחזור מידע על טבלאות מוסבר איך לראות את הגודל הפיזי של טבלת המקור. בנוסף, יכול להיות שיהיה צורך לנסות כמה פעמים להעתיק טבלאות מקור גדולות מ-1 TiB פיזי בין אזורים.
- אי אפשר להעתיק מדיניות IAM שמשויכת לטבלאות. אחרי שההעתקה מסתיימת, אפשר להחיל את אותם כללי מדיניות על היעד.
- אם פעולת ההעתקה מחליפה טבלה קיימת, התגים בטבלה הקיימת מוסרים.
- אי אפשר להעתיק כמה טבלאות מקור לטבלת יעד אחת.
- אי אפשר להעתיק טבלאות במצב הוספה. אם משתמשים במצב
write_empty, טבלת היעד לא יכולה להתקיים. - המידע על החזרה בזמן לא מועתק לאזור היעד.
- כשמעתיקים שיבוט או תמונת מצב של טבלה לאזור חדש, נוצר עותק מלא של הטבלה. הפעולה הזו כרוכה בעלויות אחסון נוספות.
- זמן התפוגה מטבלת המקור מועתק לטבלת היעד.
צפייה בשימוש הנוכחי במכסה
כדי לראות את השימוש הנוכחי שלכם בשאילתות, בהעלאות, בחילוצים או בהעתקות של משימות, אתם יכולים להריץ שאילתה INFORMATION_SCHEMA כדי לראות מטא-נתונים על המשימות שהורצו בפרק זמן מסוים. אתם יכולים להשוות את השימוש הנוכחי שלכם למגבלת המכסה כדי לדעת מהו השימוש במכסה עבור סוג מסוים של עבודה. בשאילתה לדוגמה הבאה נעשה שימוש בתצוגה INFORMATION_SCHEMA.JOBS כדי להציג את מספר העבודות של שאילתות, טעינה, חילוץ והעתקה לפי פרויקט:
SELECT sum(case when job_type="QUERY" then 1 else 0 end) as QRY_CNT, sum(case when job_type="LOAD" then 1 else 0 end) as LOAD_CNT, sum(case when job_type="EXTRACT" then 1 else 0 end) as EXT_CNT, sum(case when job_type="COPY" then 1 else 0 end) as CPY_CNT FROM `region-REGION_NAME`.INFORMATION_SCHEMA.JOBS_BY_PROJECT WHERE date(creation_time)= CURRENT_DATE()
שגיאות שקשורות למכסה של מספר העבודות להעתקה ליום בכל פרויקט
השגיאה הזו מוחזרת מ-BigQuery כשהמספר של עבודות ההעתקה שפועלות בפרויקט חורג מהמגבלה היומית. למידע נוסף על המגבלה של עבודות ההעתקה ביום, אפשר לעיין במאמר בנושא עבודות העתקה.
הודעת השגיאה
Your project exceeded quota for copies per project
אבחון
כדי לאסוף נתונים נוספים על המקור של עבודות ההעתקה, אפשר לנסות את הפעולות הבאות:
אם עבודות ההעתקה שלכם ממוקמות באזור אחד או רק בכמה אזורים, אתם יכולים לנסות לשלוח שאילתה לטבלה
INFORMATION_SCHEMA.JOBSלגבי אזורים ספציפיים. לדוגמה:SELECT creation_time, job_id, user_email, destination_table.project_id, destination_table.dataset_id, destination_table.table_id FROM `PROJECT_ID`.`region-REGION_NAME`.INFORMATION_SCHEMA.JOBS WHERE creation_time BETWEEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 2 DAY) AND CURRENT_TIMESTAMP() AND job_type = "COPY" order by creation_time DESC
אפשר גם לשנות את מרווח הזמן בהתאם לטווח הזמן שמעניין אתכם.
כדי לראות את כל עבודות ההעתקה בכל האזורים, אפשר להשתמש במסנן הבא ב-Cloud Logging:
resource.type="bigquery_resource" protoPayload.methodName="jobservice.insert" protoPayload.serviceData.jobInsertRequest.resource.jobConfiguration.tableCopy:*
רזולוציה
- אם המטרה של פעולות ההעתקה התכופות היא ליצור תמונת מצב של הנתונים, מומלץ להשתמש במקום זאת בתמונות מצב של טבלאות. תמונות מצב של טבלאות הן חלופה זולה ומהירה יותר להעתקה של טבלאות מלאות.
- כדי לבקש הגדלה של המכסות, אפשר לפנות לתמיכה או לצוות המכירות. יכול להיות שיחלפו כמה ימים עד שנבדוק את הבקשה ונטפל בה. מומלץ לציין בבקשה את העדיפות, תרחיש השימוש ומזהה הפרויקט.
מחיקת טבלאות
אפשר למחוק טבלה בדרכים הבאות:
- באמצעות מסוף Google Cloud .
- באמצעות הצהרה של שפת הגדרת נתונים (DDL)
DROP TABLE. - שימוש בפקודה
bq rmבכלי שורת הפקודה של BigQuery. - קריאה לשיטה
tables.deleteשל API. - שימוש בספריות הלקוח.
כדי למחוק את כל הטבלאות בקבוצת הנתונים, צריך למחוק את קבוצת הנתונים.
כשמוחקים טבלה, נמחקים גם כל הנתונים שבה. כדי למחוק טבלאות באופן אוטומטי אחרי פרק זמן מסוים, מגדירים את תאריך התפוגה של הטבלה כברירת מחדל עבור מערך הנתונים או מגדירים את תאריך התפוגה כשיוצרים את הטבלה.
מחיקה של טבלה גורמת גם למחיקה של כל ההרשאות שמשויכות לטבלה הזו. כשיוצרים מחדש טבלה שנמחקה, צריך גם להגדיר מחדש באופן ידני את כל הרשאות הגישה ששויכו אליה בעבר.
התפקידים הנדרשים
כדי לקבל את ההרשאות שנדרשות למחיקת טבלה, צריך לבקש מהאדמין להקצות לכם ב-IAM את התפקיד עורך נתונים (roles/bigquery.dataEditor) במערך הנתונים.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקיד המוגדר מראש הזה כולל את ההרשאות שנדרשות למחיקת טבלה. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי למחוק טבלה, נדרשות ההרשאות הבאות:
-
bigquery.tables.delete -
bigquery.tables.get
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
מחיקת טבלה
כדי למחוק טבלה:
המסוף
בחלונית הימנית, לוחצים על כלי הניתוחים:

בחלונית Explorer, מרחיבים את הפרויקט, לוחצים על Datasets ובוחרים מערך נתונים.
לוחצים על סקירה כללית > טבלאות ובוחרים טבלה.
בחלונית הפרטים, לוחצים על מחיקה.
בתיבת הדו-שיח, מקלידים
"delete"ולוחצים על מחיקה כדי לאשר.
SQL
משתמשים במשפט DROP TABLE. בדוגמה הבאה נמחקת טבלה בשם mytable:
במסוף Google Cloud , עוברים לדף BigQuery.
מזינים את ההצהרה הבאה בעורך השאילתות:
DROP TABLE mydataset.mytable;
לוחצים על הפעלה.
מידע נוסף על הרצת שאילתות זמין במאמר הרצת שאילתה אינטראקטיבית.
BQ
-
במסוף Google Cloud , מפעילים את Cloud Shell.
בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
משתמשים בפקודה
bq rmעם הדגל--table(או במקש הקיצור-t) כדי למחוק טבלה. כשמשתמשים בכלי שורת הפקודה של BigQuery כדי להסיר טבלה, צריך לאשר את הפעולה. אפשר להשתמש בדגל--force(או במקשי הקיצור-f) כדי לדלג על האישור.אם הטבלה נמצאת במערך נתונים בפרויקט שאינו פרויקט ברירת המחדל, צריך להוסיף את מזהה הפרויקט לשם מערך הנתונים בפורמט הבא:
project_id:dataset.bq rm \ -f \ -t \ project_id:dataset.table
מחליפים את מה שכתוב בשדות הבאים:
-
project_id: מזהה הפרויקט -
dataset: השם של מערך הנתונים שמכיל את הטבלה -
table: שם הטבלה שרוצים למחוק
דוגמאות:
כדי למחוק את הטבלה
mytableמקבוצת הנתוניםmydataset, מזינים את הפקודה הבאה. מערך הנתוניםmydatasetנמצא בפרויקט ברירת המחדל שלכם.bq rm -t mydataset.mytable
כדי למחוק את הטבלה
mytableמקבוצת הנתוניםmydataset, מזינים את הפקודה הבאה. מערך הנתוניםmydatasetנמצא בפרויקטmyotherprojectולא בפרויקט ברירת המחדל.bq rm -t myotherproject:mydataset.mytable
כדי למחוק את הטבלה
mytableמקבוצת הנתוניםmydataset, מזינים את הפקודה הבאה. מערך הנתוניםmydatasetנמצא בפרויקט ברירת המחדל שלכם. הפקודה משתמשת בקיצור הדרך-fכדי לעקוף את האישור.bq rm -f -t mydataset.mytable
-
API
מפעילים את ה-method tables.delete של API ומציינים את הטבלה למחיקה באמצעות הפרמטר tableId.
C#
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי C#הוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery C# API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
המשך
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Goהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Go API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Javaהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Java API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Node.js
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Node.jsהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Node.js API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
PHP
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי PHPהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery PHP API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Python
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Pythonהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Python API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Ruby
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Rubyהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Ruby API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
פתרון בעיות שקשורות לטבלאות שנמחקו
יש שלוש סיבות עיקריות למחיקת טבלה: מחיקה ידנית של הטבלה, תפוגה ומחיקה של מערך הנתונים.
מחיקת טבלה
בודקים ביומני הביקורת של Cloud אם יש אירוע google.cloud.bigquery.v2.TableService.DeleteTable.
כדי לראות טבלאות שנמחקו, בוחרים באחת מהאפשרויות הבאות:
המסוף
נכנסים לדף Logs Explorer במסוף Google Cloud .
בקטע Filter, משתמשים במסנן Cloud Logging הבא ולוחצים על Run Query.
resource.type="bigquery_dataset" protoPayload.methodName="google.cloud.bigquery.v2.TableService.DeleteTable" protoPayload.resourceName="projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_ID"
BQ
-
במסוף Google Cloud , מפעילים את Cloud Shell.
בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
משתמשים בפקודה
gcloud logging readעם המסננים הבאים:gcloud logging read ' resource.type="bigquery_dataset" protoPayload.methodName="google.cloud.bigquery.v2.TableService.DeleteTable" protoPayload.resourceName=~"projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_ID" '
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט -
DATASET_ID: השם של מערך הנתונים שמכיל את הטבלה -
TABLE_ID: שם הטבלה שנמחקה
-
פקיעת תוקף של טבלה
אפשר ליצור טבלאות עם זמן תפוגה. אחרי פרק הזמן הזה, BigQuery מוחק את הטבלה באופן אוטומטי. כדי לראות טבלאות שנמחקו, בוחרים באחת מהאפשרויות הבאות:
המסוף
נכנסים לדף Logs Explorer במסוף Google Cloud .
בקטע Filter, משתמשים במסנן Cloud Logging הבא ולוחצים על Run Query.
protoPayload.methodName="InternalTableExpired" protoPayload.resourceName="projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_ID"
BQ
-
במסוף Google Cloud , מפעילים את Cloud Shell.
בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
משתמשים בפקודה
gcloud logging readעם המסננים הבאים:gcloud logging read ' protoPayload.methodName="InternalTableExpired" protoPayload.resourceName=~"projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_ID" 'מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט -
DATASET_ID: השם של מערך הנתונים שמכיל את הטבלה -
TABLE_ID: שם הטבלה שנמחקה
-
אפשר להריץ שאילתה בתצוגה INFORMATION_SCHEMA.TABLE_OPTIONS כדי לבדוק את העמודה expiration_timestamp בטבלאות קיימות.
מחיקה של מערך נתונים
אם מערך הנתונים שמכיל את הטבלה נמחק, גם הטבלה תימחק. כדי לראות טבלאות שנמחקו, בוחרים באחת מהאפשרויות הבאות:
המסוף
נכנסים לדף Logs Explorer במסוף Google Cloud .
בקטע Filter, משתמשים במסנן Cloud Logging הבא ולוחצים על Run Query.
resource.type="bigquery_dataset" protoPayload.methodName="google.cloud.bigquery.v2.DatasetService.DeleteDataset" protoPayload.resourceName="projects/PROJECT_ID/datasets/DATASET_ID"
BQ
-
במסוף Google Cloud , מפעילים את Cloud Shell.
בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
משתמשים בפקודה
gcloud logging readעם המסננים הבאים:gcloud logging read ' resource.type="bigquery_dataset" protoPayload.methodName="google.cloud.bigquery.v2.DatasetService.DeleteDataset" protoPayload.resourceName=~"projects/PROJECT_ID/datasets/DATASET_ID" '
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט -
DATASET_ID: השם של מערך הנתונים שמכיל את הטבלה
-
שחזור טבלאות שנמחקו
במאמר שחזור טבלאות שנמחקו מוסבר איך לשחזר טבלאות שנמחקו.
אבטחת טבלאות
כדי לשלוט בגישה לטבלאות ב-BigQuery, אפשר לעיין במאמר בנושא שליטה בגישה למשאבים באמצעות IAM.
המאמרים הבאים
- מידע נוסף על יצירה ושימוש בטבלאות זמין במאמר יצירה ושימוש בטבלאות.
- מידע נוסף על טיפול בנתונים זמין במאמר עבודה עם נתוני טבלה.
- מידע נוסף על הגדרת סכימות של טבלאות זמין במאמר בנושא הגדרת סכימה.
- מידע נוסף על שינוי סכימות של טבלאות זמין במאמר בנושא שינוי סכימות של טבלאות.
- מידע נוסף על מערכי נתונים זמין במאמר מבוא למערכי נתונים.
- מידע נוסף על תצוגות זמין במאמר מבוא לתצוגות.