שחזור תמונות מצב של טבלאות
במאמר הזה מוסבר איך ליצור טבלה שניתן לכתוב בה מתמונת מצב של טבלה, באמצעות מסוף Cloud de Confiance , שאילתת CREATE TABLE CLONE, פקודת bq cp או ה-API של jobs.insert.
הוא מיועד למשתמשים שמכירים את תמונות המצב של הטבלאות.
הרשאות ותפקידים
בקטע הזה מתוארות ההרשאות של ניהול זהויות והרשאות גישה (IAM) שנדרשות כדי ליצור טבלה שניתן לכתוב בה מתמונת מצב של טבלה, והתפקידים המוגדרים מראש ב-IAM שמעניקים את ההרשאות האלה.
הרשאות
כדי ליצור טבלה שניתן לכתוב בה מתמונת מצב של טבלה, נדרשות ההרשאות הבאות:
| הרשאה | משאב |
|---|---|
כל הפרטים הבאים:bigquery.tables.getbigquery.tables.getDatabigquery.tables.restoreSnapshot |
תמונת המצב של הטבלה שרוצים להעתיק לטבלה שניתן לכתוב בה. |
bigquery.tables.create
|
קבוצת הנתונים שמכילה את טבלת היעדים. |
תפקידים
אלה התפקידים המוגדרים מראש ב-BigQuery שכוללים את ההרשאות הנדרשות:
| תפקיד | משאב |
|---|---|
כל אחד מהבאים:bigquery.dataEditorbigquery.dataOwnerbigquery.admin
|
תמונת המצב של הטבלה שרוצים להעתיק לטבלה שניתן לכתוב בה. |
כל אחד מהבאים:bigquery.dataEditorbigquery.dataOwnerbigquery.admin
|
קבוצת הנתונים שמכילה את טבלת היעדים. |
שחזור תמונת מצב של טבלה
כדי ליצור טבלה שניתן לכתוב בה מתוך קובץ snapshot, מציינים את קובץ ה-snapshot של הטבלה שרוצים להעתיק ואת טבלת היעד. טבלת היעד יכולה להיות טבלה חדשה, או שאפשר להחליף טבלה קיימת בתמונת המצב של הטבלה.
שחזור לטבלה חדשה
כדי לשחזר קובץ snapshot של טבלה לטבלה חדשה, אפשר להשתמש באחת מהאפשרויות הבאות:
המסוף
נכנסים לדף BigQuery במסוף Cloud de Confiance .
בחלונית השמאלית, לוחצים על Explorer:

אם החלונית הימנית לא מוצגת, לוחצים על הרחבת החלונית הימנית כדי לפתוח אותה.
בחלונית Explorer, מרחיבים את הפרויקט, לוחצים על Datasets ואז לוחצים על מערך הנתונים שמכיל את קובץ ה-snapshot של הטבלה שרוצים לשחזר ממנו.
לוחצים על Overview > Tables, ואז על השם של קובץ ה-snapshot של הטבלה.
בחלונית של תמונת המצב של הטבלה, לוחצים על update Restore.

