Trabalhe com o histórico de alterações
O histórico de alterações do BigQuery permite-lhe acompanhar o histórico de alterações a uma tabela do BigQuery. Pode usar as funções do GoogleSQL para ver tipos específicos de alterações feitas durante um intervalo de tempo especificado, de modo a poder processar alterações incrementais feitas a uma tabela. Compreender as alterações feitas a uma tabela pode ajudar a realizar ações como manter incrementalmente uma réplica da tabela fora do BigQuery, evitando cópias dispendiosas.
Autorizações necessárias
Para ver o histórico de alterações numa tabela, precisa da bigquery.tables.getData
autorização nessa tabela. As seguintes funções de gestão de identidade e de acesso (IAM) predefinidas incluem esta autorização:
roles/bigquery.dataViewer
roles/bigquery.dataEditor
roles/bigquery.dataOwner
roles/bigquery.admin
Se uma tabela tiver ou tiver tido políticas de acesso ao nível da linha, apenas um administrador da tabela pode aceder aos dados do histórico da tabela. A autorização bigquery.rowAccessPolicies.overrideTimeTravelRestrictions
é necessária na tabela e está incluída na roles/bigquery.admin
função de IAM predefinida.
Se uma tabela tiver segurança ao nível da coluna, só pode ver o histórico de alterações nas colunas às quais tem acesso.
Funções do histórico de alterações
Pode usar as seguintes funções para compreender o histórico de alterações de uma tabela:
APPENDS
: devolve todas as linhas anexadas a uma tabela para o intervalo de tempo especificado.As seguintes operações adicionam linhas ao
APPENDS
histórico de alterações:CHANGES
: devolve todas as linhas que foram alteradas numa tabela para um determinado intervalo de tempo. Para usar a funçãoCHANGES
numa tabela, tem de definir a opçãoenable_change_history
da tabela comoTRUE
.As seguintes operações adicionam linhas ao
CHANGES
histórico de alterações:CREATE TABLE
Declaração DDLINSERT
Instrução DML- Dados anexados ou alterados como parte de uma
MERGE
instrução DML UPDATE
Instrução DMLDELETE
Instrução DML- Carregar dados para o BigQuery
- Carregamento de streaming
TRUNCATE TABLE
Instrução DML- Tarefas configuradas com um
writeDisposition
deWRITE_TRUNCATE
- Eliminações de partições de tabelas individuais
Preços e custos
A invocação de funções do histórico de alterações implica custos de computação do BigQuery.
As funções APPENDS
e CHANGES
requerem o processamento de todos os dados escritos na tabela dentro do intervalo de tempo especificado. Este processamento aplica-se a todas as escritas, incluindo operações de anexação e mutação.
Definir a opção enable_change_history
de uma tabela como FALSE
não reduz os dados processados pelo APPENDS
.
Quando define a opção enable_change_history
numa tabela como TRUE
para usar a função CHANGES
, o BigQuery armazena metadados de alteração da tabela. Estes metadados armazenados
incorrem em custos de armazenamento do BigQuery
e custos de computação do BigQuery adicionais.
O valor faturado depende do número e do tipo de alterações feitas à tabela e, normalmente, é pequeno. As tabelas com muitas operações de alteração, especialmente eliminações grandes, são as que têm maior probabilidade de incorrer em custos notórios.