יצירת שיבוטים של טבלאות
במאמר הזה מוסבר איך להעתיק טבלה לשיבוט טבלה באמצעות הצהרת SQL של CREATE TABLE CLONE, פקודה של bq cp או קריאה ל-API של jobs.insert. המסמך הזה מיועד למשתמשים שמכירים שיבוטים של טבלאות.
הרשאות ותפקידים
בקטע הזה מתוארות ההרשאות של ניהול זהויות והרשאות גישה (IAM) שנדרשות כדי ליצור שיבוט של טבלה, והתפקידים המוגדרים מראש ב-IAM שמעניקים את ההרשאות האלה.
הרשאות
כדי ליצור שיבוט של טבלה, צריך את ההרשאות הבאות:
| הרשאה | משאב |
|---|---|
כל התנאים הבאים:bigquery.tables.getbigquery.tables.getData |
הטבלה שרוצים לשכפל. |
bigquery.tables.createbigquery.tables.updateData
|
מערך הנתונים שמכיל את שיבוט הטבלה. |
תפקידים
התפקידים המוגדרים מראש ב-BigQuery שכוללים את ההרשאות הנדרשות הם:
| תפקיד | משאב |
|---|---|
אחת מהאפשרויות הבאות:bigquery.dataViewerbigquery.dataEditorbigquery.dataOwnerbigquery.admin
|
הטבלה שרוצים לשכפל. |
אחת מהאפשרויות הבאות:bigquery.dataEditorbigquery.dataOwnerbigquery.admin
|
מערך הנתונים שמכיל את שיבוט הטבלה החדש. |
יצירת שיבוט של טבלה
משתמשים ב-GoogleSQL, בכלי שורת הפקודה של BigQuery או ב-BigQuery API כדי ליצור שיבוט של טבלה.
SQL
כדי לשכפל טבלה, משתמשים בפקודה CREATE TABLE CLONE.
במסוף Google Cloud , עוברים לדף BigQuery.
מזינים את ההצהרה הבאה בעורך השאילתות:
CREATE TABLE myproject.myDataset_backup.myTableClone CLONE myproject.myDataset.myTable;
לוחצים על הפעלה.
מידע נוסף על הרצת שאילתות זמין במאמר הרצת שאילתה אינטראקטיבית.
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECTהוא מזהה הפרויקט של פרויקט היעד. הפרויקט הזה צריך להיות באותו ארגון שבו נמצא הפרויקט שמכיל את הטבלה שאתם משכפלים. -
DATASETהוא השם של קבוצת נתוני היעד. מערך הנתונים הזה צריך להיות באותו אזור כמו מערך הנתונים שמכיל את הטבלה שאתם משכפלים. -
CLONE_NAMEהוא השם של שיבוט הטבלה שאתם יוצרים.
BQ
משתמשים בפקודה bq cp עם הדגל --clone:
bq cp --clone --no_clobber project1:myDataset.myTable PROJECT:DATASET.CLONE_NAME
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECTהוא מזהה הפרויקט של פרויקט היעד. הפרויקט הזה צריך להיות באותו ארגון שבו נמצא הפרויקט שמכיל את הטבלה שאתם משכפלים. -
DATASETהוא השם של קבוצת נתוני היעד. מערך הנתונים הזה צריך להיות באותו אזור כמו מערך הנתונים שמכיל את הטבלה שאתם משכפלים. אם מערך הנתונים לא נמצא באותו אזור כמו מערך הנתונים שמכיל את הטבלה שאתם משכפלים, מתבצעת העתקה של הטבלה המלאה. -
CLONE_NAMEהוא השם של שיבוט הטבלה שאתם יוצרים.
חובה להשתמש בדגל --no_clobber.
אם יוצרים שיבוט באותו פרויקט של טבלת הבסיס, אפשר לדלג על הגדרת פרויקט, כמו בדוגמה הבאה:
bq cp --clone --no_clobber myDataset.myTable DATASET.CLONE_NAME
API
מבצעים קריאה ל-jobs.insert עם השדה operationType שמוגדר ל-CLONE:
| פרמטר | ערך |
|---|---|
projectId |
מזהה הפרויקט שבו מופעלת העבודה. |
| גוף הבקשה | { "configuration": { "copy": { "sourceTables": [ { "projectId": "myProject", "datasetId": "myDataset", "tableId": "myTable" } ], "destinationTable": { "projectId": "PROJECT", "datasetId": "DATASET", "tableId": "CLONE_NAME" }, "operationType": "CLONE", "writeDisposition": "WRITE_EMPTY", } } } |
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECTהוא מזהה הפרויקט של פרויקט היעד. הפרויקט הזה צריך להיות באותו ארגון שבו נמצא הפרויקט שמכיל את הטבלה שאתם משכפלים. -
DATASETהוא השם של קבוצת נתוני היעד. מערך הנתונים הזה צריך להיות באותו אזור כמו מערך הנתונים שמכיל את הטבלה שאתם משכפלים. אם מערך הנתונים לא נמצא באותו אזור כמו מערך הנתונים שמכיל את הטבלה שאתם משכפלים, הטבלה המלאה מועתקת. -
CLONE_NAMEהוא השם של שיבוט הטבלה שאתם יוצרים.
בקרת גישה
כשיוצרים שיבוט של טבלה, הגישה לשיבוט מוגדרת באופן הבא:
- כללי מדיניות לגישה ברמת השורה מועתקים מטבלת הבסיס לשיבוט הטבלה.
- מדיניות גישה ברמת העמודה מועתקת מטבלת הבסיס לשיבוט הטבלה.
הגישה ברמת הטבלה נקבעת באופן הבא:
המאמרים הבאים
- אחרי שיוצרים שיבוט של טבלה, אפשר להשתמש בו כמו בטבלאות רגילות. מידע נוסף זמין במאמר בנושא ניהול טבלאות.