הצגת מטא-נתונים של תמונת מצב של טבלה

במאמר הזה מוסבר איך לראות את המטא-נתונים של תמונת מצב של טבלה ב-BigQuery ב Google Cloud מסוף, באמצעות שאילתה של התצוגה TABLE_SNAPSHOTS של הטבלה INFORMATION_SCHEMA, באמצעות הפקודה bq show או באמצעות קריאה ל-API‏ tables.get. המאמר מיועד למשתמשים שמכירים את הטבלאות ואת תמונות המצב של הטבלאות ב-BigQuery.

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

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

הרשאות

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

הרשאה משאב
bigquery.tables.get ‫Snapshot של הטבלה

תפקידים

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

תפקיד משאב
אחת מהאפשרויות הבאות:

bigquery.metadataViewer
bigquery.dataViewer
bigquery.dataEditor
bigquery.dataOwner
bigquery.admin
‫Snapshot של הטבלה

אחזור מטא-נתונים של תמונת מצב של טבלה

המטא-נתונים של תמונת מצב של טבלה דומים למטא-נתונים של טבלה רגילה, עם ההבדלים הבאים:

  • שדה baseTableReference נוסף מזהה את טבלת הבסיס שממנה נוצרה התמונה.
  • הערך בשדה type הוא SNAPSHOT.

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

המסוף

  1. במסוף Google Cloud , עוברים לדף BigQuery.

    כניסה ל-BigQuery

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

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

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

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

  4. לוחצים על סקירה כללית > טבלאות ואז על השם של תמונת מצב של הטבלה.

  5. בחלונית התמונה שמופיעה, אפשר:

    • לוחצים על הכרטיסייה סכימה כדי לראות את הסכימה של תמונת המצב של הטבלה ואת תגי המדיניות.

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

SQL

כדי לראות את המטא-נתונים של תמונת מצב של טבלה, מריצים שאילתה בתצוגה INFORMATION_SCHEMA.TABLE_SNAPSHOTS:

  1. במסוף Google Cloud , עוברים לדף BigQuery.

    כניסה ל-BigQuery

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

    SELECT
      *
    FROM
      PROJECT_ID.DATASET_NAME.INFORMATION_SCHEMA.TABLE_SNAPSHOTS
    WHERE
      table_name = 'SNAPSHOT_NAME';

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

    • PROJECT_ID: מזהה הפרויקט שמכיל את התמונה.
    • DATASET_NAME: השם של מערך הנתונים שמכיל את ה-snapshot.
    • SNAPSHOT_NAME: השם של קובץ ה-snapshot.

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

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

BQ

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

כניסה ל-Cloud Shell

bq show \
--format=prettyjson \
PROJECT_ID:DATASET_NAME.SNAPSHOT_NAME

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

  • PROJECT_ID: מזהה הפרויקט שמכיל את התמונה.
  • DATASET_NAME: השם של מערך הנתונים שמכיל את ה-snapshot.
  • SNAPSHOT_NAME: השם של קובץ ה-snapshot.

הפלט אמור להיראות כך:

{
  "creationTime": "1593194331936",
   ...
  "snapshotDefinition": {
    "baseTableReference": {
      "datasetId": "myDataset",
      "projectId": "myProject",
      "tableId": "mytable"
    },
    "snapshotTime": "2020-06-26T17:58:50.815Z"
  },
  "tableReference": {
    "datasetId": "otherDataset",
    "projectId": "myProject",
    "tableId": "mySnapshot"
  },
  "type": "SNAPSHOT"
}

API

מבצעים קריאה ל-method‏ tables.get עם הפרמטרים הבאים:

פרמטר ערך
projectId מזהה הפרויקט שמכיל את התמונה.
datasetId השם של מערך הנתונים שמכיל את תמונת המצב.
tableId שם התמונה.

גוף התשובה אמור להיראות כך:

{
  "kind": "bigquery#table",
  "etag": "...",
  "id": "myProject:myDataset.mySnapshot",
  "selfLink": "https://content-bigquery.googleapis.com/bigquery/v2/projects/myProject/datasets/myDataset/tables/mySnapshot",
  "tableReference": {
    "projectId": "myProject",
    "datasetId": "myDataset",
    "tableId": "mySnapshot"
  },
  "description": "...",
  "schema": {
    "fields": [
      ...
    ]
  },
  "numBytes": "637931",
  "numLongTermBytes": "0",
  "numRows": "33266",
  "creationTime": "1593194331936",
  "lastModifiedTime": "1593194331936",
  "type": "SNAPSHOT",
  "location": "US",
  "snapshotDefinition": {
    "baseTableReference": {
      "projectId": "myProject",
      "datasetId": "otherDataset",
      "tableId": "myTable"
    },
    "snapshotTime": "2020-06-26T17:58:50.815Z"
  }
}

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