Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
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.
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:
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:
bqcp--clone-nmyDataset.myTableDATASET.CLONE_NAME
API
Rufen Sie die jobs.insert-Methode auf, wobei das operationType-Feld auf CLONE gesetzt ist:
Parameter
Wert
projectId
Die Projekt-ID des Projekts, in dem der Job ausgeführt wird.
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:
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.
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Schwer verständlich","hardToUnderstand","thumb-down"],["Informationen oder Beispielcode falsch","incorrectInformationOrSampleCode","thumb-down"],["Benötigte Informationen/Beispiele nicht gefunden","missingTheInformationSamplesINeed","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2024-12-22 (UTC)."],[[["\u003cp\u003eTable clones can be created using a \u003ccode\u003eCREATE TABLE CLONE\u003c/code\u003e SQL statement, the \u003ccode\u003ebq cp\u003c/code\u003e command-line tool, or a \u003ccode\u003ejobs.insert\u003c/code\u003e API call.\u003c/p\u003e\n"],["\u003cp\u003eCreating a table clone requires specific Identity and Access Management (IAM) permissions, including \u003ccode\u003ebigquery.tables.get\u003c/code\u003e, \u003ccode\u003ebigquery.tables.getData\u003c/code\u003e, \u003ccode\u003ebigquery.tables.create\u003c/code\u003e, and \u003ccode\u003ebigquery.tables.updateData\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003ePredefined BigQuery roles like \u003ccode\u003ebigquery.dataViewer\u003c/code\u003e, \u003ccode\u003ebigquery.dataEditor\u003c/code\u003e, \u003ccode\u003ebigquery.dataOwner\u003c/code\u003e, and \u003ccode\u003ebigquery.admin\u003c/code\u003e provide the necessary permissions for creating table clones.\u003c/p\u003e\n"],["\u003cp\u003eWhen a table clone is created, row-level and column-level access policies are copied from the base table, but table-level access depends on whether the clone overwrites an existing table or is a new resource.\u003c/p\u003e\n"],["\u003cp\u003eAfter creation, a table clone functions similarly to a standard table, and can be used with existing table management processes.\u003c/p\u003e\n"]]],[],null,["# Create table clones\n===================\n\nThis document describes how to copy a table to a\n[table clone](/bigquery/docs/table-clones-intro) by using a\n[`CREATE TABLE CLONE`](/bigquery/docs/reference/standard-sql/data-definition-language#create_table_clone_statement)\nSQL statement, a [`bq cp`](/bigquery/docs/reference/bq-cli-reference#bq_cp)\ncommand, or a [`jobs.insert`](/bigquery/docs/reference/rest/v2/jobs/insert)\nAPI call. This document is intended for users who are familiar with\n[table clones](/bigquery/docs/table-clones-intro).\n\nPermissions and roles\n---------------------\n\nThis section describes the\n[Identity and Access Management (IAM) permissions](/bigquery/docs/access-control#bq-permissions)\nthat you need to create a table clone, and the\n[predefined IAM roles](/bigquery/docs/access-control#bigquery)\nthat grant those permissions.\n\n### Permissions\n\nTo create a table clone, you need the following permissions:\n\n### Roles\n\nThe predefined BigQuery roles that provide the required\npermissions are as follows:\n\nCreate a table clone\n--------------------\n\nUse GoogleSQL, the bq command-line tool, or the\nBigQuery API to create a table clone. \n\n### SQL\n\nTo clone a table, use the\n[CREATE TABLE CLONE](/bigquery/docs/reference/standard-sql/data-definition-language#create_table_clone_statement)\nstatement.\n\n\u003cbr /\u003e\n\n1. In the Google Cloud console, go to the **BigQuery** page.\n\n [Go to BigQuery](https://console.cloud.google.com/bigquery)\n2. In the query editor, enter the following statement:\n\n ```googlesql\n CREATE TABLE\n myproject.myDataset_backup.myTableClone\n CLONE myproject.myDataset.myTable;\n ```\n\n \u003cbr /\u003e\n\n3. Click play_circle **Run**.\n\n \u003cbr /\u003e\n\nFor more information about how to run queries, see [Run an interactive query](/bigquery/docs/running-queries#queries).\n\nReplace the following:\n\n- \u003cvar translate=\"no\"\u003ePROJECT\u003c/var\u003e is the project ID of the target project. This project must be in the same organization as the project containing the table you are cloning.\n- \u003cvar translate=\"no\"\u003eDATASET\u003c/var\u003e is the name of the target dataset. This dataset must be in the same region as the dataset containing the table you are cloning.\n- \u003cvar translate=\"no\"\u003eCLONE_NAME\u003c/var\u003e is name of the table clone that you are creating.\n\n### bq\n\nUse a [`bq cp`](/bigquery/docs/reference/bq-cli-reference#bq_cp) command\nwith the `--clone` flag:\n\n[Go to Cloud Shell](https://console.cloud.google.com/bigquery?cloudshell=true) \n\n```bash\nbq cp --clone --no_clobber project1:myDataset.myTable PROJECT:DATASET.CLONE_NAME\n```\n\nReplace the following:\n\n- \u003cvar translate=\"no\"\u003ePROJECT\u003c/var\u003e is the project ID of the target project. This project must be in the same organization as the project containing the table you are cloning.\n- \u003cvar translate=\"no\"\u003eDATASET\u003c/var\u003e is the name of the target dataset. This dataset must be in the same region as the dataset containing the table you are cloning. If the dataset is not in the same region as the dataset containing the table you are cloning then a full table is copied.\n- \u003cvar translate=\"no\"\u003eCLONE_NAME\u003c/var\u003e is name of the table clone that you are creating.\n\nThe `--no_clobber` flag is required.\n\nIf you are creating a clone in the same project as the base table, you\ncan skip specifying a project, as shown following: \n\n```bash\nbq cp --clone --no_clobber myDataset.myTable DATASET.CLONE_NAME\n```\n\n### API\n\nCall the\n[`jobs.insert`](/bigquery/docs/reference/rest/v2/jobs/insert) method with the\n`operationType` field set to `CLONE`:\n\nReplace the following:\n\n- \u003cvar translate=\"no\"\u003ePROJECT\u003c/var\u003e is the project ID of the target project. This project must be in the same organization as the project containing the table you are cloning.\n- \u003cvar translate=\"no\"\u003eDATASET\u003c/var\u003e is the name of the target dataset. This dataset must be in the same region as the dataset containing the table you are cloning. If the dataset is not in the same region as the dataset containing the table you are cloning a full table is copied.\n- \u003cvar translate=\"no\"\u003eCLONE_NAME\u003c/var\u003e is name of the table clone that you are creating.\n\nAccess control\n--------------\n\nWhen you create a table clone, access to the table clone is set as follows:\n\n- [Row-level access policies](/bigquery/docs/row-level-security-intro) are copied from the base table to the table clone.\n- [Column-level access policies](/bigquery/docs/column-level-security-intro) are copied from the base table to the table clone.\n- [Table-level access](/bigquery/docs/table-access-controls-intro) is\n determined as follows:\n\n - If the table clone overwrites an existing table, then the table-level access for the existing table is maintained. [Tags](/bigquery/docs/tags) aren't copied from the base table.\n - If the table clone is a new resource, then the table-level access for the table clone is determined by the access policies of the dataset in which the table clone is created. Additionally, [tags](/bigquery/docs/tags) are copied from the base table to the table clone.\n\nWhat's next\n-----------\n\n- After you create a table clone, you can use it like you use standard tables. For more information, see [Manage tables](/bigquery/docs/managing-tables)."]]