Les table snapshots capturent l'état d'une table de base à un instant donné. Elles vous permettent de restaurer des données après une suppression accidentelle ou une mise à jour incorrecte, et de conserver les données historiques au-delà de la fenêtre de rétention des sauvegardes locales.
Utilisez les snapshots pour :
Restaurer les données d'une table vers une version correcte antérieure après une suppression accidentelle, des mises à jour erronées ou des modifications problématiques des règles métier.
Conserver les données d'un instant précis au-delà de la période de rétention prise en charge par local backup.
Réduire les coûts de stockage : seuls les octets différents entre le snapshot et sa table de base sont stockés.
Fonctionnement
Un snapshot est en lecture seule. Pour modifier les données d'un snapshot, restaurez-le dans une table nouvelle ou existante, puis mettez à jour cette table.
Vous pouvez mettre à jour les métadonnées du snapshot (description, délai d'expiration et permissions d'accès) sans effectuer de restauration.
La création d'un snapshot n'entraîne aucun frais de stockage. Les frais de stockage s'appliquent uniquement aux données qui existent exclusivement dans le snapshot, c'est-à-dire les données modifiées ou supprimées dans la table de base après la prise du snapshot. Si plusieurs snapshots contiennent les mêmes données modifiées ou supprimées, vous êtes facturé uniquement pour le stockage consommé par le plus grand snapshot.
Limitations
Types de tables pris en charge :
|
Type de table |
Pris en charge |
|
Tables standard (partitionnées, non partitionnées et clusterisées) |
Oui |
|
Table PK/Append Delta |
Oui |
|
Transaction Table |
Non |
|
View |
Non |
|
Vues matérialisées (Delta Live MV) |
Non |
|
External Table |
Non |
Contraintes et quotas :
|
Contrainte |
Limite |
|
Région et locataire |
Un snapshot doit se trouver dans la même région et appartenir au même locataire que sa table de base. |
|
Règles de cycle de vie |
Si un cycle de vie est configuré pour la table de base, la règle de cycle de vie ne s'applique pas aux données du snapshot. |
|
Latence d'écriture en streaming |
Les données écrites via Streaming Tunnel et vidées à l'aide de |
|
Snapshots par table |
1 000 |
|
Tâches CREATE SNAPSHOT concurrentes par projet |
100 |
|
Tâches CREATE SNAPSHOT par projet et par jour |
50 000 |
|
Tâches CREATE SNAPSHOT par table et par jour |
50 |
Il est impossible de récupérer les table snapshots supprimés.
Créer un snapshot
CREATE [OR REPLACE] SNAPSHOT TABLE [IF NOT EXISTS] <table_snapshot_name>
CLONE <source_table_name>
[OPTIONS(<snapshot_option_list>)]
Paramètres :
|
Paramètre |
Description |
|
|
Nom du snapshot à créer. |
|
|
Table de base à partir de laquelle créer le snapshot. |
|
|
Date et heure d'expiration du snapshot. Type de données : |
|
|
Description du snapshot. Type de données : |
Exemple :
CREATE SNAPSHOT TABLE <table_snapshot_name>
CLONE <source_table_name>
OPTIONS(
expiration_timestamp=TIMESTAMP "2025-07-01 00:00:00",
description="A table snapshot that expires in xxx days"
);
Restaurer à partir d'un snapshot
Restaurez un snapshot vers la table de base d'origine ou vers une nouvelle table :
CREATE [OR REPLACE] TABLE [IF NOT EXISTS] <target_table_name>
CLONE <table_snapshot_name>
Modifier un snapshot
Seules les options OPTIONS peuvent être modifiées (description, délai d'expiration et permissions d'accès) :
ALTER SNAPSHOT TABLE [IF EXISTS] <snapshot_table_name>
SET OPTIONS(<snapshot_option_list>)
Supprimer un snapshot
DROP SNAPSHOT TABLE [IF EXISTS] <table_snapshot_name>
Il est impossible de récupérer les snapshots supprimés.
Permissions
Les opérations sur les table snapshots suivent le même modèle de permissions que les opérations sur les tables. Les permissions couvrent les actions suivantes :
Création de snapshots
Restauration à partir de snapshots
Listage des snapshots
Consultation des descriptions de snapshots
Mise à jour des métadonnées des snapshots
Suppression de snapshots
Interrogation des données depuis les snapshots
Facturation
Les frais de stockage s'appliquent uniquement aux données d'un snapshot qui ne sont déjà présentes dans aucune autre table. MaxCompute facture les octets différentiels, et non une copie complète de la table.
|
Scénario |
Frais de stockage appliqués ? |
|
Création d'un snapshot |
Non |
|
Ajout de données à la table de base après la prise du snapshot |
Non (les nouvelles données se trouvent dans la table de base, pas dans le snapshot) |
|
Modification ou suppression de données dans la table de base après la prise du snapshot |
Oui (les données d'origine sont conservées uniquement dans le snapshot) |
|
Plusieurs snapshots contenant les mêmes données modifiées ou supprimées |
Facturation appliquée uniquement au plus grand snapshot |
Les données modifiées ou supprimées dans la table de base peuvent toujours être restaurées via local backup pendant la période de rétention des sauvegardes locales, sans frais supplémentaires pour la sauvegarde locale.