Présentation des clones de table
Ce document fournit une présentation des clones de table dans BigQuery. Il est destiné aux utilisateurs familiarisés avec BigQuery et les tables BigQuery.
Un clone de table est une copie en écriture légère d'une autre table (appelée table de base). Seulement le stockage des données qui diffèrent entre le clone de la table et la table de base vous est facturé. Initialement, vous ne payez donc pas de coût de stockage pour un clone de table. En dehors du modèle de facturation du stockage et de métadonnées supplémentaires pour la table de base, un clone de table est similaire à une table standard : vous pouvez l'interroger, en créer une copie, la supprimer, etc.
Voici quelques cas d'utilisation courants des clones de table :
- Créer des copies de tables de production que vous pouvez utiliser pour le développement et les tests.
- Créer des bacs à sable pour que les utilisateurs génèrent leurs propres analyses et manipulations de données, sans copier physiquement toutes les données de production. Seules les données modifiées sont facturées.
Une fois le clone de table créé, il est indépendant de la table de base. Aucune modification apportée à la table de base ou au clone de table n'est reflétée dans l'autre.
Si vous avez besoin de copies de vos tables en lecture légères, envisagez d'utiliser des instantanés de table.
Métadonnées des clones de table
Un clone de table possède les mêmes métadonnées qu'une table standard, ainsi que les éléments suivants :
- Projet, ensemble de données et nom de la table de base du clone de table
- Heure de l'opération du clone de table. Si la Fonction temporelle a été utilisée pour créer le clone de table, il s'agit de l'horodatage de la fonction temporelle.
Pour en savoir plus, consultez la section INFORMATION_SCHEMA.TABLES.
Opérations de clones des tables
En règle générale, les clones de table sont utilisés de la même manière que les tables standards, y compris pour les opérations suivantes :
- Requête
- Contrôle des accès
- Obtenir des métadonnées
- Partitionnement et filtrage par cluster
- Utiliser des schémas
- Suppression
Cependant, la création d'un clone de table est différente de la création d'une table standard. Pour en savoir plus, consultez la section Créer des clones de table.
Coûts de stockage
Les coûts de stockage s'appliquent aux clones de table, mais BigQuery ne facture que les données d'un clone de table qui ne sont pas déjà facturées dans une autre table :
Lorsqu'un clone de table est créé, il n'y a initialement aucun coût de stockage pour ce clone de table.
Si des données sont ajoutées ou modifiées dans un clone de table, le stockage des données ajoutées ou mises à jour vous est facturé.
Si des données existant également dans le clone de table sont modifiées ou supprimées dans la table de base, le stockage des données modifiées ou supprimées dans le clone de table vous sera facturé. Si plusieurs clones contiennent les données modifiées ou supprimées, vous ne payez que l'espace de stockage utilisé par le clone le plus ancien.
Si des données sont ajoutées à la table de base après la création du clone de table, le stockage de ces données dans le clone de table ne vous est pas facturé, mais il l'est dans la table de base.
La différence entre les frais de stockage de la table de base et du clone de table est illustrée dans l'image suivante :
Pour en savoir plus, consultez les tarifs de stockage BigQuery.
Limites
- Vous pouvez cloner une table entre des ensembles de données d'un même projet et entre des ensembles de données de différents projets. Cependant, l'ensemble de données de destination du clone de table doit se trouver dans la même région et dans la même organisation que la table clonée. Par exemple, vous ne pouvez pas cloner une table d'un ensemble de données basé dans l'UE vers un ensemble de données basé aux États-Unis.
- Vous ne pouvez pas créer un clone des données d'une table si elles remontent à plus loin que la fenêtre de fonctionnalité temporelle pour l'ensemble de données de la table.
- Vous ne pouvez pas créer un clone d'une vue ou d'une vue matérialisée.
- Vous ne pouvez pas créer un clone d'une table externe.
- Vous ne pouvez pas écraser une table ou un clone de table existant lorsque vous créez un clone de table. Pour connaître les limites spécifiques, consultez la section Nommer les tables.
- Si vous clonez une table contenant des données dans un stockage optimisé en écriture (la mémoire tampon du flux pour les lignes récemment diffusées), les données que ce stockage contient ne sont pas incluses dans le clone de table.
- Si vous clonez une table contenant des données dans la fonctionnalité temporelle, ces données ne sont pas incluses dans le clone de table.
- Il n'est pas possible de distinguer les clones de table des tables standards dans le volet Explorer. Vous pouvez toutefois distinguer un clone de table à partir d'une table standard en examinant les détails de la table. Les détails du clone de table comportent une section Informations sur la table de base, ce qui n'est pas le cas des tables standards.
- Vous ne pouvez pas utiliser une opération de clonage pour ajouter des données à une table existante. Par exemple, vous ne pouvez pas utiliser les paramètres d'option
--append_table=true
et--clone=true
dans la même commandebq cp
. Pour ajouter des données lors de la duplication d'une table, utilisez plutôt une opération de copie. - Lorsque vous créez un clone de table, son nom doit respecter les mêmes règles de dénomination que lorsque vous créez une table.
- La création de clones de table est soumise aux limites BigQuery applicables aux tâches de copie.
- Le temps nécessaire à BigQuery pour créer des clones de table peut varier considérablement selon les exécutions, car le stockage sous-jacent est géré de manière dynamique.
Quotas et limites
Les clones de table sont soumis aux mêmes quotas et limites que les tables standards. Pour en savoir plus, consultez la section Quotas et limites de table. Des limites de clones de table s'appliquent également.