Aggiornare i dati della tabella utilizzando il linguaggio di manipolazione dei dati
Questa pagina illustra come aggiornare ed eliminare i dati nelle tabelle BigQuery utilizzando il linguaggio di manipolazione dei dati (DML). Questa pagina non riguarda l'aggiunta di righe a tabelle esistenti utilizzando DML. Per informazioni sull'aggiunta di righe utilizzando DML, consulta
l'istruzione INSERT
nel riferimento alla sintassi DML.
Tieni presente che DML in BigQuery ha alcune limitazioni. DML ha anche i propri prezzi.
Aggiornamento dei dati in corso...
Segui le istruzioni riportate di seguito utilizzando questo file di esempio, che rappresenta una tabella con una colonna di indirizzi IP che vuoi mascherare per l'anonimizzazione:
I seguenti passaggi caricano i dati di esempio in una tabella e aggiorna i valori nella colonna ip_address
:
Passaggio 1: Carica il file JSON in una tabella UserSessions
.
Passaggio 2: Per mascherare l'ultimo ottetto in ogni colonna ip_address
della riga, esegui la seguente query DML:
UPDATE sample_db.UserSessions SET ip_address = REGEXP_REPLACE(ip_address, r"(\.[0-9]+)$", ".0") WHERE TRUE
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella Guida di BigQuery per l'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Java di BigQuery.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida di BigQuery che utilizza le librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Python BigQuery.
Eliminazione di dati
Segui le istruzioni riportate di seguito utilizzando i file di esempio, che rappresentano un set di dati con più tabelle di dati e analisi per le sessioni utente e una tabella di utenti da eliminare.
I seguenti passaggi caricano i dati in tre tabelle, quindi elimina gli utenti elencati nella tabella deletedUsers.
Passaggio 1: Carica i file JSON rispettivamente nelle tabelle Users, Utenti e UserSession.
Console
Nel riquadro Explorer, espandi il progetto e seleziona un set di dati.
Espandi l'opzione
Azioni e fai clic su Apri.Nel riquadro dei dettagli, fai clic su Crea tabella
.Per Crea tabella da, seleziona Carica.
In Seleziona file, cerca e seleziona il file che hai scaricato.
Seleziona JSON (newline delimitati) per il Formato file.
Scegli un Nome tabella appropriato.
In Schema fai clic su Aggiungi campo e inserisci un Nome per ogni colonna nella tabella e seleziona il Tipo appropriato.
- Fai clic su Aggiungi campo e ripeti questi passaggi fino a inserire tutte le colonne nella tabella.
Fai clic su Crea tabella.
Gli schemi per le tabelle di esempio sono:
- Utente eliminato
- Nome
id
, tipoINTEGER
- Nome
- Utenti
- Nome
id
, tipoINTEGER
- Nome
date_joined
, tipoTIMESTAMP
- Nome
- Sessioni utente
- Nome
id
, tipoSTRING
- Nome
user_id
, tipoINTEGER
- Nome
login_time
, tipoTIMESTAMP
- Nome
logout_time
, tipoTIMESTAMP
- Nome
ip_address
, tipoSTRING
- Nome
bq
Per utilizzare lo strumento a riga di comando bq
per creare le tabelle, utilizza il comando bq load
. Fornisci il flag --location
e imposta il valore sulla tua località. Il flag
--location
è facoltativo. Ad esempio, se utilizzi BigQuery nell'area geografica asia-northeast1
(Tokyo), il comando load dovrebbe avere il seguente aspetto:
bq --location=asia-northeast1 load ...
Per creare la tabella DeleteUsers
bq --location=asia-northeast1 load \
--source_format=NEWLINE_DELIMITED_JSON \
sample_db.DeletedUsers \
deletedUsersData.json \
id:integer
Per creare la tabella Users
bq --location=asia-northeast1 load \
--source_format=NEWLINE_DELIMITED_JSON \
sample_db.Users \
usersData.json \
id:integer,date_joined:timestamp
Per creare la tabella 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
Passaggio 2: Per eliminare le informazioni sugli utenti nella tabella deletedUsers. Esegui le seguenti query DML:
Elimina da
UsersSessions
DELETE FROM sample_db.UserSessions WHERE user_id in (SELECT id from sample_db.DeletedUsers)
Elimina da
Users
DELETE FROM sample_db.Users WHERE id in (SELECT id from sample_db.DeletedUsers)
Sicurezza tavoli
Per controllare l'accesso alle tabelle in BigQuery, consulta Introduzione ai controlli di accesso alla tabella.
Passaggi successivi
- Consulta la pagina Riferimento DML.
- Consulta la sintassi e gli esempi DML nella pagina Sintassi DML.
- Scopri le transazioni multi-affermazione, che ti consentono di eseguire diverse istruzioni DML e di eseguire il commit dei risultati in modo atomico.