Retenção de dados com viagem no tempo e segurança contra falhas

Neste documento, descrevemos a retenção de dados viagem no tempo e segurança contra falhas para conjuntos de dados. Durante a viagem no tempo e os períodos de segurança contra falhas, os dados que você alterou ou excluiu em qualquer tabela no conjunto de dados continuam sendo armazenados caso seja necessário recuperá-los.

Viagem no tempo

É possível acessar os dados de qualquer ponto na janela de viagem no tempo, que abrange os últimos sete dias. Com a viagem no tempo, é possível consultar dados que foram atualizados ou excluídos, restaurar uma tabela ou conjunto de dados que foi excluída ou restaurar uma tabela que expirou.

Configurar a janela de viagem no tempo

Você pode definir a duração da janela de viagem no tempo, de um mínimo de dois dias até um máximo de sete dias. Sete dias é o padrão. Defina essa janela no nível do conjunto de dados, que será aplicada a todas as tabelas do conjunto de dados.

Você pode ajustar a duração da janela de viagem no tempo nos casos em que é importante ter um tempo maior para recuperar dados atualizados ou excluídos e para ser menor quando não for necessário. Usar uma janela de viagem no tempo mais curta permite economizar em custos de armazenamento ao utilizar o modelo de faturamento de armazenamento físico. Essa economia não se aplica ao uso do modelo de faturamento do armazenamento lógico.

Para mais informações sobre como o modelo de faturamento de armazenamento afeta o custo, consulte Faturamento.

Como a janela de viagem no tempo afeta a recuperação de tabelas e conjuntos de dados

Uma tabela ou conjunto de dados excluído usa a duração da janela de viagem no tempo que estava em vigor no momento da exclusão.

Por exemplo, se você tiver uma duração de janela de viagem de dois dias e aumentar a duração para sete dias, as tabelas excluídas antes dessa alteração ainda poderão ser recuperadas por dois dias. Da mesma forma, se você tiver uma duração de janela de viagem de cinco dias e reduzir para três dias, todas as tabelas excluídas antes da alteração ainda poderão ser recuperadas por cinco dias.

Como as janelas de viagem no tempo são definidas no nível do conjunto de dados, não é possível alterar a janela de viagem no tempo de um conjunto de dados excluído até que a exclusão seja cancelada.

Se você reduzir a duração da janela de viagem no tempo, excluir uma tabela e perceber que precisa de um período mais longo para recuperar esses dados, poderá criar um snapshot da tabela a partir de um momento anterior à exclusão da tabela. Faça isso enquanto a tabela excluída ainda puder ser recuperada. Para mais informações, consulte Criar um snapshot da tabela usando a viagem no tempo.

Especifique uma janela de viagem no tempo

É possível usar o console do Google Cloud, a ferramenta de linha de comando bq ou a API BigQuery para especificar a janela de viagem no tempo de um conjunto de dados.

Para instruções sobre como especificar a janela de viagem no tempo para um novo conjunto de dados, consulte Criar conjuntos de dados.

Para ver instruções sobre como atualizar a janela de viagem no tempo para um conjunto de dados existente, consulte Atualizar janelas de viagem no tempo.

Se o carimbo de data/hora especificar um horário fora da janela de viagem no tempo ou de antes da criação da tabela, a consulta falhará e retornará um erro como este:

Table ID was created at time which is
before its allowed time travel interval timestamp. Creation
time: timestamp

Viagem no tempo e acesso no nível da linha

Se uma tabela tiver ou teve políticas de acesso no nível da linha, somente um administrador poderá acessar os dados históricos da tabela.

A seguinte permissão do gerenciamento de identidade e acesso (IAM) é necessária:

Permissão Recurso
bigquery.rowAccessPolicies.overrideTimeTravelRestrictions A tabela cujos dados históricos estão sendo acessados

O papel do BigQuery a seguir fornece a permissão necessária:

Papel Recurso
roles/bigquery.admin A tabela cujos dados históricos estão sendo acessados