בחלונית Restore snapshot שמופיעה, מזינים את פרטי הפרויקט, מערך הנתונים והטבלה של הטבלה החדשה.
לוחצים על Save.
SQL
משתמשים בהצהרת ה-DDL CREATE TABLE CLONE:
נכנסים לדף BigQuery במסוף Cloud de Confiance .
בעורך השאילתות, מזינים את ההצהרה הבאה:
CREATE TABLE TABLE_PROJECT_ID.TABLE_DATASET_NAME.NEW_TABLE_NAME CLONE SNAPSHOT_PROJECT_ID.SNAPSHOT_DATASET_NAME.SNAPSHOT_NAME;
מחליפים את מה שכתוב בשדות הבאים:
-
TABLE_PROJECT_ID: מזהה הפרויקט שבו רוצים ליצור את הטבלה החדשה. -
TABLE_DATASET_NAME: השם של מערך הנתונים שבו רוצים ליצור את הטבלה החדשה. -
NEW_TABLE_NAME: שם הטבלה החדשה. -
SNAPSHOT_PROJECT_ID: מזהה הפרויקט שמכיל את קובץ ה-snapshot שמשחזרים ממנו. -
SNAPSHOT_DATASET_NAME: השם של קבוצת הנתונים שמכילה את קובץ ה-snapshot שממנו משחזרים. -
SNAPSHOT_NAME: השם של קובץ ה-snapshot שממנו משחזרים.
-
לוחצים על הפעלה.
מידע נוסף על הרצת שאילתות זמין במאמר הרצת שאילתה אינטראקטיבית.
BQ
מזינים את הפקודה הבאה ב-Cloud Shell:
bq cp \ --restore \ --no_clobber \ SNAPSHOT_PROJECT_ID:SNAPSHOT_DATASET_NAME.SNAPSHOT_NAME \ TABLE_PROJECT_ID:TABLE_DATASET_NAME.NEW_TABLE_NAME
מחליפים את מה שכתוב בשדות הבאים:
-
SNAPSHOT_PROJECT_ID: מזהה הפרויקט שמכיל את קובץ ה-snapshot שמשחזרים ממנו. -
SNAPSHOT_DATASET_NAME: השם של קבוצת הנתונים שמכילה את קובץ ה-snapshot שממנו משחזרים. -
SNAPSHOT_NAME: השם של קובץ ה-snapshot שממנו משחזרים. -
TABLE_PROJECT_ID: מזהה הפרויקט שבו רוצים ליצור את הטבלה החדשה. -
TABLE_DATASET_NAME: השם של מערך הנתונים שבו רוצים ליצור את הטבלה החדשה. -
NEW_TABLE_NAME: שם הטבלה החדשה.
הדגל --no_clobber מורה לפקודה להיכשל אם טבלת היעד כבר קיימת.
API
מבצעים קריאה ל-method jobs.insert עם הפרמטרים הבאים:
| פרמטר | ערך |
|---|---|
projectId |
מזהה הפרויקט לחיוב על הפעולה הזו. |
| גוף הבקשה | { "configuration": { "copy": { "sourceTables": [ { "projectId": "SNAPSHOT_PROJECT_ID", "datasetId": "SNAPSHOT_DATASET_NAME", "tableId": "SNAPSHOT_NAME" } ], "destinationTable": { "projectId": "TABLE_PROJECT_ID", "datasetId": "TABLE_DATASET_NAME", "tableId": "NEW_TABLE_NAME" }, "operationType": "RESTORE", "writeDisposition": "WRITE_EMPTY" } } } |
מחליפים את מה שכתוב בשדות הבאים:
-
SNAPSHOT_PROJECT_ID: מזהה הפרויקט שמכיל את קובץ ה-snapshot שמשחזרים ממנו. -
SNAPSHOT_DATASET_NAME: השם של קבוצת הנתונים שמכילה את קובץ ה-snapshot שממנו משחזרים. -
SNAPSHOT_NAME: השם של קובץ ה-snapshot שממנו משחזרים. -
TABLE_PROJECT_ID: מזהה הפרויקט שבו רוצים ליצור את הטבלה החדשה. -
TABLE_DATASET_NAME: השם של מערך הנתונים שבו רוצים ליצור את הטבלה החדשה. -
NEW_TABLE_NAME: שם הטבלה החדשה.
אם לא מציינים תאריך תפוגה, טבלת היעד תפוג אחרי זמן התפוגה שמוגדר כברירת מחדל לטבלאות במערך הנתונים שמכיל את טבלת היעד.
החלפת טבלה קיימת
כדי להחליף טבלה קיימת בתמונת מצב של טבלה, אפשר להשתמש באחת מהאפשרויות הבאות:
המסוף
נכנסים לדף BigQuery במסוף Cloud de Confiance .
בחלונית השמאלית, לוחצים על Explorer:

בחלונית Explorer, מרחיבים את הפרויקט, לוחצים על Datasets ואז לוחצים על מערך הנתונים שמכיל את קובץ ה-snapshot של הטבלה שרוצים לשחזר ממנו.
לוחצים על Overview > Tables, ואז על השם של קובץ ה-snapshot של הטבלה.
בחלונית של תמונת המצב של הטבלה שמופיעה, לוחצים על Restore.

