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

אם החלונית הימנית לא מוצגת, לוחצים על הרחבת החלונית הימנית כדי לפתוח אותה.
בחלונית Explorer מרחיבים את הפרויקט, לוחצים על Datasets ואז לוחצים על מערך הנתונים שמכיל את תמונת המצב של הטבלה שרוצים לשחזר.
לוחצים על סקירה כללית > טבלאות ואז על השם של תמונת מצב של הטבלה.
בחלונית של תמונת מצב של הטבלה שמופיעה, לוחצים על עדכון שחזור.

בחלונית שחזור תמונת מצב שמופיעה, מזינים את פרטי הפרויקט, מערך הנתונים והטבלה של הטבלה החדשה.
לוחצים על Save.
SQL
משתמשים בהצהרת ה-DDL CREATE TABLE CLONE:
במסוף Google Cloud , עוברים לדף BigQuery.
מזינים את ההצהרה הבאה בעורך השאילתות:
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_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_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_DATASET_NAME: השם של מערך הנתונים שמכיל את קובץ ה-snapshot שממנו אתם משחזרים. -
SNAPSHOT_NAME: השם של קובץ ה-snapshot שממנו אתם משחזרים. -
TABLE_PROJECT_ID: מזהה הפרויקט שבו רוצים ליצור את הטבלה החדשה. -
TABLE_DATASET_NAME: השם של מערך הנתונים שבו רוצים ליצור את הטבלה החדשה. -
NEW_TABLE_NAME: השם של הטבלה החדשה.
אם לא מציינים תאריך תפוגה, תוקף טבלת היעד יפוג אחרי תאריך התפוגה שמוגדר כברירת מחדל למערך הנתונים שמכיל את טבלת היעד.
החלפת טבלה קיימת
אפשר להחליף טבלה קיימת בתמונת מצב של טבלה באמצעות אחת מהאפשרויות הבאות:
המסוף
במסוף Google Cloud , עוברים לדף BigQuery.
בחלונית הימנית, לוחצים על כלי הניתוחים:

בחלונית Explorer מרחיבים את הפרויקט, לוחצים על Datasets ואז לוחצים על מערך הנתונים שמכיל את תמונת המצב של הטבלה שרוצים לשחזר.
לוחצים על סקירה כללית > טבלאות ואז על השם של תמונת מצב של הטבלה.
בחלונית של תמונת המצב של הטבלה שמופיעה, לוחצים על שחזור.

בחלונית שחזור תמונת מצב שמופיעה, מזינים את הפרטים של הפרויקט, מערך הנתונים והטבלה של הטבלה הקיימת.
בוחרים באפשרות החלפת הטבלה אם היא קיימת.
לוחצים על Save.
SQL
משתמשים בהצהרת ה-DDL CREATE TABLE CLONE:
במסוף Google Cloud , עוברים לדף BigQuery.
מזינים את ההצהרה הבאה בעורך השאילתות:
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_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_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_DATASET_NAME: השם של מערך הנתונים שמכיל את קובץ ה-snapshot שממנו אתם משחזרים. -
SNAPSHOT_NAME: השם של קובץ ה-snapshot שממנו אתם משחזרים. -
TABLE_PROJECT_ID: מזהה הפרויקט שבו רוצים ליצור את הטבלה החדשה. -
TABLE_DATASET_NAME: השם של מערך הנתונים שמכיל את הטבלה שרוצים להחליף. -
TABLE_NAME: שם הטבלה שרוצים להחליף.
אם לא מציינים תאריך תפוגה, תוקף טבלת היעד יפוג אחרי תאריך התפוגה שמוגדר כברירת מחדל למערך הנתונים שמכיל את טבלת היעד.