Não é possível adicionar a permissão bigquery.rowAccessPolicies.overrideTimeTravelRestrictions a um papel personalizado.

  • Execute o comando a seguir para mostrar o horário da época Unix equivalente:

    date -d '2023-08-04 16:00:34.456789Z' +%s000
    
  • Substitua o 1691164834000 do horário de época do UNIX recebido do comando anterior na ferramenta de linha de comando bq. Execute o seguinte comando para restaurar uma cópia da tabela excluída deletedTableID em outra tabela restoredTable, no mesmo conjunto de dados myDatasetID:

    bq cp myProjectID:myDatasetID.deletedTableID@1691164834000 myProjectID:myDatasetID.restoredTable
    

Segurança contra falhas

O BigQuery oferece um período de segurança contra falhas. Durante esse período, os dados excluídos são retidos automaticamente por mais sete dias após a janela de viagem no tempo para que eles fiquem disponíveis em caso de uma recuperação de emergência. Os dados podem ser recuperados no nível da tabela. Os dados de uma tabela são recuperados a partir do momento representado pelo carimbo de data/hora de quando essa tabela foi excluída. O período de segurança contra falhas não é configurável.

Não é possível consultar ou recuperar dados diretamente no armazenamento com segurança contra falhas. Para recuperar dados do armazenamento com segurança contra falhas, entre em contato com o Cloud Customer Care.

Faturamento

Se você definir o modelo de faturamento de armazenamento para usar bytes físicos, os custos totais de armazenamento cobrados incluirão os bytes usados para viagem no tempo e armazenamento com segurança contra falhas. O tempo de deslocamento e o armazenamento com proteção contra falhas são cobrados de acordo com a taxa de armazenamento físico ativo. É possível configurar a janela de tempo para equilibrar os custos de armazenamento com as necessidades de retenção de dados.

Se você definir o modelo de faturamento de armazenamento para usar bytes lógicos, os custos totais de armazenamento que serão cobrados não incluirão os bytes usados para viagem no tempo e armazenamento com segurança contra falhas.

A tabela a seguir mostra uma comparação entre os custos de armazenamento físico e lógico:

Modelo de faturamento Pelo que você paga?
Armazenamento físico (compactado)
  • Você paga por bytes ativos
  • Você paga pelo armazenamento de longo prazo
  • Você paga pelo armazenamento de viagens no tempo
  • Você paga pelo armazenamento à prova de falhas
Armazenamento lógico (não compactado) (configuração padrão)
  • O armazenamento ativo é pago
  • Você paga pelo armazenamento de longo prazo
  • Você não paga pelo armazenamento de viagens no tempo
  • Você não paga pelo armazenamento à prova de falhas

No armazenamento físico, é possível conferir os bytes usados pela viagem no tempo e usar um método de segurança contra falhas nas colunas TIME_TRAVEL_PHYSICAL_BYTES e FAIL_SAFE_PHYSICAL_BYTES nas visualizações TABLE_STORAGE e TABLE_STORAGE_BY_ORGANIZATION. Para um exemplo de como usar uma dessas visualizações para estimar seus custos, consulte Faturamento de armazenamento de previsão.

Exemplo de armazenamento físico

A tabela a seguir mostra como os dados excluídos são cobrados quando você usa o armazenamento físico. Este exemplo mostra uma situação em que o armazenamento físico ativo total é de 200 GiB, depois 50 GiB são excluídos e a janela de viagem no tempo é de sete dias:

Dia 0 1º dia 2º dia 3º dia 4º dia 5º dia Dia 6 Dia 7 8º dia Dia 9 10º dia Dia 11 Dia 12 Dia 13 Dia 14 Dia 15
Armazenamento ativo 200 150 150 150 150 150 150 150 150 150 150 150 150 150 150 150
Armazenamento de viagem no tempo 50 50 50 50 50 50 50
Armazenamento à prova de falhas 50 50 50 50 50 50 50

A exclusão de dados do armazenamento físico de longo prazo funciona da mesma forma.

Limitações

  • A viagem no tempo só fornece acesso a dados históricos durante o período da viagem no tempo. Para preservar os dados da tabela para fins não emergenciais por mais tempo do que o período de viagem no tempo, use snapshots de tabela.
  • Se uma tabela tiver ou teve políticas de acesso no nível da linha, essa viagem só poderá ser usada pelos administradores da tabela. Para mais informações, consulte Viagem no tempo e acesso no nível da linha.
  • A viagem no tempo não restaura os metadados da tabela.

A seguir