Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Introduzione ai cloni delle tabelle
Questo documento offre una panoramica dei cloni di tabelle in BigQuery.
È destinato agli utenti che hanno familiarità con BigQuery e le tabelle BigQuery.
Un clone di tabella è una copia leggera e scrivibile di un'altra tabella
(chiamata tabella di base). Ti vengono addebitati solo i costi di archiviazione dei dati nel clone della tabella che differiscono dalla tabella di base, quindi inizialmente non ci sono costi di archiviazione per un clone della tabella. A parte il modello di fatturazione per l'archiviazione e alcuni metadati aggiuntivi per la tabella di base, un clone di una tabella è simile a una tabella standard: puoi eseguirvi query, farne una copia, eliminarla e così via.
I casi d'uso comuni per i cloni di tabelle includono:
Creazione di copie delle tabelle di produzione che puoi utilizzare per lo sviluppo e
i test.
Creazione di sandbox per consentire agli utenti di generare analisi e manipolazioni dei dati personalizzate, senza copiare fisicamente tutti i dati di produzione.
Vengono fatturati solo i dati modificati.
Una volta creato, il clone di una tabella è indipendente dalla tabella di base. Le modifiche
apportate alla tabella di base o al clone della tabella non vengono applicate all'altra.
Se hai bisogno di copie leggere e di sola lettura delle tue tabelle, valuta l'utilizzo degli
snapshot delle tabelle.
Metadati del clone della tabella
Un clone di una tabella ha gli stessi metadati di una tabella standard, più quanto segue:
Il progetto, il set di dati e il nome della tabella di base del clone della tabella.
L'ora dell'operazione di clonazione della tabella. Se
è stato utilizzato il viaggio nel tempo per creare il clone della tabella,
questo è il timestamp del viaggio nel tempo.
In generale, utilizzi i cloni di tabelle nello stesso modo in cui utilizzi le tabelle standard, incluse le seguenti operazioni:
Query
Controllo degli accessi
Recupero dei metadati
Partizionamento e clustering
Utilizzo degli schemi
In fase di eliminazione
Tuttavia, la creazione di un clone di una tabella è diversa dalla creazione di una
tabella standard. Per saperne di più, vedi
Creare cloni di tabelle.
Costi di archiviazione
I costi di archiviazione si applicano ai cloni di tabelle,
ma BigQuery addebita solo i dati in un clone di tabella
che non sono già addebitati a un'altra tabella:
Quando viene creato un clone della tabella, inizialmente non sono previsti costi di archiviazione per il clone della tabella.
Se i dati vengono aggiunti o modificati in un clone della tabella, ti viene addebitato lo spazio di archiviazione dei dati aggiunti o aggiornati.
Se i dati vengono eliminati in un clone della tabella, non ti viene addebitato il costo di archiviazione dei dati eliminati.
Se i dati vengono modificati o eliminati nella tabella di base che esiste anche in un clone della tabella, ti viene addebitato lo spazio di archiviazione del clone della tabella dei dati modificati o eliminati. Se esistono più cloni che contengono i dati modificati o eliminati, ti verrà addebitato solo lo spazio di archiviazione utilizzato dal clone meno recente.
Se i dati vengono aggiunti alla tabella di base dopo la creazione del clone della tabella, non ti viene addebitato il costo di archiviazione di questi dati nel clone della tabella, ma ti viene addebitato il costo nella tabella di base.
La differenza tra gli addebiti per l'archiviazione della tabella di base e del clone della tabella è mostrata
nell'immagine seguente:
Puoi clonare una tabella tra set di dati nello stesso progetto e tra
set di dati in progetti diversi. Tuttavia, il set di dati di destinazione per il clone della tabella deve trovarsi nella stessa regione e nella stessa organizzazione della tabella da clonare. Ad esempio, non puoi clonare una tabella da un set di dati con sede nell'UE in un set di dati con sede negli Stati Uniti.
Non puoi creare un clone dei dati di una tabella perché risalgono a un periodo precedente alla
durata della finestra di time travel per il
set di dati della tabella.
Se cloni una tabella che contiene dati in uno spazio di archiviazione ottimizzato per la scrittura
(il buffer di streaming per le righe trasmesse di recente),
i dati nello spazio di archiviazione ottimizzato per la scrittura non sono inclusi nel clone della tabella.
Se cloni una tabella che contiene dati in Time Travel,
i dati in Time Travel non vengono inclusi nel clone della tabella.
I cloni delle tabelle non possono essere distinti dalle tabelle standard nel riquadro
Explorer. Tuttavia, puoi distinguere un clone di una tabella da una tabella standard
esaminando i dettagli della tabella.
I dettagli del clone della tabella includono una sezione Informazioni tabella di base che le tabelle standard non hanno.
Non puoi utilizzare un'operazione di clonazione per aggiungere dati a una tabella esistente. Ad esempio, non puoi utilizzare le impostazioni dei flag --append_table=true e
--clone=true nello stesso
comando bq cp. Per aggiungere
dati durante la duplicazione di una tabella, utilizza invece un'operazione di copia.
Quando crei un clone di una tabella, il suo nome deve rispettare le stesse
regole di denominazione di quando
crei una tabella.
La creazione di cloni di tabelle è soggetta ai limiti di BigQuery per i job di copia.
Il tempo impiegato da BigQuery per creare i cloni delle tabelle può variare in modo significativo tra le diverse esecuzioni perché lo spazio di archiviazione sottostante viene gestito in modo dinamico.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Difficile da capire","hardToUnderstand","thumb-down"],["Informazioni o codice di esempio errati","incorrectInformationOrSampleCode","thumb-down"],["Mancano le informazioni o gli esempi di cui ho bisogno","missingTheInformationSamplesINeed","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-09-04 UTC."],[[["\u003cp\u003eTable clones are writable, lightweight copies of a base table, incurring storage costs only for data that differs from the base table.\u003c/p\u003e\n"],["\u003cp\u003eCommon uses for table clones include creating development/testing environments and sandboxes for user analytics without duplicating all production data.\u003c/p\u003e\n"],["\u003cp\u003eTable clones are independent of their base tables, meaning changes to one are not reflected in the other.\u003c/p\u003e\n"],["\u003cp\u003eTable clones have similar functionality to standard tables, allowing for querying, access control, and deletion, among other operations.\u003c/p\u003e\n"],["\u003cp\u003eStorage costs for table clones are incurred when data is added, updated, or if data is changed or deleted in the base table that also exist in the clone.\u003c/p\u003e\n"]]],[],null,["# Introduction to table clones\n============================\n\nThis document gives an overview of table clones in BigQuery.\nIt is intended for\nusers who are familiar with [BigQuery](/bigquery/docs)\nand BigQuery [tables](/bigquery/docs/tables-intro).\n\nA *table clone* is a lightweight, writable copy of another table\n(called the *base table*). You are only charged for storage of data in the\ntable clone that differs from the base table, so initially there is no storage\ncost for a table clone. Other than the billing model for storage, and some\nadditional metadata for the base table, a table clone is similar to a\nstandard table---you can query it, make a copy of it, delete it, and so on.\n\nCommon use cases for table clones include the following:\n\n- Creating copies of production tables that you can use for development and testing.\n- Creating sandboxes for users to generate their own analytics and data manipulations, without physically copying all of the production data. Only the changed data is billed.\n\nAfter you create a table clone, it is independent of the base table. Any changes\nmade to the base table or table clone aren't reflected in the other.\n\nIf you need read-only, lightweight copies of your tables, consider using\n[table snapshots](/bigquery/docs/table-snapshots-intro).\n\nTable clone metadata\n--------------------\n\nA table clone has the same metadata as a standard table, plus the following:\n\n- The project, dataset, and name of the table clone's base table.\n- The time of the table clone operation. If [time travel](/bigquery/docs/time-travel) was used to create the table clone, then this is the time travel timestamp.\n\nFor more information, see\n[INFORMATION_SCHEMA.TABLES](/bigquery/docs/information-schema-tables).\n\nTable clone operations\n----------------------\n\nIn general, you use table clones in the same way as you use\n[standard tables](/bigquery/docs/managing-tables), including the following\noperations:\n\n- Querying\n- Access control\n- Getting metadata\n- Partitioning and clustering\n- Working with schemas\n- Deleting\n\nHowever, the creation of a table clone is different from the creation of a\nstandard table. For more information, see\n[Create table clones](/bigquery/docs/table-clones-create).\n\nStorage costs\n-------------\n\n[Storage costs](/bigquery/pricing#storage) apply for table clones,\nbut BigQuery only charges for the data in a table\nclone that is not already charged to another table:\n\n- When a table clone is created, there is initially no storage cost for the\n table clone.\n\n- If data is added or changed in a table clone, then you are charged for the\n storage of the added or updated data.\n\n- If data is deleted in a table clone, then you are not charged for the storage\n of the deleted data.\n\n- If data is changed or deleted in the base table that also exists in a table\n clone, then you are charged for the table clone storage of the changed or\n deleted data. If there are multiple clones that contain the changed or\n deleted data, you are only charged for the storage used by the oldest clone.\n\n- If data is added to the base table after the table clone was\n created, then you aren't charged for storage of that data in the table clone,\n but you are charged for it in the base table,\n\nThe difference between base table and table clone storage charges is shown in\nthe following image:\n\n| **Note:**\n| - Because BigQuery storage is column-based, small changes to the data in a base table can result in large increases in storage cost for a clone of the table.\n| - Some changes to a base table can result in you being charged the full storage amount for a table clone of the table. For example, if you modify a base table with [clustering](/bigquery/docs/creating-clustered-tables#modifying-cluster-spec), that can lead to automatic re-clustering. Because re-clustering can rewrite the base table's storage blocks, the base table's storage is no longer the same as the storage of its clones. This causes the oldest of the base table's clones to be charged the full storage amount of the modified partition.\n| - Partitions can help reduce storage costs for table clones. In general, BigQuery only makes a copy of modified data within a partition, instead of the entire table clone.\n\nFor more information, see\n[BigQuery storage pricing](/bigquery/pricing#storage).\n\nLimitations\n-----------\n\n- You can clone a table between datasets in the same project, and between datasets in different projects. However, the destination dataset for the table clone must be in the same [region](/bigquery/docs/locations), and under the same [organization](/resource-manager/docs/creating-managing-organization), as the table being cloned. For example, you cannot clone a table from an EU-based dataset into a US-based dataset.\n- You can't create a clone of a table's data as it was further back than the duration of the [time travel](/bigquery/docs/time-travel) window for the table's dataset.\n- You can't create a clone of a [view](/bigquery/docs/views-intro) or a [materialized view](/bigquery/docs/materialized-views-intro).\n- You can't create a clone of an [external table](/bigquery/docs/external-tables).\n- If you clone a table that has data in write-optimized storage (the [streaming buffer for recently streamed rows](/bigquery/docs/streaming-data-into-bigquery#dataavailability)), the data in the write-optimized storage is not included in the table clone.\n- If you clone a table that has data in [time travel](/bigquery/docs/time-travel), the data in time travel is not included in the table clone.\n- Table clones can't be distinguished from standard tables in the **Explorer** pane. However, you can tell a table clone from a standard table by [looking at the table details](/bigquery/docs/tables#get_table_information_using_information_schema). Table clone details have a **Base Table Info** section that standard tables don't.\n- You can't use a clone operation to append data to an existing table. For example, you can't use the flag settings `--append_table=true` and `--clone=true` in the same [`bq cp`](/bigquery/docs/reference/bq-cli-reference#bq_cp) command. To append data when duplicating a table, use a copy operation instead.\n- When you create a table clone, its name must adhere to the same [naming rules](/bigquery/docs/tables#table_naming) as when you create a table.\n- Table clone creation is subject to BigQuery [limits](/bigquery/quotas#copy_jobs) on copy jobs.\n- The time that BigQuery takes to create table clones might vary significantly across different runs because the underlying storage is managed dynamically.\n\nQuotas and limits\n-----------------\n\nTable clones are subject to the same quotas and limits as standard tables. For\nmore information, see\n[table quotas and limits](/bigquery/quotas#table_limits). They also have\n[table clone limits](/bigquery/quotas#table_clones) that apply.\n\nWhat's next\n-----------\n\n- [Create a table clone](/bigquery/docs/table-clones-create)."]]