Möglicherweise müssen Sie Ihre BigQuery-Tabellen in kleinere Segmente partitionieren, um die Abfrageleistung zu verbessern und die Kosten zu kontrollieren. Da Datastream keine partitionierten Tabellen in BigQuery unterstützt, müssen Sie die Partitionen manuell hinzufügen, bevor Sie den Stream starten. Allgemeine Informationen zur Partitionierung in BigQuery finden Sie unter Einführung in partitionierte Tabellen.
Tabellen in BigQuery partitionieren
Um Ihre Tabellen in BigQuery zu partitionieren, verwenden Sie eine der beschriebenen Optionen in den folgenden Abschnitten.
Option 1: Die Tabelle ist bereits in BigQuery vorhanden und in einem Stream enthalten
- Schließen Sie die Tabelle aus der Quellkonfiguration des Streams aus. Weitere Informationen zum Ein- und Ausschließen von Objekten aus der Quellkonfiguration finden Sie unter Quelldatenbanken konfigurieren.
- Warten Sie einige Minuten, bis Datastream die Verarbeitung abgeschlossen hat alle Ereignisse für die Tabelle.
- Partitionierte Tabelle in BigQuery erstellen Wenn Sie die Daten behalten möchten, die sich bereits in der ursprünglichen BigQuery-Tabelle befanden, geben Sie der Tabelle einen anderen, temporären Namen.
- Kopieren Sie die Daten aus der ursprünglichen Tabelle in die neue partitionierte Tabelle.
- Löschen oder benennen Sie die ursprüngliche Tabelle um.
- Ändern Sie den temporären Namen der neuen Tabelle in den Namen der ursprünglichen Tabelle.
- Fügen Sie der Konfiguration des Streams die Quelltabelle hinzu.
Option 2: Die Tabelle ist nicht in BigQuery vorhanden
Erstellen Sie die Tabelle in BigQuery mit einem der folgenden Ansätze:
- Verwenden Sie das BigQuery Migration Toolkit.
Erstellen Sie manuell eine Datastream-kompatible BigQuery-Tabelle. Wenn Sie beispielsweise eine Tabelle erstellen und die Daten anhand der Spalte
TIMESTAMP
partitionieren möchten, können Sie eine Abfrage wie die folgende verwenden:CREATE TABLE dataset.partitioned_table ( 'id' INT64, 'name' STRING 'update_date' DATETIME, 'datastream_metadata' STRUCT<'uuid' STRING, 'source_timestamp' INT64>, PRIMARY KEY ('id') NOT ENFORCED ) PARTITION BY TIMESTAMP(update_date)
Prüfen Sie nach dem Erstellen der partitionierten Tabelle, ob der Wert
max_staleness
die Ihren Anforderungen entsprechen. Wenn Sie keinen Wert festlegen, wird der Standardwert ist der Wert von0
festgelegt. Weitere Informationen finden Sie unter BigQuery-Tabellen mit der Optionmax_staleness
verwenden.Fügen Sie die Quelltabelle der Konfiguration Ihres Streams hinzu.
Optional: Wenn Sie für den Stream einen manuellen Backfill festgelegt haben, können Sie einen Backfill für die Tabelle starten.