Änderungsverlauf verwenden
Mit dem BigQuery-Änderungsverlauf können Sie den Änderungsverlauf einer BigQuery-Tabelle verfolgen. Sie können GoogleSQL-Funktionen verwenden, um bestimmte Arten von Änderungen zu sehen, die während eines bestimmten Zeitraums vorgenommen wurden. So können Sie inkrementelle Änderungen an einer Tabelle verarbeiten. Wenn Sie wissen, welche Änderungen an einer Tabelle vorgenommen wurden, können Sie beispielsweise ein Tabellenreplikat inkrementell außerhalb von BigQuery pflegen und teure Kopien vermeiden.
Erforderliche Berechtigungen
Zum Aufrufen des Änderungsverlaufs einer Tabelle benötigen Sie die Berechtigung bigquery.tables.getData für diese Tabelle. Die folgenden vordefinierten IAM-Rollen (Identity and Access Management) enthalten diese Berechtigung:
roles/bigquery.dataViewerroles/bigquery.dataEditorroles/bigquery.dataOwnerroles/bigquery.admin
Wenn eine Tabelle Zugriffsrichtlinien auf Zeilenebene hat oder hatte, kann nur ein Tabellenadministrator auf Verlaufsdaten für die Tabelle zugreifen. Die Berechtigung bigquery.rowAccessPolicies.overrideTimeTravelRestrictions ist für die Tabelle erforderlich und in der vordefinierten IAM-Rolle roles/bigquery.admin enthalten.
Wenn eine Tabelle die Sicherheit auf Spaltenebene bietet, können Sie den Änderungsverlauf nur für die Spalten aufrufen, auf die Sie Zugriff haben.
Zum Aufrufen des Änderungsverlaufs von APPENDS für von Apache Iceberg verwaltete Tabellen benötigen Sie außerdem die folgenden Berechtigungen:
- Die Berechtigung
bigquery.connections.delegatefür die Ressourcenverbindung Google Cloud , die mit der Tabelle verknüpft ist. Diese Berechtigung ist in der Rolle BigQuery Connection User (roles/bigquery.connectionUser) enthalten. - Die Rollen
roles/storage.objectUserundroles/storage.legacyBucketReader, die dem Dienstkonto der Verbindung für den zugrunde liegenden Cloud Storage-Bucket zugewiesen sind
Weitere Informationen finden Sie unter Mit dem Änderungsverlauf in Lakehouse arbeiten.
Funktionen des Änderungsverlaufs
Mit den folgenden Funktionen können Sie den Änderungsverlauf einer Tabelle nachvollziehen:
APPENDS: gibt alle Zeilen zurück, die für einen bestimmten Zeitraum an eine Tabelle angehängt sind.Die folgenden Vorgänge fügen dem Änderungsverlauf
APPENDSZeilen hinzu:CHANGES: Gibt alle Zeilen zurück, die sich in einer Tabelle für einen bestimmten Zeitraum geändert haben. Wenn Sie die FunktionCHANGESfür eine Tabelle verwenden möchten, müssen Sie die Optionenable_change_historyder Tabelle aufTRUEfestlegen.Die folgenden Vorgänge fügen dem Änderungsverlauf
CHANGESZeilen hinzu:- DDL-Anweisung
CREATE TABLE - DML-Anweisung
INSERT - Daten, die im Rahmen einer
MERGE-DML-Anweisung angehängt oder geändert wurden - DML-Anweisung
UPDATE - DML-Anweisung
DELETE - Daten in BigQuery laden
- Streamingaufnahme
- DML-Anweisung
TRUNCATE TABLE - Jobs, die mit einem
writeDispositionvonWRITE_TRUNCATEkonfiguriert sind - Löschen einzelner Tabellenpartitionen
- DDL-Anweisung
Preise und Kosten
Beim Aufrufen von Änderungsverlaufsfunktionen fallen BigQuery-Computing-Kosten an.
Für die Funktionen APPENDS und CHANGES müssen alle Daten verarbeitet werden, die innerhalb des angegebenen Zeitraums in die Tabelle geschrieben wurden. Diese Verarbeitung gilt für alle Schreibvorgänge, einschließlich Anhänge- und Mutationsvorgängen.
Wenn Sie die Option enable_change_history einer Tabelle auf FALSE festlegen, wird die von APPENDS verarbeitete Datenmenge nicht reduziert.
Wenn Sie die Option enable_change_history für eine Tabelle auf TRUE setzen, um die Funktion CHANGES zu verwenden, speichert BigQuery Metadaten zu Tabellenänderungen. Für diese gespeicherten Metadaten fallen zusätzliche BigQuery-Speicherkosten und BigQuery-Rechenkosten an.
Der in Rechnung gestellte Betrag hängt von der Anzahl und Art der an der Tabelle vorgenommenen Änderungen ab und ist in der Regel gering. Bei Tabellen mit vielen Änderungsvorgängen, insbesondere großen Löschvorgängen, fallen am wahrscheinlichsten spürbare Kosten an.