Crea cloni di tabelle

Questo documento descrive come copiare una tabella in un clone di tabelle utilizzando un CREATE TABLE CLONE un'istruzione SQL, un bq cp o un comando jobs.insert chiamata API. Questo documento è rivolto agli utenti che conoscono bene cloni di tabelle.

Autorizzazioni e ruoli

Questa sezione descrive le Autorizzazioni IAM (Identity and Access Management) che è necessario creare un clone di tabelle ruoli IAM predefiniti che concedono queste autorizzazioni.

Autorizzazioni

Per creare un clone di tabelle, devi disporre delle seguenti autorizzazioni:

Autorizzazione Risorsa
Tutte le seguenti caratteristiche:

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 autorizzazioni sono le 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 tabelle.

Crea un clone di tabelle

Usa GoogleSQL, lo strumento a riga di comando bq o API BigQuery per creare un clone di tabelle.

SQL

Per clonare una tabella, utilizza la classe CREA CLONE DI TABELLA l'Informativa.

  1. Nella console Google Cloud, vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nell'editor query, inserisci la seguente istruzione:

    CREATE TABLE
    myproject.myDataset_backup.myTableClone
    CLONE myproject.myDataset.myTable;
    

  3. Fai clic su Esegui.

Per ulteriori informazioni su come eseguire le query, vedi Eseguire una query interattiva.

Sostituisci quanto segue:

  • PROJECT è l'ID del progetto di destinazione. Questo progetto deve trovarsi nella stessa organizzazione del progetto che contiene 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 tabelle che stai in fase di creazione.

bq

Utilizzare un comando bq cp con il flag --clone:

Vai a Cloud Shell

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 tabelle che stai in fase di creazione.

Se stai creando un clone nello stesso progetto della tabella di base, puoi saltare la specifica di un progetto, come mostrato di seguito:

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

API

Chiama il jobs.insert con il metodo 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 che contiene 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 tabelle che stai in fase di creazione.

Controllo degli accessi

Quando crei un clone di tabelle, l'accesso a questo clone è impostato come segue:

  • I criteri di accesso a livello di riga copiato dalla tabella di base al clone della tabella.
  • 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, l'accesso a livello di tabella per la tabella esistente. 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 delle tabelle è determinato dai criteri di accesso al set di dati in cui viene creato un clone di tabelle. Inoltre, i tag vengono copiati dalla tabella di base al clone della tabella.

Passaggi successivi

  • Dopo aver creato un clone di tabelle, puoi utilizzarlo come se fossero tabelle standard. Per saperne di più, vedi Gestire le tabelle.