Introdução aos clones de tabela

Este documento fornece uma visão geral dos clones de tabela no BigQuery. Ele é destinado a usuários que já conhecem o BigQuery e as tabelas do BigQuery.

Um clone de tabela é uma cópia leve e gravável de outra tabela (chamada de tabela base). A cobrança é feita apenas pelo armazenamento de dados no clone de tabela que é diferente da tabela base. Portanto, inicialmente não há custo de armazenamento para um clone da tabela. Além do modelo de faturamento para armazenamento e de alguns metadados adicionais para a tabela base, um clone de tabela é semelhante a uma tabela padrão. É possível consultá-lo, copiá-lo, excluí-lo e assim por diante.

Veja a seguir alguns casos de uso comuns:

  • Criar cópias de tabelas de produção que podem ser usadas para desenvolvimento e testes.
  • Criar sandboxes para que os usuários gerem as próprias análises e manipulações de dados, sem copiar fisicamente todos os dados de produção. Somente os dados alterados são faturados.

Após a criação de um clone de tabela, o clone é independente da tabela base. Nenhuma alteração feita na tabela base ou no clone da tabela será refletida no outro.

Se você precisar de cópias leves somente leitura das suas tabelas, use os snapshots da tabela.

Metadados de clone de tabela

Um clone de tabela tem os mesmos metadados que uma tabela padrão, além do seguinte:

  • O projeto, o conjunto de dados e o nome da tabela base do clone da tabela.
  • A hora da operação de clone de tabela. Se viagem de tempo for usada para criar o clone da tabela, esse será o carimbo de data/hora de viagem do tempo.

Para mais informações, consulte INFORMATION_SCHEMA.TABLES.

Operações de clone de tabela

Em geral, use clones de tabela da mesma maneira que usa tabelas padrão, incluindo as seguintes operações:

  • Consulta
  • Controle de acesso
  • Buscar metadados
  • Particionamento e agrupamento em cluster
  • Como trabalhar com esquemas
  • Excluindo

No entanto, a criação de um clone de tabela é diferente da criação de uma tabela padrão. Para mais informações, consulte Criar clones de tabela.

Custos de armazenamento

Os custos de armazenamento se aplicam a clones de tabela, mas o BigQuery cobra apenas pelos dados em um clone de tabela que ainda não tenha sido cobrado:

  • Quando um clone de tabela é criado, não há custo de armazenamento inicial para o clone de tabela.

  • Se os dados forem adicionados ou alterados em um clone de tabela, a cobrança será feita pelo armazenamento dos dados adicionados ou atualizados.

  • Se os dados forem alterados ou excluídos na tabela base que também existe em um clone de tabela, a cobrança será feita pelo armazenamento do clone de tabela dos dados alterados ou excluídos. Se houver vários clones que contenham os dados alterados ou excluídos, você só será cobrado pelo armazenamento usado pelo clone mais antigo.

  • Se os dados forem adicionados à tabela base após a criação do clone da tabela, você não será cobrado pelo armazenamento desses dados, mas sim pela tabela base.

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

Exemplo de faturamento de clone de tabela

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

Limitações

  • Você pode clonar uma tabela entre conjuntos de dados no mesmo projeto e entre conjuntos de dados em projetos diferentes. No entanto, o conjunto de dados de destino do clone da tabela precisa estar na mesma região e na mesma organização que a tabela sendo clonada. Por exemplo, não é possível clonar uma tabela de um conjunto de dados baseado na UE em um conjunto de dados baseado nos EUA.
  • Não é possível criar um clone dos dados de uma tabela porque isso ocorreu mais do que a duração da janela de viagem no tempo do conjunto de dados da tabela.
  • Não é possível criar um clone de uma visualização ou de uma visualização materializada.
  • Não é possível criar um clone de uma tabela externa.
  • Não é possível substituir uma tabela ou um clone de tabela existentes ao criar um clone da tabela. Para limitações específicas, consulte Nomenclatura de tabelas.
  • Se você clonar uma tabela que tem dados no armazenamento otimizado para gravação (o buffer de streaming para linhas transmitidas recentemente), os dados no armazenamento otimizado para gravação não serão incluídos no clone da tabela.
  • Se você clonar uma tabela que tenha dados em viagem no tempo, esses dados não serão incluídos no clone da tabela.
  • Os clones de tabela não podem ser distinguidos das tabelas padrão no painel Explorer. No entanto, é possível identificar um clone de tabela em uma tabela padrão olhando os detalhes da tabela. Os detalhes do clone da tabela têm uma seção Informações da tabela base que as tabelas padrão não têm.
  • Não é possível usar uma operação de clone para anexar dados a uma tabela existente. Por exemplo, não é possível usar as configurações de sinalização --append_table=true e --clone=true no mesmo comando bq cp. Para anexar dados ao duplicar uma tabela, use uma operação de cópia.
  • Quando você cria um clone da tabela, o nome precisa seguir as mesmas convenções de nomenclatura de quando você cria uma tabela.
  • A criação de clones de tabelas está sujeita aos limites do BigQuery nos jobs de cópia.
  • O tempo que o BigQuery leva para criar clones de tabelas pode variar significativamente em diferentes execuções, porque o armazenamento subjacente é gerenciado dinamicamente.

Cotas e limites

Os clones de tabelas estão sujeitos às mesmas cotas e aos mesmos limites que as tabelas padrão. Para mais informações, consulte Cotas e limites de tabela. Elas também têm limites de clone de tabela aplicáveis.

A seguir