Retenção de dados com viagem no tempo e segurança contra falhas
Neste documento, descrevemos a janela de 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. Também é possível configurar um padrão no nível do projeto.
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:
TableID
was created at time which is before its allowed time travel intervaltimestamp
. 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ídadeletedTableID
em outra tabelarestoredTable
, no mesmo conjunto de dadosmyDatasetID
: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 bytes usados para viagem no tempo e armazenamento com segurança contra falhas serão cobrados separadamente. 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 para viagem no tempo e armazenamento com segurança contra falhas serão incluídos na taxa básica cobrada.
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) |
|
Armazenamento lógico (não compactado) (configuração padrão) |
|
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.
Os custos de armazenamento se aplicam a dados de viagem no tempo e à prova de falhas, mas você só vai receber cobranças se as taxas de armazenamento de dados não forem aplicadas em outro lugar no BigQuery. Os seguintes detalhes se aplicam:
- Quando uma tabela é criada, não há custo de viagem no tempo ou armazenamento com segurança contra falhas.
- Se os dados forem alterados ou excluídos, a cobrança será feita pelo armazenamento dos dados alterados ou excluídos salvos pela viagem no tempo durante a janela de viagem no tempo e o período de segurança contra falhas. Isso é semelhante ao preço de armazenamento para snapshots e clones de tabelas.
Exemplo de retenção de dados
A tabela a seguir mostra como os dados excluídos ou alterados são transferidos entre janelas de retenção de armazenamento. Este exemplo mostra uma situação em que o armazenamento ativo total é de 200 GiB e 50 GiB são excluídos com uma janela de viagem no tempo de sete dias:
Dia 0 | 1º dia | Dia 2 | 3º dia | Dia 4 | 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 viagem no tempo não é compatível com os seguintes tipos de tabela:
- Tabelas externas
- Tabelas de resultados de consulta temporárias em cache
- Tabelas de sessão temporárias
- Tabelas temporárias de várias instruções
- Tabelas listadas em conjuntos de dados externos.
A seguir
- Saiba como consultar e recuperar dados de viagem no tempo.
- Saiba mais sobre snapshots de tabela.