Tabellen-Snapshots wiederherstellen.

In diesem Dokument wird beschrieben, wie Sie mit der Google Cloud Console, einer CREATE TABLE CLONE-Abfrage, einem bq cp-Befehl oder der jobs.insert API eine Tabelle mit Schreiboption aus einem Tabellen-Snapshot erstellen. Es richtet sich an Nutzer, die mit Tabellen-Snapshots vertraut sind.

Berechtigungen und Rollen

Dieser Abschnitt beschreibt die IAM-Berechtigungen (Identity and Access Management, Identitäts- und Zugriffsverwaltung), die Sie benötigen, um eine beschreibbare Tabelle aus einem Tabellen-Snapshot erstellen, und die vordefinierten IAM-Rollen, die diese Berechtigungen gewähren.

Berechtigungen

Zum Erstellen einer beschreibbaren Tabelle aus einem Tabellen-Snapshot benötigen Sie folgende Berechtigungen:

Berechtigung Ressource
Alle von Folgenden:

bigquery.tables.get
bigquery.tables.getData
bigquery.tables.restoreSnapshot
Der Tabellen-Snapshot, den Sie in eine beschreibbare Tabelle kopieren möchten.
bigquery.tables.create Das Dataset, das die Zieltabelle enthält.

Rollen

Die folgenden vordefinierten BigQuery-Rollen bieten die erforderlichen Berechtigungen:

Rolle Ressource
Beliebige von Folgendem:

bigquery.dataEditor
bigquery.dataOwner
bigquery.admin
Der Tabellen-Snapshot, den Sie in eine beschreibbare Tabelle kopieren möchten.
Beliebige von Folgendem:

bigquery.dataEditor
bigquery.dataOwner
bigquery.admin
Das Dataset, das die Zieltabelle enthält.

Tabellen-Snapshot wiederherstellen

Geben Sie den zu kopierenden Tabellen-Snapshot und die Zieltabelle an, um aus einem Snapshot eine beschreibbare Tabelle zu erstellen. Die Zieltabelle kann eine neue Tabelle sein oder Sie können eine vorhandene Tabelle mit dem Tabellen-Snapshot überschreiben.

In eine neue Tabelle wiederherstellen

Sie können einen Tabellen-Snapshot mit einer der folgenden Optionen in einer neuen Tabelle wiederherstellen:

Console

  1. Öffnen Sie in der Google Cloud Console die Seite BigQuery.

    BigQuery aufrufen

  2. Maximieren Sie im Bereich Explorer die Projekt- und Dataset-Knoten des Tabellen-Snapshots, aus dem Sie wiederherstellen möchten.

  3. Klicken Sie auf den Namen des Tabellen-Snapshots.

  4. Klicken Sie im angezeigten Bereich des Tabellen-Snapshots auf Wiederherstellen.

    Tabelle aus Snapshot wiederherstellen

  5. Geben Sie im nun angezeigten Bereich Snapshot wiederherstellen die Details für Projekt, Dataset und Tabelle für die neue Tabelle ein.

  6. Klicken Sie auf Speichern.

SQL

Verwenden Sie die DDL-Anweisung CREATE TABLE CLONE:

  1. Öffnen Sie in der Google Cloud Console die Seite BigQuery.

    BigQuery aufrufen

  2. Geben Sie im Abfrageeditor die folgende Anweisung ein:

    CREATE TABLE TABLE_PROJECT_ID.TABLE_DATASET_NAME.NEW_TABLE_NAME
    CLONE SNAPSHOT_PROJECT_ID.SNAPSHOT_DATASET_NAME.SNAPSHOT_NAME;
    

    Dabei gilt:

    • TABLE_PROJECT_ID ist die Projekt-ID des Projekts, in dem die neue Tabelle erstellt werden soll.
    • TABLE_DATASET_NAME ist der Name des Datasets, in dem die neue Tabelle erstellt werden soll.
    • NEW_TABLE_NAME ist der Name der neuen Tabelle.
    • SNAPSHOT_PROJECT_ID ist die Projekt-ID des Projekts, das den Snapshot enthält, aus dem Sie wiederherstellen.
    • SNAPSHOT_DATASET_NAME ist der Name des Datasets, das den Snapshot enthält, aus dem Sie wiederherstellen.
    • SNAPSHOT_NAME ist der Name des Snapshots, von dem Sie wiederherstellen.

  3. Klicken Sie auf Ausführen.

