Daten in partitionierte Tabellen laden
In diesem Dokument wird beschrieben, wie Sie Daten in partitionierte Tabellen laden.
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.
Im vorherigen Beispiel werden Daten an eine Partition angefügt. Wenn Sie stattdessen Daten in einer Partition überschreiben möchten, müssen Sie für jeden Befehl unterschiedliche Flags verwenden, nämlich bq load --replace=true ...
und bq query --append_table=false ...
.
Weitere Informationen zu den Flags in diesen Befehlen finden Sie unter bq load
und bq query
.
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 BigQuery Storage Write API finden Sie unter Spaltenpartitionierung nach Zeiteinheit.
Nächste Schritte
Mehr zur Arbeit mit partitionierten Tabellen erfahren Sie unter:
- Partitionierte Tabellen erstellen
- Partitionierte Tabellen verwalten
- Partitionierte Tabellen abfragen