Tabellendaten mit der Datenbearbeitungssprache aktualisieren
Auf dieser Seite wird erläutert, wie Sie Daten in BigQuery-Tabellen mithilfe der Datenbearbeitungssprache (DML) aktualisieren bzw. löschen. Das Einfügen von Zeilen in vorhandene Tabellen mit DML wird hier nicht behandelt. Informationen zum Einfügen von Zeilen mit DML finden Sie in der DML-Syntaxreferenz im Abschnitt zur INSERT
-Anweisung.
Beachten Sie, dass es für DML in BigQuery einige Beschränkungen gibt. Für DML gelten außerdem eigene Preise.
Daten aktualisieren
Befolgen Sie die Anleitungen unten, indem Sie diese Beispieldatei verwenden, die eine Tabelle mit einer IP-Adressenspalte darstellt, die sich zur Anonymisierung maskieren lässt:
Mit den folgenden Schritten werden die Beispieldaten in eine Tabelle geladen und die Werte in der Spalte ip_address
aktualisiert:
Schritt 1: Laden Sie die JSON-Datei in eine Tabelle vom Typ UserSessions
.
Schritt 2: Führen Sie die folgende DML-Abfrage aus, um das letzte Oktett in der Spalte ip_address
jeder Zeile zu maskieren:
UPDATE sample_db.UserSessions SET ip_address = REGEXP_REPLACE(ip_address, r"(\.[0-9]+)$", ".0") WHERE TRUE
Java
Bevor Sie dieses Beispiel ausprobieren, folgen Sie den Schritten zur Einrichtung von Java in der BigQuery-Kurzanleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur BigQuery Java API.
Python
Bevor Sie dieses Beispiel ausprobieren, folgen Sie den Schritten zur Einrichtung von Python in der BigQuery-Kurzanleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Python API.
Daten löschen
Führen Sie die Anleitung unten mit den Beispieldateien aus – ein Dataset mit mehreren Tabellen mit Analysen für Nutzersitzungen und eine Tabelle mit Nutzern, die gelöscht werden sollen.
Mit den folgenden Schritten werden die Daten in drei Tabellen geladen. Danach werden die in der DeletedUsers-Tabelle aufgeführten Nutzer gelöscht.
Schritt 1: Laden Sie die JSON-Dateien in die Tabellen "DeletedUsers", "Users" bzw. "UserSessions".
Console
Maximieren Sie im Bereich Explorer Ihr Projekt und wählen Sie ein Dataset aus.
Maximieren Sie die Option
Aktionen und klicken Sie auf Öffnen.Klicken Sie im Detailfeld auf Tabelle erstellen.
Wählen Sie unter Tabelle erstellen aus die Option Hochladen aus.
Suchen Sie unter Datei auswählen nach der heruntergeladenen Datei und wählen Sie sie aus.
Wählen Sie für Dateiformat die Option JSON (durch Zeilenumbruch getrennt) aus.
Wählen Sie einen geeigneten Table name (Tabellenname) aus.
Klicken Sie unter Schema auf Add field (Feld hinzufügen), geben Sie für jede Spalte in der Tabelle einen Namen ein und wählen Sie den entsprechenden Typ aus.
- Klicken Sie auf Add field (Feld hinzufügen) und wiederholen Sie diesen Schritt, bis Sie alle Spalten in der Tabelle eingegeben haben.
Klicken Sie auf Create table (Tabelle erstellen).
Schemas für die Beispieltabellen:
- DeletedUsers
- Name
id
, TypINTEGER
- Name
- Nutzer
- Name
id
, TypINTEGER
- Name
date_joined
, TypTIMESTAMP
- Name
- UserSessions
- Name
id
, TypSTRING
- Name
user_id
, TypINTEGER
- Name
login_time
, TypTIMESTAMP
- Name
logout_time
, TypTIMESTAMP
- Name
ip_address
, TypSTRING
- Name
bq
Verwenden Sie den Befehl bq load
, um die Tabellen mit dem bq
-Befehlszeilentool zu erstellen. Geben Sie das Flag --location
an und legen Sie als Wert Ihren Standort fest. Das Flag --location
ist optional. Wenn Sie BigQuery beispielsweise in der Region asia-northeast1
(Tokio) verwenden, sieht der Ladebefehl so aus:
bq --location=asia-northeast1 load ...
So erstellen Sie die Tabelle DeleteUsers
:
bq --location=asia-northeast1 load \
--source_format=NEWLINE_DELIMITED_JSON \
sample_db.DeletedUsers \
deletedUsersData.json \
id:integer
So erstellen Sie die Tabelle Users
:
bq --location=asia-northeast1 load \
--source_format=NEWLINE_DELIMITED_JSON \
sample_db.Users \
usersData.json \
id:integer,date_joined:timestamp
So erstellen Sie die Tabelle 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
Schritt 2: Löschen Sie die Informationen zu den Nutzern in der Tabelle "DeletedUsers". Führen Sie dazu die folgenden DML-Abfragen aus:
So löschen Sie aus
UsersSessions
:DELETE FROM sample_db.UserSessions WHERE user_id in (SELECT id from sample_db.DeletedUsers)
So löschen Sie aus
Users
:DELETE FROM sample_db.Users WHERE id in (SELECT id from sample_db.DeletedUsers)
Tabellensicherheit
Informationen zum Steuern des Zugriffs auf Tabellen in BigQuery finden Sie unter Einführung in die Tabellenzugriffssteuerung.
Nächste Schritte
- DML-Referenzseite
- DML-Syntax und -Beispiele
- Weitere Informationen zu Transaktionen mit mehreren Anweisungen, mit denen Sie mehrere DML-Anweisungen ausführen und die Ergebnisse atomar festlegen können