Tabellenklone erstellen

In diesem Dokument wird beschrieben, wie Sie eine Tabelle in einen Tabellenklon kopieren und dazu die SQL-Anweisung CREATE TABLE CLONE, den Befehl bq cp oder den API-Aufruf jobs.insert verwenden. Dieses Dokument richtet sich an Nutzer, die mit Tabellenklonen vertraut sind.

Berechtigungen und Rollen

In diesem Abschnitt werden die IAM-Berechtigungen (Identity and Access Management) beschrieben, die Sie zum Erstellen eines Tabellenklones benötigen, und die vordefinierten IAM-Rollen, die diese Berechtigungen gewähren.

Berechtigungen

Zum Erstellen eines Tabellenklones benötigen Sie folgende Berechtigungen:

Berechtigung Ressource
Alle der Folgenden:

bigquery.tables.get
bigquery.tables.getData
Die Tabelle, die Sie klonen möchten.
bigquery.tables.create
bigquery.tables.updateData
Das Dataset, das den Tabellenklon enthält.

Rollen

Die folgenden vordefinierten BigQuery-Rollen bieten die erforderlichen Berechtigungen:

Rolle Ressource
Beliebige von Folgendem:

bigquery.dataViewer
bigquery.dataEditor
bigquery.dataOwner
bigquery.admin
Die Tabelle, die Sie klonen möchten.
Beliebige von Folgendem:

bigquery.dataEditor
bigquery.dataOwner
bigquery.admin
Das Dataset, das den neuen Tabellenklon enthält.

Einen Tabellenklon erstellen.

Verwenden Sie Google SQL, das bq-Befehlszeilentool oder die BigQuery API, um einen Tabellenklon zu erstellen.

SQL

Verwenden Sie zum Klonen einer Tabelle die 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
    myproject.myDataset_backup.myTableClone
    CLONE myproject.myDataset.myTable;
    

  3. Klicken Sie auf Ausführen.

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

Ersetzen Sie Folgendes:

  • PROJECT ist die Projekt-ID des Zielprojekts. Dieses Projekt muss sich in derselben Organisation wie das Projekt mit der Tabelle befinden, die Sie klonen.
  • DATASET ist der Name des Ziel-Datasets. Dieses Dataset muss sich in derselben Region befinden wie das Dataset, das die Tabelle enthält, die Sie klonen.
  • CLONE_NAME ist der Name des Tabellenklons, den Sie erstellen.

bq

Führen Sie den Befehl bq cp mit dem Flag --clone aus.

Zu Cloud Shell

bq cp --clone -n project1:myDataset.myTable PROJECT:DATASET.CLONE_NAME

Dabei gilt:

  • PROJECT ist die Projekt-ID des Zielprojekts. Dieses Projekt muss sich in derselben Organisation wie das Projekt mit der Tabelle befinden, die Sie klonen.
  • DATASET ist der Name des Ziel-Datasets. Dieses Dataset muss sich in derselben Region befinden wie das Dataset, das die Tabelle enthält, die Sie klonen. Wenn sich das Dataset nicht in derselben Region wie das Dataset befindet, das die geklonte Tabelle enthält, wird eine vollständige Tabelle kopiert.
  • CLONE_NAME ist der Name des Tabellenklons, den Sie erstellen.

Wenn Sie einen Klon im selben Projekt wie die Basistabelle erstellen, können Sie ein Projekt wie unten beschrieben überspringen:

bq cp --clone -n myDataset.myTable DATASET.CLONE_NAME

API

Rufen Sie die jobs.insert-Methode auf, wobei das operationType-Feld auf CLONE gesetzt ist:

Parameter Value
projectId Die Projekt-ID des Projekts, in dem der Job ausgeführt wird.
Anfragetext

{
  "configuration": {
    "copy": {
      "sourceTables": [
        {
          "projectId": "myProject",
          "datasetId": "myDataset",
          "tableId": "myTable"
        }
      ],
      "destinationTable": {
        "projectId": "PROJECT",
        "datasetId": "DATASET",
        "tableId": "CLONE_NAME"
      },
      "operationType": "CLONE",
      "writeDisposition": "WRITE_EMPTY",
    }
  }
}

Dabei gilt:

  • PROJECT ist die Projekt-ID des Zielprojekts. Dieses Projekt muss sich in derselben Organisation wie das Projekt mit der Tabelle befinden, die Sie klonen.
  • DATASET ist der Name des Ziel-Datasets. Dieses Dataset muss sich in derselben Region befinden wie das Dataset, das die Tabelle enthält, die Sie klonen. Wenn sich das Dataset nicht in derselben Region wie das Dataset mit der Tabelle befindet, die Sie klonen, wird eine vollständige Tabelle kopiert.
  • CLONE_NAME ist der Name des Tabellenklons, den Sie erstellen.

Zugriffssteuerung

Wenn Sie einen Tabellenklon erstellen, wird der Zugriff auf den Tabellenklon so festgelegt:

  • Zugriffsrichtlinien auf Zeilenebene werden aus der Basistabelle in den Tabellenklon kopiert.
  • Zugriffsrichtlinien auf Spaltenebene werden aus der Basistabelle in den Tabellenklon kopiert.
  • Der Zugriff auf Tabellenebene wird so bestimmt:

    • Wenn der Tabellenklon eine vorhandene Tabelle überschreibt, wird der Zugriff auf Tabellenebene für die vorhandene Tabelle beibehalten. Tags werden nicht aus der Basistabelle kopiert.
    • Wenn der Tabellenklon eine neue Ressource ist, wird der Zugriff auf Tabellenebene für den Tabellenklon durch die Zugriffsrichtlinien des Datasets bestimmt, in dem der Tabellenklon erstellt wird. Außerdem werden Tags aus der Basistabelle in den Tabellenklon kopiert.

Nächste Schritte

  • Nachdem Sie einen Tabellenklon erstellt haben, können Sie ihn wie Standardtabellen verwenden. Weitere Informationen finden Sie unter Tabellen verwalten.