Möglicherweise müssen Sie Ihre BigQuery-Tabellen in kleinere Segmente partitionieren, um die Abfrageleistung zu verbessern und die Kosten zu kontrollieren. Da Datastream das Partitionieren von Tabellen in BigQuery nicht 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
Verwenden Sie eine der folgenden Optionen, um Ihre Tabellen in BigQuery zu partitionieren.
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 alle Ereignisse für die Tabelle verarbeitet hat.
- 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 Sie die ursprüngliche Tabelle oder benennen Sie sie um.
- Ändern Sie den temporären Namen der neuen Tabelle in den Namen der ursprünglichen Tabelle.
- Fügen Sie die Quelltabelle der Konfiguration Ihres Streams hinzu.
Option 2: Die Tabelle ist in BigQuery nicht vorhanden
Erstellen Sie die Tabelle in BigQuery mit einer der folgenden Methoden:
- Verwenden Sie das BigQuery Migration Toolkit.
Manuell eine Datastream-kompatible BigQuery-Tabelle erstellen Wenn Sie beispielsweise eine Tabelle erstellen und die Daten anhand der Spalte
TIMESTAMPpartitionieren möchten, können Sie eine Abfrage verwenden, die der folgenden ähnelt: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)
Nachdem Sie die partitionierte Tabelle erstellt haben, müssen Sie darauf achten, dass ihr
max_staleness-Wert Ihren Anforderungen entspricht. Wenn Sie den Wert nicht festlegen, wird der Standardwert0verwendet. Wenn Sie diesen Wert auf0belassen, erhalten Sie die aktuellsten Daten, aber es entstehen erhebliche Kosten. Informationen dazu, wie Sie den optimalen Wert für Ihre Tabelle ermitteln, finden Sie unter BigQuery-Tabellen mit der Optionmax_stalenessverwenden.Wenn Sie für den Stream einen manuellen Backfill festgelegt haben, können Sie optional einen Backfill für die Tabelle starten.