Introdução aos snapshots da tabela

Este documento é uma introdução aos snapshots da tabela do BigQuery. Ele é o primeiro de um conjunto de documentos que descreve como trabalhar com snapshots de tabelas do BigQuery, incluindo como criar, restaurar, atualizar, receber informações e consultar snapshots de tabelas Esse conjunto de documentos destina-se a usuários familiarizados com o BigQuery e as tabelas do BigQuery.

Snapshots da tabela

Um snapshot da tabela do BigQuery preserva o conteúdo de uma tabela (chamada de tabela base) em um momento específico. É possível salvar um snapshot de uma tabela atual ou criar um snapshot de uma tabela como estava a qualquer momento nos últimos sete dias. Um snapshot de tabela pode ter uma expiração. Quando tiver passado o período configurado desde a criação do snapshot da tabela, o BigQuery excluirá o snapshot da tabela. É possível consultar um snapshot da tabela da mesma forma que uma tabela padrão. Os snapshots da tabela são somente leitura, mas é possível criar (restaurar) uma tabela padrão a partir de um snapshot da tabela e alterar a tabela restaurada.

Os benefícios do uso de snapshots da tabela incluem:

  • Manter um registro por mais de sete dias. Com a viagem no tempo do BigQuery, só é possível acessar os dados de uma tabela de, no máximo, sete dias atrás. Com os snapshots da tabela, você pode preservar os dados de uma tabela de um momento específico pelo tempo que quiser.

  • Minimizar o custo de armazenamento. O BigQuery armazena apenas bytes que são diferentes entre um snapshot e a sua tabela base. Assim, um snapshot da tabela costuma usar menos armazenamento do que uma cópia completa da tabela.

Se você precisar de cópias mutáveis e leves das tabelas, use clones de tabelas.

Controle de acesso para snapshots da tabela

O controle de acesso para snapshots de tabelas é semelhante ao de tabelas. Para mais informações, consulte Controlar o acesso a recursos com o IAM.

Como consultar snapshots da tabela

Consulte os dados de um snapshot da tabela da mesma forma que você consulta outros tipos de tabelas do BigQuery. Saiba mais em Como consultar dados do BigQuery.

Custos de armazenamento

Os custos de armazenamento se aplicam a snapshots de tabela, mas o BigQuery cobra apenas pelos dados em um snapshot ainda não cobrado em outra tabela:

  • Quando um snapshot da tabela é criado, a princípio não há custo de armazenamento.

  • Se novos dados forem adicionados à tabela base depois da criação do snapshot da tabela, você não pagará pelo armazenamento desses dados no snapshot da tabela.

  • Se os dados forem alterados ou excluídos na tabela base que também existe em um snapshot da tabela, serão feitas as seguintes cobranças:

    • O armazenamento de snapshots da tabela dos dados alterados ou excluídos é cobrado.

    • Se a tabela base for faturada como armazenamento físico, as cobranças de viagem no tempo e fail-safe não serão cobradas na tabela base. Quando o snapshot é excluído, você é cobrado pela viagem no tempo e fail-safe.

    • Se houver vários snapshots com os dados alterados ou excluídos, a cobrança será feita em relação ao armazenamento usado pelo snapshot mais antigo.

A diferença entre as cobranças do armazenamento da tabela base e do snapshot de tabela é mostrada na imagem a seguir:

Exemplo de cobrança de snapshot da tabela

Para mais informações, consulte Preços de armazenamento do BigQuery.

Limitações

  • Um snapshot de tabela precisa estar na mesma região e na mesma organização da tabela base.

  • Os snapshots da tabela são somente leitura. Não é possível atualizar os dados em um snapshot de tabela, a menos que você crie uma tabela padrão a partir do snapshot e atualize os dados. Só é possível atualizar os metadados de um snapshot da tabela, por exemplo, descrição, data de validade e política de acesso.

  • Só é possível capturar um snapshot dos dados de uma tabela como era, no máximo, sete dias atrás, devido ao limite de sete dias para viagens no tempo.

  • Não é possível tirar um snapshot de uma visualização ou de uma visualização materializada.

  • Não é possível tirar um snapshot de uma tabela externa.

  • Não é possível substituir um snapshot da tabela ou de tabela atual ao criar um snapshot da tabela.

  • Dados no armazenamento otimizado para gravação (buffer de streaming) não são incluídos no snapshot da tabela.

  • Se você capturar uma tabela com dados em viagem no tempo, eles não serão incluídos no instantâneo da tabela.

  • Se você capturar uma tabela particionada com uma expiração de partição definida, as informações de expiração da partição não serão retidas no instantâneo. A tabela com snapshot usa a expiração da partição padrão do conjunto de dados de destino. Para reter as informações de expiração da partição, copie a tabela.

  • Não é possível copiar um snapshot de tabela.

Cotas e limites

Saiba mais sobre cotas e limites que se aplicam a snapshots da tabela em Cotas e limites de snapshots da tabela.

A seguir