Os snapshots de tabela capturam o estado de uma tabela base em um momento específico. Esse recurso permite restaurar dados após exclusões acidentais ou atualizações incorretas, além de reter dados históricos além da janela de retenção do backup local.
Use snapshots para:
Restaurar os dados da tabela para uma versão anterior correta após exclusão acidental, atualizações incorretas ou alterações problemáticas em regras de negócio.
Reter dados de um ponto específico no tempo além do período suportado pelo backup local.
Reduzir custos de armazenamento, pois apenas os bytes diferentes entre o snapshot e a tabela base são armazenados.
Como funciona
Um snapshot é somente leitura. Para modificar dados em um snapshot, restaure-o para uma tabela nova ou existente e, em seguida, atualize essa tabela.
É possível atualizar os metadados do snapshot — descrição, horário de expiração e permissões de acesso — sem precisar restaurá-lo.
A criação de um snapshot não gera taxas de armazenamento. As taxas se aplicam apenas aos dados exclusivos do snapshot: aqueles modificados ou excluídos na tabela base após a criação do snapshot. Se vários snapshots contiverem os mesmos dados alterados ou excluídos, a cobrança ocorrerá apenas pelo armazenamento consumido pelo maior snapshot.
Limitações
Tipos de tabela compatíveis:
|
Tipo de tabela |
Compatível |
|
Tabelas padrão (particionadas, não particionadas e clusterizadas) |
Sim |
|
Tabela PK/Append Delta |
Sim |
|
Transaction Table |
Não |
|
View |
Não |
|
Materialized views (Delta Live MV) |
Não |
|
External Table |
Não |
Restrições e cotas:
|
Restrição |
Limite |
|
Região e tenant |
O snapshot deve estar na mesma região e no mesmo tenant da tabela base. |
|
Regras de ciclo de vida |
Caso a tabela base tenha um ciclo de vida configurado, a regra não se aplica aos dados no snapshot. |
|
Latência de gravação em streaming |
Dados gravados via Streaming Tunnel e liberados por meio de |
|
Snapshots por tabela |
1.000 |
|
Jobs CREATE SNAPSHOT simultâneos por projeto |
100 |
|
Jobs CREATE SNAPSHOT por projeto por dia |
50.000 |
|
Jobs CREATE SNAPSHOT por tabela por dia |
50 |
Não é possível recuperar snapshots de tabelas excluídas.
Crie um snapshot
CREATE [OR REPLACE] SNAPSHOT TABLE [IF NOT EXISTS] <table_snapshot_name>
CLONE <source_table_name>
[OPTIONS(<snapshot_option_list>)]
Parâmetros:
|
Parâmetro |
Descrição |
|
|
Nome do snapshot a ser criado. |
|
|
Tabela base da qual o snapshot será criado. |
|
|
Horário de expiração do snapshot. Tipo de dados: |
|
|
Descrição do snapshot. Tipo de dados: |
Exemplo:
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"
);
Restaurar a partir de um snapshot
Restaure um snapshot para a tabela base original ou para uma nova tabela:
CREATE [OR REPLACE] TABLE [IF NOT EXISTS] <target_table_name>
CLONE <table_snapshot_name>
Modifique um snapshot
Apenas as OPTIONS podem ser modificadas (descrição, horário de expiração e permissões de acesso):
ALTER SNAPSHOT TABLE [IF EXISTS] <snapshot_table_name>
SET OPTIONS(<snapshot_option_list>)
Exclua um snapshot
DROP SNAPSHOT TABLE [IF EXISTS] <table_snapshot_name>
Não é possível recuperar snapshots excluídos.
Permissões
As operações de snapshot de tabela seguem o mesmo modelo de permissão das operações de tabela. As permissões abrangem:
Criação de snapshots
Restauração a partir de snapshots
Listagem de snapshots
Visualização de descrições de snapshots
Atualização de metadados de snapshots
Exclusão de snapshots
Consulta de dados em snapshots
Faturamento
As taxas de armazenamento se aplicam apenas aos dados em um snapshot ainda não presentes em nenhuma outra tabela. O MaxCompute cobra pelos bytes diferentes, e não por uma cópia completa da tabela.
|
Cenário |
Gera taxa de armazenamento? |
|
Criação de um snapshot |
Não |
|
Adição de dados à tabela base após o snapshot |
Não (os novos dados estão na tabela base, não no snapshot) |
|
Modificação ou exclusão de dados na tabela base após o snapshot |
Sim (os dados originais são preservados apenas no snapshot) |
|
Vários snapshots contendo os mesmos dados alterados ou excluídos |
Cobrança apenas pelo maior snapshot |
Dados modificados ou excluídos na tabela base ainda podem ser restaurados por meio do backup local dentro do período de retenção do backup local, sem taxas adicionais de backup local.