Partitionierte Tabellendaten verwalten

In diesem Dokument wird die Verwaltung von Daten in partitionierten Tabellen in BigQuery beschrieben.

Partitions-Decorator

Mit Partition-Decorators können Sie auf eine Partition in einer Tabelle verweisen. Sie können damit beispielsweise Daten in eine bestimmte Partition schreiben.

Ein Partitions-Decorator hat die Form table_name$partition_id, wobei das Format des Segments partition_id vom Partitionierungstyp abhängt:

Partitionierungstyp Format Beispiel
Stündlich yyyymmddhh my_table$2021071205
Täglich yyyymmdd my_table$20210712
Monatlich yyyymm my_table$202107
Jährlich yyyy my_table$2021
Ganzzahlbereich range_start my_table$40

In den Daten einer Partition suchen

Verwenden Sie den Befehl bq head mit einem Partitions-Decorator, um in den Daten einer bestimmten Partition zu suchen.

Mit dem folgenden Befehl werden beispielsweise alle Felder in den ersten 10 Zeilen von my_dataset.my_table in der Partition vom 24.02.2018 aufgeführt.

    bq head --max_rows=10 'my_dataset.my_tablee$20180224'

Daten in eine bestimmte Partition schreiben

Wenn Sie Daten in eine bestimmte Partition laden möchten, verwenden Sie den Befehl bq load mit einem Partitions-Decorator. Im folgenden Beispiel werden Daten in die Partition 20160501 einer vorhandenen Tabelle geschrieben, vorausgesetzt, die Tabelle ist bereits nach Datum partitioniert:

bq load --source_format=CSV 'my_dataset.my_table$20160501' data.csv

Sie können die Ergebnisse einer Abfrage auch in eine bestimmte Partition schreiben:

bq query \
  --use_legacy_sql=false  \
  --destination_table='my_table$20160501' \
  --append_table=true \
  'SELECT * FROM my_dataset.another_table'

Mit der Partitionierung während der Aufnahmezeit können Sie mit dieser Technik ältere Daten in die Partition laden, die dem Zeitpunkt entspricht, zu dem die Daten ursprünglich erstellt wurden.

Mit dieser Technik können Sie auch Zeitzonen anpassen. Standardmäßig werden Partitionen zur Aufnahmezeit anhand der UTC-Zeit erstellt. Wenn Sie möchten, dass die Partitionszeit mit einer bestimmten Zeitzone übereinstimmt, können Sie Partition-Decorators verwenden, um die UTC-Aufnahmezeit zu verschieben. Wenn Sie beispielsweise Pacific Standard Time (PST) verwenden, können Sie Daten, die am 1. Mai 2016 (PST) generiert wurden, mithilfe des entsprechenden Partitions-Decorators, $20160501, in die Partition für dieses Datum laden.

Bei nach Datum und Uhrzeit partitionierten Tabellen muss die im Decorator angegebene Partitions-ID mit den geschriebenen Daten übereinstimmen. Wenn die Tabelle beispielsweise nach einer Spalte vom Typ DATE partitioniert ist, muss der Decorator mit dem Wert in dieser Spalte übereinstimmen. Andernfalls tritt ein Fehler auf. Wenn Sie jedoch vorher wissen, dass sich Ihre Daten in einer einzelnen Partition befinden, kann die Angabe des Partitions-Decorators die Schreibleistung verbessern.

Weitere Informationen zum Laden von Daten finden Sie unter Einführung in das Laden von Daten in BigQuery.

Daten in partitionierte Tabellen streamen

Informationen zum Streamen von Daten in eine partitionierte Tabelle mit der Methode tabledata.insertAll finden Sie unter Streaming in partitionierte Tabellen.

Tabellendaten exportieren

Der Export sämtlicher Daten einer partitionierten Tabelle erfolgt auf die gleiche Weise wie der Datenexport einer nicht partitionierten Tabelle. Weitere Informationen hierzu finden Sie unter Tabellendaten exportieren.

Für den Export von Daten aus einer einzelnen Partition hängen Sie den Partitions-Decorator an den Tabellennamen an. z. B. my_table$20160201.

Wenn Sie Daten aus den Partitionen __NULL__ und __UNPARTITIONED__ exportieren möchten, hängen Sie die Partitionsnamen an den Tabellennamen an. Beispiel: my_table$__NULL__ bzw. my_table$__UNPARTITIONED__

Sicherheit partitionierter Tabellen

Die Zugriffssteuerung für partitionierte Tabellen entspricht der Zugriffssteuerung für Standardtabellen. Weitere Informationen finden Sie unter Einführung in die Tabellenzugriffssteuerung.

Mehr zur Verwendung der Play Console erfahren

Mehr zur Arbeit mit partitionierten Tabellen erfahren Sie unter: