שחזור תמונות מצב של טבלאות

במאמר הזה מוסבר איך ליצור טבלה שניתן לכתוב בה מתמונת מצב של טבלה, באמצעות מסוף Cloud de Confiance , שאילתת CREATE TABLE CLONE, פקודת bq cp או ה-API של jobs.insert. הוא מיועד למשתמשים שמכירים את תמונות המצב של הטבלאות.

הרשאות ותפקידים

בקטע הזה מתוארות ההרשאות של ניהול זהויות והרשאות גישה (IAM) שנדרשות כדי ליצור טבלה שניתן לכתוב בה מתמונת מצב של טבלה, והתפקידים המוגדרים מראש ב-IAM שמעניקים את ההרשאות האלה.

הרשאות

כדי ליצור טבלה שניתן לכתוב בה מתמונת מצב של טבלה, נדרשות ההרשאות הבאות:

הרשאה משאב
כל הפרטים הבאים:

bigquery.tables.get
bigquery.tables.getData
bigquery.tables.restoreSnapshot
תמונת המצב של הטבלה שרוצים להעתיק לטבלה שניתן לכתוב בה.
bigquery.tables.create קבוצת הנתונים שמכילה את טבלת היעדים.

תפקידים

אלה התפקידים המוגדרים מראש ב-BigQuery שכוללים את ההרשאות הנדרשות:

תפקיד משאב
כל אחד מהבאים:

bigquery.dataEditor
bigquery.dataOwner
bigquery.admin
תמונת המצב של הטבלה שרוצים להעתיק לטבלה שניתן לכתוב בה.
כל אחד מהבאים:

bigquery.dataEditor
bigquery.dataOwner
bigquery.admin
קבוצת הנתונים שמכילה את טבלת היעדים.

שחזור תמונת מצב של טבלה

כדי ליצור טבלה שניתן לכתוב בה מתוך קובץ snapshot, מציינים את קובץ ה-snapshot של הטבלה שרוצים להעתיק ואת טבלת היעד. טבלת היעד יכולה להיות טבלה חדשה, או שאפשר להחליף טבלה קיימת בתמונת המצב של הטבלה.

שחזור לטבלה חדשה

כדי לשחזר קובץ snapshot של טבלה לטבלה חדשה, אפשר להשתמש באחת מהאפשרויות הבאות:

המסוף

  1. נכנסים לדף BigQuery במסוף Cloud de Confiance .

    כניסה ל-BigQuery

  2. בחלונית השמאלית, לוחצים על Explorer:

    כפתור מודגש לחלונית Explorer.

    אם החלונית הימנית לא מוצגת, לוחצים על הרחבת החלונית הימנית כדי לפתוח אותה.

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

  4. לוחצים על Overview > Tables, ואז על השם של קובץ ה-snapshot של הטבלה.

  5. בחלונית של תמונת המצב של הטבלה, לוחצים על update Restore.

    שחזור טבלה מתמונת מצב

  6. בחלונית Restore snapshot שמופיעה, מזינים את פרטי הפרויקט, מערך הנתונים והטבלה של הטבלה החדשה.

  7. לוחצים על Save.

SQL

משתמשים בהצהרת ה-DDL‏ CREATE TABLE CLONE:

  1. נכנסים לדף BigQuery במסוף Cloud de Confiance .

    כניסה ל-BigQuery

  2. בעורך השאילתות, מזינים את ההצהרה הבאה:

    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 שממנו משחזרים.

  3. לוחצים על הפעלה.

מידע נוסף על הרצת שאילתות זמין במאמר הרצת שאילתה אינטראקטיבית.

BQ

מזינים את הפקודה הבאה ב-Cloud Shell:

כניסה ל-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: שם הטבלה החדשה.

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

החלפת טבלה קיימת

כדי להחליף טבלה קיימת בתמונת מצב של טבלה, אפשר להשתמש באחת מהאפשרויות הבאות:

המסוף

  1. נכנסים לדף BigQuery במסוף Cloud de Confiance .

    כניסה ל-BigQuery

  2. בחלונית השמאלית, לוחצים על Explorer:

    כפתור מודגש לחלונית Explorer.

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

  4. לוחצים על Overview > Tables, ואז על השם של קובץ ה-snapshot של הטבלה.

  5. בחלונית של תמונת המצב של הטבלה שמופיעה, לוחצים על Restore.

    שחזור טבלה מתמונת מצב

  6. בחלונית Restore snapshot שמופיעה, מזינים את פרטי ה-Project, ה-Dataset וה-Table של הטבלה הקיימת.

  7. בוחרים באפשרות Overwrite table if it exists.

  8. לוחצים על Save.

SQL

משתמשים בהצהרת ה-DDL‏ CREATE TABLE CLONE:

  1. נכנסים לדף BigQuery במסוף Cloud de Confiance .

    כניסה ל-BigQuery

  2. בעורך השאילתות, מזינים את ההצהרה הבאה:

    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 שממנו משחזרים.

  3. לוחצים על הפעלה.

מידע נוסף על הרצת שאילתות זמין במאמר הרצת שאילתה אינטראקטיבית.

BQ

מזינים את הפקודה הבאה ב-Cloud Shell:

כניסה ל-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: שם הטבלה שאתם מחליפים.

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

המאמרים הבאים