Eine große BigQuery-Tabelle für Abfragekosten und -leistung optimieren.
→Die Tabelle nach einer häufig gefilterten Zeiteinheitsspalte (z.B. Transaktionsdatum) partitionieren. Die Tabelle nach anderen Spalten mit hoher Kardinalität und häufiger Filterung (z.B. `customer_id`) clustern.
Warum: Partitionierung ist die effektivste Methode, um Kosten und Latenz durch Reduzierung der gescannten Datenmenge zu senken. Clustering verbessert die Leistung zusätzlich durch Sortieren der Daten innerhalb von Partitionen.
Referenz↗
Verhindern, dass Daten aus einem sensiblen BigQuery-Datensatz an ein nicht autorisiertes Ziel (z.B. einen öffentlichen GCS-Bucket) kopiert werden, selbst von einem Benutzer mit gültigen Anmeldeinformationen.
→VPC Service Controls verwenden, um einen Dienstperimeter um das Projekt zu erstellen, das den BigQuery-Datensatz enthält.
Warum: VPC Service Controls fungieren als "virtuelle Firewall" für GCP-Dienste und verhindern, dass Daten den Perimeter verlassen. Dies ist eine kritische Defense-in-Depth-Kontrolle gegen Datenexfiltration.
Referenz↗
Den Zugriff auf sensible Spalten (z.B. PII) in einer BigQuery-Tabelle auf autorisierte Gruppen beschränken, während andere die restlichen Spalten abfragen dürfen.
→Data Catalog verwenden, um eine Taxonomie und Policy Tags zu erstellen. Policy Tags auf sensible Spalten anwenden und die Rolle "Fine-Grained Reader" an autorisierte Gruppen vergeben.
Warum: Dies ist die native, skalierbare Methode für die Sicherheit auf Spaltenebene in BigQuery. Sie bietet eine zentralisierte Governance, ohne separate Ansichten erstellen und verwalten zu müssen.
Eine Tabelle filtern, sodass Benutzer nur Zeilen sehen können, die sie betreffen (z.B. Verkaufsleiter sehen nur Daten ihrer eigenen Region).
→Eine Row-Level Security Policy für die Tabelle erstellen, die Zeilen basierend auf `SESSION_USER()` filtert.
Warum: Bietet dynamisches, prädikatbasiertes Filtern zur Abfragezeit. Dies ist sicherer und besser verwaltbar als das Erstellen einer autorisierten Ansicht für jeden Benutzer oder jede Rolle.
Daten nach einer festgelegten Aufbewahrungsfrist automatisch aus einer BigQuery-Tabelle löschen, um Vorschriften einzuhalten (z.B. Daten löschen, die älter als 7 Jahre sind).
→Für Zeitreihendaten eine Partitionsablaufzeit für die zeitpartitionierte Tabelle festlegen. Für andere Tabellen die Standard-Tabellenablaufzeit festlegen.
Warum: Dies ist eine integrierte "Set-and-Forget"-Funktion, die die Einhaltung von Vorschriften ohne manuelle Bereinigungsskripte oder externe Orchestrierung gewährleistet.
Eine BigQuery-Tabelle wurde versehentlich geändert oder gelöscht.
→BigQuery Time Travel verwenden, um die Tabelle so abzufragen, wie sie zu einem Zeitpunkt vor dem Vorfall existierte, unter Verwendung von `FOR SYSTEM_TIME AS OF`.
Warum: BigQuery verwaltet automatisch eine 7-tägige Historie der Tabellendaten. Dies ermöglicht eine sofortige Wiederherstellung innerhalb des Time-Travel-Fensters, ohne aus Backups wiederherstellen zu müssen.
Referenz↗
Datenressourcen (BigQuery, GCS) in einer gesamten Organisation entdecken, verwalten, sichern und überwachen.
→Dataplex verwenden.
Warum: Dataplex fungiert als intelligente Datenplattform und bietet eine einheitliche Oberfläche für Datengovernance, -qualität, -herkunft, -erkennung und Lebenszyklusmanagement über unterschiedliche Datensilos hinweg.
Verstehen und visualisieren, wie Daten von Quellsystemen, durch Transformationsjobs, zu finalen Berichtstabellen fließen.
→Dataplex Data Lineage verwenden.
Warum: Erfasst automatisch Lineage-Informationen aus BigQuery-, Data Fusion- und Composer-Logs, um eine interaktive, grafische Ansicht von Datenabhängigkeiten für Wirkungsanalyse und Auditing bereitzustellen.
Vorhersehbare Abfrageleistung und -kosten für kritische Workloads gewährleisten und "Slot-Konflikte" durch andere Benutzer vermeiden.
→BigQuery Editions (kapazitätsbasierte Preisgestaltung) erwerben. Reservierungen erstellen, um einen Pool von Slots bestimmten Projekten oder Ordnern zuzuweisen.
Warum: Wechselt von einem gemeinsamen On-Demand-Pool zu einer dedizierten Rechenkapazität, wodurch Ressourcen für kritische Jobs garantiert und eine vorhersehbare Abrechnung ermöglicht werden.
Alle Datenbestände in BigQuery und Cloud Storage scannen, um PII und andere sensible Daten automatisch zu identifizieren und zu klassifizieren.
→Einen Cloud Data Loss Prevention (DLP) Erkennungs-Scan-Job konfigurieren.
Warum: Cloud DLP verwendet Hunderte von vordefinierten Detektoren, um sensible Daten in großem Maßstab zu finden. Es kann mit Data Catalog integriert werden, um automatisch Policy Tags für die Governance anzuwenden.
Eine containerisierte Anwendung (auf GKE oder Cloud Run) muss sich sicher bei BigQuery authentifizieren, ohne Dienstkontoschlüssel verwalten zu müssen.
→Workload Identity verwenden.
Warum: Die empfohlene Best Practice für die Service-zu-Service-Authentifizierung. Es ordnet ein Kubernetes-Dienstkonto einem GCP IAM-Dienstkonto zu und verwendet kurzlebige, automatisch rotierende Tokens.
Zur Einhaltung von Vorschriften einen Bericht über alle Benutzer erstellen, die eine sensible BigQuery-Tabelle in den letzten 90 Tagen abgefragt haben.
→Die BigQuery Data Access Audit-Logs aktivieren und abfragen, die zur Analyse an einen BigQuery-Datensatz weitergeleitet werden können.
Warum: Data Access Logs bieten eine unveränderliche Aufzeichnung darüber, wer wann auf welche Daten zugegriffen hat. Sie sind unerlässlich für Sicherheits- und Compliance-Audits, müssen aber explizit aktiviert werden.
Identifizieren, welche Benutzer oder Abfragen für hohe BigQuery-Kosten verantwortlich sind.
→Die `INFORMATION_SCHEMA.JOBS`-Ansicht abfragen.
Warum: Diese Metadatenansicht enthält detaillierte Informationen für jede ausgeführte Abfrage, einschließlich des Benutzers, der abgerechneten Bytes und der verbrauchten Slots, was eine präzise Kostenattribution und -analyse ermöglicht.