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 zum Erstellen eines Tabellenklons GoogleSQL, das bq-Befehlszeilentool oder die BigQuery API.
SQL
Verwenden Sie zum Klonen einer Tabelle die Anweisung CREATE TABLE CLONE.
Öffnen Sie in der Google Cloud Console die Seite BigQuery.
Geben Sie im Abfrageeditor die folgende Anweisung ein:
CREATE TABLE myproject.myDataset_backup.myTableClone CLONE myproject.myDataset.myTable;
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 befinden, das die Tabelle enthält, 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
Verwenden Sie einen bq cp
-Befehl mit dem Flag --clone
:
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 befinden, das die Tabelle enthält, 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 die Angabe eines Projekts ü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 befinden, das die Tabelle enthält, 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.