Atualizar metadados de snapshot da tabela

Veja neste documento como atualizar a descrição, a data de validade ou a política de acesso de um snapshot de tabela usando o Console do Google Cloud, o comando bq update ou a API tables.patch. Ele se destina a usuários que já conhecem tabelas e snapshots de tabelas no BigQuery.

Permissões e papéis

Esta seção descreve os Permissões de gerenciamento de identidade e acesso (IAM) você precisa atualizar os metadados de um snapshot da tabela e papéis predefinidos do IAM que concedem essas permissões.

Permissões

Para atualizar os metadados de um snapshot de tabela, você precisa da seguinte permissão:

Permissão Recurso
bigquery.tables.update O snapshot da tabela

Papéis

Os papéis predefinidos do BigQuery que fornecem a permissão necessária são os seguintes:

Papel Recurso
Qualquer um dos seguintes:

bigquery.dataEditor
bigquery.dataOwner
biguqery.admin
O snapshot da tabela

Limitações

É possível atualizar os metadados de um snapshot de tabela, mas não os dados porque os dados de snapshot da tabela são somente leitura. Para atualizar os dados de um snapshot da tabela, restaure o snapshot da tabela para uma tabela padrão e, em seguida, atualize os dados da tabela padrão. Para mais informações, consulte Como restaurar snapshots de tabelas.

Atualizar metadados do snapshot de uma tabela

É possível alterar a descrição, a validade e as políticas de acesso de um snapshot de tabela da mesma forma que os metadados de uma tabela padrão. Veja alguns exemplos nas seções a seguir.

Atualizar a descrição

É possível alterar a descrição de um snapshot da tabela usando uma das seguintes opções:

Console

  1. No Console do Google Cloud, acesse a página BigQuery.

    Ir para o BigQuery

  2. No painel Explorer, expanda os nós do projeto e do conjunto de dados do snapshot da tabela que você quer atualizar.

  3. Clique no nome do snapshot da tabela.

  4. No painel de snapshot que aparece, clique na guia Detalhes e em Editar detalhes.

  5. No campo Descrição, adicione ou atualize a descrição do snapshot da tabela.

  6. Clique em Save.

bq

Digite o seguinte comando no Cloud Shell:

Acesse o Cloud Shell

bq update \
--description="DESCRIPTION" \
PROJECT_ID:DATASET_NAME.SNAPSHOT_NAME

Substitua:

  • DESCRIPTION: texto que descreve o snapshot. Por exemplo, Snapshot after table schema change X..
  • PROJECT_ID: o ID do projeto que contém o snapshot
  • DATASET_NAME: o nome do conjunto de dados que contém o snapshot.
  • SNAPSHOT_NAME: o nome do snapshot.

API

Chame o método tables.patch com os seguintes parâmetros:

Parâmetro Valor
projectId O ID do projeto que contém o snapshot.
datasetId O nome do conjunto de dados que contém o snapshot.
tableId O nome do snapshot.
Campo description do corpo da solicitação Texto que descreve o snapshot. Por exemplo, Snapshot after table schema change X.

Prefira o método tables.patch ao tables.update, porque o método tables.update substitui todo o recurso Table.

Atualizar a validade

É possível alterar a expiração de um snapshot da tabela usando uma das seguintes opções:

Console

  1. No Console do Google Cloud, acesse a página BigQuery.

    Ir para o BigQuery

  2. No painel Explorer, expanda os nós do projeto e do conjunto de dados do snapshot da tabela que você quer atualizar.

  3. Clique no nome do snapshot da tabela.

  4. No painel de snapshot que aparece, clique na guia Detalhes e em Editar detalhes.

  5. No campo Prazo de validade, insira o novo prazo de validade do snapshot da tabela.

  6. Clique em Save.

bq

Digite o seguinte comando no Cloud Shell:

Acesse o Cloud Shell

bq update \
--expiration=EXPIRATION_TIME \
PROJECT_ID:DATASET_NAME.SNAPSHOT_NAME

Substitua:

  • EXPIRATION_TIME: o número de segundos entre o horário atual e o prazo de validade.
  • PROJECT_ID: o ID do projeto que contém o snapshot
  • DATASET_NAME: o nome do conjunto de dados que contém o snapshot.
  • SNAPSHOT_NAME: o nome do snapshot.

API

Chame o método tables.patch com os seguintes parâmetros:

Parâmetro Valor
projectId O ID do projeto que contém o snapshot.
datasetId O nome do conjunto de dados que contém o snapshot.
tableId O nome do snapshot.
Campo expirationTime do corpo da solicitação O tempo em que o snapshot expira, em milissegundos desde o período.

Prefira o método tables.patch ao tables.update, porque o método tables.update substitui todo o recurso Table.

Atualizar o acesso

É possível dar a um usuário acesso para visualizar dados em um snapshot da tabela usando uma das seguintes opções:

Console

  1. No Console do Google Cloud, acesse a página BigQuery.

    Ir para o BigQuery

  2. No painel Explorer, expanda os nós do projeto e do conjunto de dados do snapshot da tabela que você quer atualizar.

  3. Clique no nome do snapshot da tabela.

  4. No painel de snapshot que aparece, clique em Compartilhar e, em seguida, clique em Adicionar participante.

  5. No painel Adicionar principais exibido, insira o identificador do principal que você quer conceder acesso ao snapshot da tabela.

  6. No menu suspenso Selecionar um papel, escolha BigQuery e depois Leitor de dados do BigQuery.

  7. Clique em Save.

bq

Digite o seguinte comando no Cloud Shell:

Acesse o Cloud Shell

bq add-iam-policy-binding \
    --member="user:PRINCIPAL" \
    --role="roles/bigquery.dataViewer" \
    PROJECT_ID:DATASET_NAME.SNAPSHOT_NAME

Substitua:

  • PRINCIPAL: a principal a que você quer conceder acesso ao snapshot da tabela.
  • PROJECT_ID: o ID do projeto que contém o snapshot
  • DATASET_NAME: o nome do conjunto de dados que contém o snapshot.
  • SNAPSHOT_NAME: o nome do snapshot.

API

Chame o método tables.setIamPolicy com os seguintes parâmetros:

Parâmetro Valor
Resource

projects/PROJECT_ID/datasets/DATASET_NAME/tables/SNAPSHOT_NAME
Corpo da solicitação

{
      "policy": {
        "bindings": [
          {
            "members": [
              "user:PRINCIPAL"
            ],
            "role": "roles/bigquery.dataViewer"
          }
        ]
      }
    }

Substitua:

  • PROJECT_ID: o ID do projeto que contém o snapshot
  • DATASET_NAME: o nome do conjunto de dados que contém o snapshot.
  • SNAPSHOT_NAME: o nome do snapshot.
  • PRINCIPAL: a principal a que você quer conceder acesso ao snapshot da tabela.

A seguir