Crea cloni di tabelle
Questo documento descrive come copiare una tabella in un clone di tabella utilizzando un'istruzione SQL CREATE TABLE CLONE
, un comando bq cp
o una chiamata API jobs.insert
. Questo documento è destinato agli utenti che hanno familiarità con i
cloni di tabelle.
Autorizzazioni e ruoli
Questa sezione descrive le autorizzazioni di Identity and Access Management (IAM) necessarie per creare un clone di tabella e i ruoli IAM predefiniti che concedono queste autorizzazioni.
Autorizzazioni
Per creare un clone di tabella, devi disporre delle seguenti autorizzazioni:
Autorizzazione | Risorsa |
---|---|
Tutti i seguenti elementi:bigquery.tables.get bigquery.tables.getData |
La tabella di cui vuoi creare un clone. |
bigquery.tables.create bigquery.tables.updateData
|
Il set di dati che contiene il clone della tabella. |
Ruoli
I ruoli BigQuery predefiniti che forniscono le autorizzazioni richieste sono i seguenti:
Role | Risorsa |
---|---|
Uno dei seguenti:bigquery.dataViewer bigquery.dataEditor bigquery.dataOwner bigquery.admin
|
La tabella di cui vuoi creare un clone. |
Uno dei seguenti:bigquery.dataEditor bigquery.dataOwner bigquery.admin
|
Il set di dati che contiene il nuovo clone di tabella. |
Crea un clone di tabella
Utilizza GoogleSQL, lo strumento a riga di comando bq o l'API BigQuery per creare un clone di tabella.
SQL
Per clonare una tabella, utilizza l'istruzione CREATE TABLE CLONE.
Nella console Google Cloud, vai alla pagina BigQuery.
Nell'Editor query, inserisci la seguente istruzione:
CREATE TABLE myproject.myDataset_backup.myTableClone CLONE myproject.myDataset.myTable;
Fai clic su
Esegui.
Per ulteriori informazioni su come eseguire le query, consulta Eseguire una query interattiva.
Sostituisci quanto segue:
PROJECT
è l'ID del progetto di destinazione. Questo progetto deve trovarsi nella stessa organizzazione del progetto contenente la tabella che stai clonando.DATASET
è il nome del set di dati di destinazione. Questo set di dati deve trovarsi nella stessa regione del set di dati contenente la tabella che stai clonando.CLONE_NAME
è il nome del clone di tabella che stai creando.
bq
Utilizza un comando bq cp
con il flag --clone
:
bq cp --clone -n project1:myDataset.myTable PROJECT:DATASET.CLONE_NAME
Sostituisci quanto segue:
PROJECT
è l'ID del progetto di destinazione. Questo progetto deve trovarsi nella stessa organizzazione del progetto contenente la tabella che stai clonando.DATASET
è il nome del set di dati di destinazione. Questo set di dati deve trovarsi nella stessa regione del set di dati contenente la tabella che stai clonando. Se il set di dati non si trova nella stessa regione del set di dati contenente la tabella che stai clonando, viene copiata una tabella completa.CLONE_NAME
è il nome del clone di tabella che stai creando.
Se stai creando un clone nello stesso progetto della tabella di base, puoi saltare di specificare un progetto, come mostrato di seguito:
bq cp --clone -n myDataset.myTable DATASET.CLONE_NAME
API
Richiama il metodo jobs.insert
con il campo operationType
impostato su CLONE
:
Parametro | Valore |
---|---|
projectId |
L'ID del progetto che esegue il job. |
Corpo della richiesta | { "configuration": { "copy": { "sourceTables": [ { "projectId": "myProject", "datasetId": "myDataset", "tableId": "myTable" } ], "destinationTable": { "projectId": "PROJECT", "datasetId": "DATASET", "tableId": "CLONE_NAME" }, "operationType": "CLONE", "writeDisposition": "WRITE_EMPTY", } } } |
Sostituisci quanto segue:
PROJECT
è l'ID del progetto di destinazione. Questo progetto deve trovarsi nella stessa organizzazione del progetto contenente la tabella che stai clonando.DATASET
è il nome del set di dati di destinazione. Questo set di dati deve trovarsi nella stessa regione del set di dati contenente la tabella che stai clonando. Se il set di dati non si trova nella stessa regione del set di dati contenente la tabella che stai clonando, viene copiata una tabella completa.CLONE_NAME
è il nome del clone di tabella che stai creando.
Controllo dell'accesso
Quando crei un clone di tabella, l'accesso al clone della tabella viene impostato come segue:
- I criteri di accesso a livello di riga vengono copiati dalla tabella di base al clone della tabella.
- I criteri di accesso a livello di colonna vengono copiati dalla tabella di base al clone della tabella.
L'accesso a livello di tabella è determinato come segue:
- Se il clone della tabella sovrascrive una tabella esistente, viene mantenuto l'accesso a livello di tabella per la tabella esistente. I tag non vengono copiati dalla tabella di base.
- Se il clone della tabella è una nuova risorsa, l'accesso a livello di tabella per il clone di tabella è determinato dai criteri di accesso del set di dati in cui viene creato il clone di tabella. Inoltre, i tag vengono copiati dalla tabella di base al clone della tabella.
Passaggi successivi
- Dopo aver creato un clone di tabella, puoi utilizzarlo come faresti con le tabelle standard. Per saperne di più, consulta Gestire le tabelle.