Informationen zum Ausführen von Abfragen finden Sie unter Interaktive Abfrage ausführen.

bq

Führen Sie dazu in Cloud Shell den folgenden Befehl aus.

Zu Cloud Shell

bq cp \
--restore \
--no_clobber \
SNAPSHOT_PROJECT_ID:SNAPSHOT_DATASET_NAME.SNAPSHOT_NAME \
TABLE_PROJECT_ID:TABLE_DATASET_NAME.NEW_TABLE_NAME

Dabei gilt:

  • SNAPSHOT_PROJECT_ID ist die Projekt-ID des Projekts, das den Snapshot enthält, aus dem Sie wiederherstellen.
  • SNAPSHOT_DATASET_NAME ist der Name des Datasets, das den Snapshot enthält, aus dem Sie wiederherstellen.
  • SNAPSHOT_NAME ist der Name des Snapshots, von dem Sie wiederherstellen.
  • TABLE_PROJECT_ID ist die Projekt-ID des Projekts, in dem die neue Tabelle erstellt werden soll.
  • TABLE_DATASET_NAME ist der Name des Datasets, in dem die neue Tabelle erstellt werden soll.
  • NEW_TABLE_NAME ist der Name der neuen Tabelle.

Das Flag --no_clobber weist den Befehl an, fehlzuschlagen, wenn die Zieltabelle bereits vorhanden ist.

API

Rufen Sie die Methode jobs.insert mit den folgenden Parametern auf:

Parameter Value
projectId Die Projekt-ID des Projekts, das für diesen Vorgang abgerechnet wird.
Anfragetext

{
  "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"
    }
  }
}

Dabei gilt:

  • SNAPSHOT_PROJECT_ID ist die Projekt-ID des Projekts, das den Snapshot enthält, aus dem Sie wiederherstellen.
  • SNAPSHOT_DATASET_NAME ist der Name des Datasets, das den Snapshot enthält, aus dem Sie wiederherstellen.
  • SNAPSHOT_NAME ist der Name des Snapshots, von dem Sie wiederherstellen.
  • TABLE_PROJECT_ID ist die Projekt-ID des Projekts, in dem die neue Tabelle erstellt werden soll.
  • TABLE_DATASET_NAME ist der Name des Datasets, in dem die neue Tabelle erstellt werden soll.
  • NEW_TABLE_NAME ist der Name der neuen Tabelle.

Wenn kein Ablauf angegeben ist, läuft die Zieltabelle nach der Tabellen-Standardablaufzeit des Datasets ab, das die Zieltabelle enthält.

Vorhandene Tabelle überschreiben

Sie können eine vorhandene Tabelle mit einem Tabellen-Snapshot unter EInsatz einer der folgenden Optionen überschreiben:

Console

  1. Öffnen Sie in der Google Cloud Console die Seite BigQuery.

    BigQuery aufrufen

  2. Maximieren Sie im Bereich Explorer die Projekt- und Dataset-Knoten des Tabellen-Snapshots, aus dem Sie wiederherstellen möchten.

  3. Klicken Sie auf den Namen des Tabellen-Snapshots.

  4. Klicken Sie im angezeigten Bereich des Tabellen-Snapshots auf Wiederherstellen.

    Tabelle aus Snapshot wiederherstellen

  5. Geben Sie im nun angezeigten Bereich Snapshot wiederherstellen die Details für Projekt, Dataset und Tabelle für die vorhandene Tabelle ein.

  6. Wählen Sie Tabelle überschreiben, falls vorhanden.

  7. Klicken Sie auf Speichern.

