Mettre à jour des données de table à l'aide du langage de manipulation de données
Cette page explique comment mettre à jour et supprimer des données dans les tables BigQuery à l'aide du langage de manipulation de données (LMD). Elle ne couvre pas l'ajout de lignes aux tables existantes avec le LMD. Pour plus d'informations à ce sujet, consultez l'instruction INSERT
dans la documentation de référence concernant la syntaxe LMD.
Notez que le LMD de BigQuery présente quelques limites. Le langage LMD dispose également de sa propre tarification.
Mettre à jour des données
Suivez les instructions ci-dessous en utilisant cet exemple de fichier. Il présente une table comportant une colonne d'adresses IP que vous souhaitez masquer pour l'anonymisation :
Les étapes suivantes permettent de charger les exemples de données dans une table et de mettre à jour les valeurs de la colonne ip_address
:
Étape 1. Chargez le fichier JSON dans une table UserSessions
.
Étape 2 : Pour masquer le dernier octet de la colonne ip_address
de chaque ligne, exécutez la requête LMD ci-dessous :
UPDATE sample_db.UserSessions SET ip_address = REGEXP_REPLACE(ip_address, r"(\.[0-9]+)$", ".0") WHERE TRUE
Java
Avant d'essayer l'exemple ci-dessous, suivez la procédure de configuration pour Java décrite dans le guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery Java.
Python
Avant d'essayer l'exemple ci-dessous, suivez la procédure de configuration pour Python décrite dans le guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery Python.
Supprimer des données
Suivez les instructions ci-dessous en utilisant les exemples de fichiers. Ils présentent un ensemble de données comportant plusieurs tables de données analytiques concernant les sessions d'utilisateur et une table d'utilisateurs à supprimer.
deletedUsersData.json
(télécharger)usersData.json
(télécharger)userSessionsData.json
(télécharger)
Les étapes suivantes permettent de charger les données dans trois tables, puis de supprimer les utilisateurs répertoriés dans la table DeletedUsers.
Étape 1. Chargez les fichiers JSON dans les tables DeletedUsers, Users et UserSessions.
Console
Dans le panneau Explorateur, développez votre projet et sélectionnez un ensemble de données.
Développez l'option
Actions puis cliquez sur Ouvrir.Dans le panneau de détails, cliquez sur Créer une table
.Dans le champ Create table from (Créer une table à partir de), sélectionnez Upload (Importer).
Dans le champ Select file (Sélectionner un fichier), recherchez et sélectionnez le fichier que vous avez téléchargé.
Dans le champ Format de fichier, sélectionnez JSON (délimité par un retour à la ligne).
Choisissez un nom de table approprié.
Sous Schéma, cliquez sur Ajouter un champ et saisissez un nom pour chaque colonne du tableau, puis sélectionnez le type approprié.
- Cliquez sur Ajouter un champ, et continuez jusqu'à ce que vous ayez saisi toutes les colonnes de votre table.
Cliquez sur Créer une table.
Les schémas des exemples de tables sont les suivants :
- DeletedUsers
- Nom :
id
; Type :INTEGER
- Nom :
- Users
- Nom :
id
; Type :INTEGER
- Nom :
date_joined
; Type :TIMESTAMP
- Nom :
- UserSessions
- Nom :
id
; Type :STRING
- Nom :
user_id
; Type :INTEGER
- Nom :
login_time
; Type :TIMESTAMP
- Nom :
logout_time
; Type :TIMESTAMP
- Nom :
ip_address
; Type :STRING
- Nom :
bq
Pour créer les tables à l'aide de l'outil de ligne de commande bq
, utilisez la commande bq load
. Spécifiez l'option --location
et définissez la valeur correspondant à votre emplacement. L'option --location
est facultative. Par exemple, si vous utilisez BigQuery dans la région asia-northeast1
(Tokyo), la commande de charge se présentera comme suit :
bq --location=asia-northeast1 load ...
Pour créer la table DeleteUsers
, procédez comme suit :
bq --location=asia-northeast1 load \
--source_format=NEWLINE_DELIMITED_JSON \
sample_db.DeletedUsers \
deletedUsersData.json \
id:integer
Pour créer la table Users
, procédez comme suit :
bq --location=asia-northeast1 load \
--source_format=NEWLINE_DELIMITED_JSON \
sample_db.Users \
usersData.json \
id:integer,date_joined:timestamp
Pour créer la table UserSessions
, procédez comme suit :
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
Étape 2 : Pour supprimer les informations sur les utilisateurs dans la table DeletedUsers, exécutez les requêtes LMD ci-dessous :
Supprimer de
UsersSessions
DELETE FROM sample_db.UserSessions WHERE user_id in (SELECT id from sample_db.DeletedUsers)
Supprimer de
Users
DELETE FROM sample_db.Users WHERE id in (SELECT id from sample_db.DeletedUsers)
Sécurité des tables
Pour savoir comment contrôler l'accès aux tables dans BigQuery, consultez la page Présentation des contrôles d'accès aux tables.
Étape suivante
- Consultez la page de référence sur le langage LMD.
- Reportez-vous à la page concernant la syntaxe LMD pour en savoir plus sur la syntaxe LMD et découvrir des exemples.
- Découvrez les transactions contenant plusieurs instructions, qui vous permettent d'exécuter plusieurs instructions LMD et de valider les résultats de manière atomique.