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
Mit einer der folgenden Optionen können Sie einen Tabellen-Snapshot in einer neuen Tabelle wiederherstellen:
Console
Öffnen Sie in der Google Cloud Console die Seite BigQuery.
Maximieren Sie im Bereich Explorer die Projekt- und Dataset-Knoten des Tabellen-Snapshots, aus dem Sie wiederherstellen möchten.
Klicken Sie auf den Namen des Tabellen-Snapshots.
Klicken Sie im angezeigten Bereich des Tabellen-Snapshots auf Wiederherstellen.
Geben Sie im nun angezeigten Bereich Snapshot wiederherstellen die Details für Projekt, Dataset und Tabelle für die neue Tabelle ein.
Klicken Sie auf Speichern.
SQL
Verwenden Sie die DDL-Anweisung CREATE TABLE CLONE
:
Öffnen Sie in der Google Cloud Console die Seite BigQuery.
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.
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.
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 | Wert |
---|---|
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
Öffnen Sie in der Google Cloud Console die Seite BigQuery.
Maximieren Sie im Bereich Explorer die Projekt- und Dataset-Knoten des Tabellen-Snapshots, aus dem Sie wiederherstellen möchten.
Klicken Sie auf den Namen des Tabellen-Snapshots.
Klicken Sie im angezeigten Bereich des Tabellen-Snapshots auf Wiederherstellen.
Geben Sie im nun angezeigten Bereich Snapshot wiederherstellen die Details für Projekt, Dataset und Tabelle für die vorhandene Tabelle ein.
Wählen Sie Tabelle überschreiben, falls vorhanden.
Klicken Sie auf Speichern.
SQL
Verwenden Sie die DDL-Anweisung CREATE TABLE CLONE
:
Öffnen Sie in der Google Cloud Console die Seite BigQuery.
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.
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.
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 | Wert |
---|---|
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.