Como atualizar dados de tabela usando a linguagem de manipulação de dados

Nesta página, você aprenderá a atualizar e excluir dados em tabelas do BigQuery usando a linguagem de manipulação de dados (DML). A adição de linhas em tabelas atuais com a DML não foi incluída neste documento. Para informações sobre como adicionar linhas usando a DML, consulte a instrução INSERT na referência de sintaxe da DML.

algumas limitações e problemas conhecidos relacionados à DML no BigQuery. Além disso, a DML tem valores próprios de cotas e preços.

Como atualizar dados

Acompanhe as instruções a seguir usando este arquivo de amostra, que representa uma tabela com uma coluna de endereços IP que você quer mascarar para anonimização:

Nas etapas a seguir, os dados de amostra são carregados em uma tabela e os valores são atualizados na coluna ip_address:

Etapa 1: carregue o arquivo JSON em uma tabela UserSessions.

Etapa 2: para mascarar o último octeto na coluna ip_address de cada linha, execute a seguinte consulta DML:

UPDATE sample_db.UserSessions
SET ip_address = REGEXP_REPLACE(ip_address, r"(\.[0-9]+)$", ".0")
WHERE TRUE

Como excluir dados

Acompanhe as instruções a seguir usando os arquivos de amostra, que representam um conjunto de dados com várias tabelas analíticas referentes a sessões do usuário e uma tabela de usuários para exclusão.

Nas etapas a seguir, os dados são carregados em três tabelas e os usuários listados na tabela "DeletedUsers" são excluídos.

Etapa 1: carregue os arquivos JSON nas tabelas "DeletedUsers", "Users" e "UserSessions", respectivamente.

Console

  1. Abra o Console do Cloud.
  2. Selecione o conjunto de dados na lista Recursos.
  3. Clique em Criar tabela.

    Criar tabela

  4. Em Criar tabela de, selecione Fazer upload.

  5. Em Selecionar arquivo, procure e selecione o arquivo que você salvou.

    Procurar arquivos

  6. Em Formato de arquivo, selecione JSON (delimitado por nova linha).

  7. Escolha uma opção apropriada para o Nome da tabela.

  8. Em Esquema, clique em Adicionar campo, insira um Nome para cada coluna da tabela e selecione o Tipo apropriado.

    • Clique em Adicionar campo e repita até ter inserido todas as colunas na tabela.
  9. Clique em Criar tabela.

Os esquemas das tabelas de amostra são:

  • DeletedUsers
    • Nome id, Tipo INTEGER
  • Users
    • Nome id, Tipo INTEGER
    • Nome date_joined, Tipo TIMESTAMP
  • UserSessions
    • Nome id, Tipo STRING
    • Nome user_id, Tipo INTEGER
    • Nome login_time, Tipo TIMESTAMP
    • Nome logout_time, Tipo TIMESTAMP
    • Nome ip_address, Tipo STRING

IU clássica

  1. Abra a IU da Web do BigQuery.
  2. Passe o cursor sobre o código do conjunto de dados.
  3. Clique na seta ao lado do código do conjunto de dados. Seta ao lado do nome do conjunto de dados
  4. Clique em Criar nova tabela.
  5. Selecione Upload de arquivo para o Local.
  6. Em Formato de arquivo, selecione JSON (delimitado por nova linha).
  7. Escolha o Nome da tabela.
  8. Em Esquema, digite um Nome para cada coluna na tabela e selecione o Tipo apropriado.

    • Clique em Adicionar campo e repita até ter inserido todas as colunas na tabela.
  9. Clique em Criar tabela.

Os esquemas das tabelas de amostra são:

  • DeletedUsers
    • Nome id, Tipo INTEGER
  • Users
    • Nome id, Tipo INTEGER
    • Nome date_joined, Tipo TIMESTAMP
  • UserSessions
    • Nome id, Tipo STRING
    • Nome user_id, Tipo INTEGER
    • Nome login_time, Tipo TIMESTAMP
    • Nome logout_time, Tipo TIMESTAMP
    • Nome ip_address, Tipo STRING

CLI

Para fazer com que a ferramenta de linha de comando bq crie tabelas, use o comando bq load. Forneça a sinalização --location e defina o valor como seu local. A sinalização --location é opcional. Por exemplo, se você estiver usando BigQuery na região asia-northeast1 (Tóquio), o comando de carregamento será semelhante a este:

bq --location=asia-northeast1 load ...

Para criar a tabela DeleteUsers

bq --location=asia-northeast1 load \
--source_format=NEWLINE_DELIMITED_JSON \
sample_db.DeletedUsers \
deletedUsersData.json \
id:integer

Para criar a tabela Users

bq --location=asia-northeast1 load \
--source_format=NEWLINE_DELIMITED_JSON \
sample_db.Users \
usersData.json \
id:integer,date_joined:timestamp

Para criar a tabela UserSessions

bq --location=asia-northeast1 load \
--source_format=NEWLINE_DELIMITED_JSON \
sample_db.UserSessions \
userSessionsData.json \
id:string,user_id:integer,login_time:timestamp,logout_time:timestamp,ip_address:string

Etapa 2: para excluir as informações sobre os usuários na tabela "DeletedUsers", execute estas consultas DML:

  • Excluir do UsersSessions

    DELETE FROM sample_db.UserSessions
    WHERE user_id in (SELECT id from sample_db.DeletedUsers)
    
  • Excluir do Users

    DELETE FROM sample_db.Users
    WHERE id in (SELECT id from sample_db.DeletedUsers)
    

A seguir