בחלונית Restore snapshot שמופיעה, מזינים את פרטי ה-Project, ה-Dataset וה-Table של הטבלה הקיימת.
בוחרים באפשרות Overwrite table if it exists.
לוחצים על Save.
SQL
משתמשים בהצהרת ה-DDL CREATE TABLE CLONE:
נכנסים לדף BigQuery במסוף Cloud de Confiance .
בעורך השאילתות, מזינים את ההצהרה הבאה:
CREATE OR REPLACE TABLE TABLE_PROJECT_ID.TABLE_DATASET_NAME.TABLE_NAME CLONE SNAPSHOT_PROJECT_ID.SNAPSHOT_DATASET_NAME.SNAPSHOT_NAME;
מחליפים את מה שכתוב בשדות הבאים:
-
TABLE_PROJECT_ID: מזהה הפרויקט שבו רוצים ליצור את הטבלה החדשה. -
TABLE_DATASET_NAME: שם מערך הנתונים שמכיל את הטבלה שאתם מחליפים. -
TABLE_NAME: שם הטבלה שאתם מחליפים. -
SNAPSHOT_PROJECT_ID: מזהה הפרויקט שמכיל את קובץ ה-snapshot שמשחזרים ממנו. -
SNAPSHOT_DATASET_NAME: השם של קבוצת הנתונים שמכילה את קובץ ה-snapshot שממנו משחזרים. -
SNAPSHOT_NAME: השם של קובץ ה-snapshot שממנו משחזרים.
-
לוחצים על הפעלה.
מידע נוסף על הרצת שאילתות זמין במאמר הרצת שאילתה אינטראקטיבית.
BQ
מזינים את הפקודה הבאה ב-Cloud Shell:
bq cp \ --restore \ --force \ SNAPSHOT_PROJECT_ID:SNAPSHOT_DATASET_NAME.SNAPSHOT_NAME \ TABLE_PROJECT_ID:TABLE_DATASET_NAME.TABLE_NAME
מחליפים את מה שכתוב בשדות הבאים:
-
SNAPSHOT_PROJECT_ID: מזהה הפרויקט שמכיל את קובץ ה-snapshot שמשחזרים ממנו. -
SNAPSHOT_DATASET_NAME: השם של קבוצת הנתונים שמכילה את קובץ ה-snapshot שממנו משחזרים. -
SNAPSHOT_NAME: השם של קובץ ה-snapshot שממנו משחזרים. -
TABLE_PROJECT_ID: מזהה הפרויקט שבו רוצים ליצור את הטבלה החדשה. -
TABLE_DATASET_NAME: שם מערך הנתונים שמכיל את הטבלה שאתם מחליפים. -
TABLE_NAME: שם הטבלה שאתם מחליפים.
API
מבצעים קריאה ל-method jobs.insert עם הפרמטרים הבאים:
| פרמטר | ערך |
|---|---|
projectId |
מזהה הפרויקט לחיוב על הפעולה הזו. |
| גוף הבקשה | { "configuration": { "copy": { "sourceTables": [ { "projectId": "SNAPSHOT_PROJECT_ID", "datasetId": "SNAPSHOT_DATASET_NAME", "tableId": "SNAPSHOT_NAME" } ], "destinationTable": { "projectId": "TABLE_PROJECT_ID", "datasetId": "TABLE_DATASET_NAME", "tableId": "TABLE_NAME" }, "operationType": "RESTORE", "writeDisposition": "WRITE_TRUNCATE" } } } |
מחליפים את מה שכתוב בשדות הבאים:
-
SNAPSHOT_PROJECT_ID: מזהה הפרויקט שמכיל את קובץ ה-snapshot שמשחזרים ממנו. -
SNAPSHOT_DATASET_NAME: השם של קבוצת הנתונים שמכילה את קובץ ה-snapshot שממנו משחזרים. -
SNAPSHOT_NAME: השם של קובץ ה-snapshot שממנו משחזרים. -
TABLE_PROJECT_ID: מזהה הפרויקט שבו רוצים ליצור את הטבלה החדשה. -
TABLE_DATASET_NAME: שם מערך הנתונים שמכיל את הטבלה שאתם מחליפים. -
TABLE_NAME: שם הטבלה שאתם מחליפים.
אם לא מציינים תאריך תפוגה, טבלת היעד תפוג אחרי זמן התפוגה שמוגדר כברירת מחדל לטבלאות במערך הנתונים שמכיל את טבלת היעד.