Como atualizar dados de tabela usando a linguagem de manipulação de dados
Nesta página, você aprenderá a atualizar e excluir dados nas 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.
Há algumas limitações de DML no BigQuery. Além disso, a DML tem os próprios 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
Java
Antes de testar esta amostra, siga as instruções de configuração do Java no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Java.
Python
Antes de testar esta amostra, siga as instruções de configuração para Python no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Python.
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.
deletedUsersData.json
(faça o download)usersData.json
(faça o download)userSessionsData.json
(faça o download)
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
No painel Explorer, expanda o projeto e selecione um conjunto de dados.
Expanda a opção
Ações e clique em Abrir.No painel de detalhes, clique em Criar tabela
.Em Criar tabela de, selecione Fazer upload.
Em Selecionar arquivo, procure e selecione o arquivo que você salvou.
Selecione JSON (delimitado por nova linha) em Formato de arquivo.
Escolha uma opção apropriada para o Nome da tabela.
Em Esquema, clique em Adicionar campo, insira um Nome em cada coluna da tabela e selecione o Tipo apropriado.
- Clique em Adicionar campo e repita até ter inserido todas as colunas na tabela.
Clique em Criar tabela.
Os esquemas das tabelas de amostra são:
- DeletedUsers
- Nome
id
, TipoINTEGER
- Nome
- Users
- Nome
id
, TipoINTEGER
- Nome
date_joined
, TipoTIMESTAMP
- Nome
- UserSessions
- Nome
id
, TipoSTRING
- Nome
user_id
, TipoINTEGER
- Nome
login_time
, TipoTIMESTAMP
- Nome
logout_time
, TipoTIMESTAMP
- Nome
ip_address
, TipoSTRING
- Nome
bq
Para usar a ferramenta de linha de comando bq
para criar as 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", faça estas consultas da 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)
Segurança de tabelas
Para controlar o acesso a tabelas no BigQuery, consulte Introdução aos controles de acesso a tabelas.
A seguir
- Consulte a página Referência do DML.
- Veja a sintaxe e exemplos do DML na página Sintaxe do DML.
- Saiba mais sobre as transações com várias instruções, que permitem executar várias instruções DML e confirmar os resultados atomicamente.