יצירת שיבוטים של טבלאות
במאמר הזה מוסבר איך להעתיק טבלה לשיבוט טבלה באמצעות הצהרת 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.
במסוף Cloud de Confiance , עוברים לדף 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הוא שם השיבוט של הטבלה שאתם יוצרים.
בקרת גישה
כשיוצרים שיבוט של טבלה, הגישה לשיבוט מוגדרת באופן הבא:
- מדיניות גישה ברמת השורה מועתקת מטבלת הבסיס לשיבוט הטבלה.
- מדיניות גישה ברמת העמודה מועתקת מטבלת הבסיס לשיבוט הטבלה.
הגישה ברמת הטבלה נקבעת באופן הבא:
המאמרים הבאים
- אחרי שיוצרים שיבוט של טבלה, אפשר להשתמש בו כמו בטבלאות רגילות. מידע נוסף מופיע במאמר בנושא ניהול טבלאות.