SQL

Verwenden Sie die DDL-Anweisung CREATE TABLE CLONE:

  1. Öffnen Sie in der Google Cloud Console die Seite BigQuery.

    BigQuery aufrufen

  2. Geben Sie im Abfrageeditor die folgende Anweisung ein:

    CREATE OR REPLACE TABLE TABLE_PROJECT_ID.TABLE_DATASET_NAME.TABLE_NAME
    CLONE SNAPSHOT_PROJECT_ID.SNAPSHOT_DATASET_NAME.SNAPSHOT_NAME;
    

    Dabei gilt:

    • TABLE_PROJECT_ID ist die Projekt-ID des Projekts, in dem die neue Tabelle erstellt werden soll.
    • TABLE_DATASET_NAME ist der Name des Datasets, das die zu überschreibende Tabelle enthält.
    • TABLE_NAME ist der Name der Tabelle, die Sie überschreiben.
    • SNAPSHOT_PROJECT_ID ist die Projekt-ID des Projekts, das den Snapshot enthält, aus dem Sie wiederherstellen.
    • SNAPSHOT_DATASET_NAME ist der Name des Datasets, das den Snapshot enthält, aus dem Sie wiederherstellen.
    • SNAPSHOT_NAME ist der Name des Snapshots, von dem Sie wiederherstellen.

  3. Klicken Sie auf Ausführen.

Informationen zum Ausführen von Abfragen finden Sie unter Interaktive Abfrage ausführen.

bq

Führen Sie dazu in Cloud Shell den folgenden Befehl aus.

Zu Cloud Shell

bq cp \
--restore \
--force \
SNAPSHOT_PROJECT_ID:SNAPSHOT_DATASET_NAME.SNAPSHOT_NAME \
TABLE_PROJECT_ID:TABLE_DATASET_NAME.TABLE_NAME

Dabei gilt:

  • SNAPSHOT_PROJECT_ID ist die Projekt-ID des Projekts, das den Snapshot enthält, aus dem Sie wiederherstellen.
  • SNAPSHOT_DATASET_NAME ist der Name des Datasets, das den Snapshot enthält, aus dem Sie wiederherstellen.
  • SNAPSHOT_NAME ist der Name des Snapshots, von dem Sie wiederherstellen.
  • TABLE_PROJECT_ID ist die Projekt-ID des Projekts, in dem die neue Tabelle erstellt werden soll.
  • TABLE_DATASET_NAME ist der Name des Datasets, das die zu überschreibende Tabelle enthält.
  • TABLE_NAME ist der Name der Tabelle, die Sie überschreiben.

API

Rufen Sie die Methode jobs.insert mit den folgenden Parametern auf:

Parameter Value
projectId Die Projekt-ID des Projekts, das für diesen Vorgang abgerechnet wird.
Anfragetext

{
  "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"
    }
  }
}

Dabei gilt:

  • SNAPSHOT_PROJECT_ID ist die Projekt-ID des Projekts, das den Snapshot enthält, aus dem Sie wiederherstellen.
  • SNAPSHOT_DATASET_NAME ist der Name des Datasets, das den Snapshot enthält, aus dem Sie wiederherstellen.
  • SNAPSHOT_NAME ist der Name des Snapshots, von dem Sie wiederherstellen.
  • TABLE_PROJECT_ID ist die Projekt-ID des Projekts, in dem die neue Tabelle erstellt werden soll.
  • TABLE_DATASET_NAME ist der Name des Datasets, das die zu überschreibende Tabelle enthält.
  • TABLE_NAME ist der Name der Tabelle, die Sie überschreiben.

Wenn kein Ablauf angegeben ist, läuft die Zieltabelle nach der Tabellen-Standardablaufzeit des Datasets ab, das die Zieltabelle enthält.

Nächste Schritte