Laufzeitparameter bei Übertragungen verwenden

Beim Einrichten einer Cloud Storage- oder Amazon S3-Übertragung lassen sich der URI und die Zieltabelle parametrisieren, um Daten nach dem Datum organisiert aus Buckets zu laden. Diese Parameter werden als Laufzeitparameter bezeichnet, um sie von Abfrageparametern zu unterscheiden.

Wenn Sie bei einer Übertragung Laufzeitparameter verwenden, können Sie:

  • Angeben, wie Sie die Zieltabelle partitionieren möchten
  • Dateien abrufen, die mit einem bestimmten Datum übereinstimmen

Verfügbare Laufzeitparameter

Beim Einrichten einer Cloud Storage- oder einer Amazon S3-Übertragung können Sie mithilfe von Laufzeitparametern angeben, wie Sie die Zieltabelle partitionieren möchten.

Parameter Vorlagentyp Wert
run_time Formatierter Zeitstempel Wird in UTC-Zeit per Zeitplan dargestellt. Bei regelmäßig geplanten Übertragungen steht run_time für die beabsichtigte Ausführungszeit. Wenn für die geplante Übertragung beispielsweise "alle 24 Stunden" eingestellt ist, beträgt die run_time-Differenz zwischen zwei aufeinanderfolgenden Abfragen exakt 24 Stunden, auch wenn die jeweilige Ausführungszeit dabei geringfügig variieren kann.

Siehe hierzu TransferRun.runTime.
run_date Datumsstring Das Datum des Parameters run_time im Format %Y%m%d, zum Beispiel "20180101". Dieses Format ist kompatibel mit nach Aufnahmezeit partitionierten Tabellen.

Vorlagensystem

Cloud Storage- und Amazon S3-Übertragungen unterstützen Laufzeitparameter im Zieltabellennamen mithilfe einer Vorlagensyntax.

Parameter der Vorlagensyntax

Die Vorlagensyntax unterstützt grundlegende Stringvorlagen und Zeitverschiebungen. Die Parameter werden in den folgenden Formaten referenziert:

  • {run_date}
  • {run_time[+\-offset]|"time_format"}
Parameter Zweck
run_date Dieser Parameter wird durch das Datum im Format YYYYMMDD ersetzt.
run_time Dieser Parameter unterstützt folgende Attribute:


offset
Die Zeitverschiebung in Stunden (h), Minuten (m) und Sekunden (s) in dieser Reihenfolge.
Tage (d) werden nicht unterstützt.
Dezimalzahlen sind zulässig, zum Beispiel: 1.5h.

time_format
Ein Formatstring. Die gebräuchlichsten Formatierungsparameter sind Jahre (%Y), Monate (%m) und Tage (%d).
Bei partitionierten Tabellen ist YYYYMMDD das erforderliche Suffix. Dies entspricht "%Y%m%d".

Weitere Informationen zum Formatieren von Datum/Uhrzeit-Elementen finden Sie hier.

Hinweise zur Syntax:
  • Zwischen run_time, offset und time_format ist kein Leerzeichen zulässig.
  • Wenn Sie im String geschweifte Klammern für die Anzeige verwenden möchten, maskieren Sie sie: ‘\{‘ and ‘\}’.
  • Wenn Sie in "time_format" Anführungszeichen oder senkrechte Striche für die Anzeige verwenden möchten, wie z. B. “YYYY|MM|DD”, maskieren Sie sie im Formatstring: ‘\”’ oder ‘\|’.

Beispiele für Parametervorlagen

In den folgenden Beispielen wird gezeigt, wie Zieltabellennamen mit unterschiedlichen Zeitformaten angegeben werden und wie die Laufzeit verschoben wird.
run_time (UTC) Vorlagenparameter Name der Ausgabezieltabelle
2018-02-15 00:00:00 mytable mytable
2018-02-15 00:00:00 mytable_{run_time|"%Y%m%d"} mytable_20180215
2018-02-15 00:00:00 mytable_{run_time+25h|"%Y%m%d"} mytable_20180216
2018-02-15 00:00:00 mytable_{run_time-1h|"%Y%m%d"} mytable_20180214
2018-02-15 00:00:00 mytable_{run_time+1.5h|"%Y%m%d;%H"}
oder
mytable_{run_time+90m|"%Y%m%d;%H"}
mytable_2018021501
2018-02-15 00:00:00 {run_time+97s|"%Y%m%d"}_mytable_{run_time|"%H%M%s"} 20180215_mytable_000137

Optionen für die Partitionierung

Cloud Storage- und Amazon S3-Übertragungen können in partitionierte oder nicht partitionierte Zieltabellen schreiben. BigQuery verfügt über zwei Arten der Tabellenpartitionierung:

  • Nach Aufnahmezeit partitionierte Tabellen: Tabellen, die dem Aufnahmezeitpunkt entsprechend partitioniert sind. Bei Cloud Storage- und Amazon S3-Übertragungen ist der Aufnahmezeitpunkt der Ausführungszeitpunkt der Übertragung.
  • Partitionierte Tabellen: Tabellen, die nach einer Spalte partitioniert sind. Die Spalte muss vom Typ TIMESTAMP oder DATE sein.

Wenn die Zieltabelle nach einer Spalte partitioniert ist, identifizieren Sie die Partitionierungsspalte, wenn Sie die Zieltabelle erstellen und ihr Schema angeben. Weitere Informationen zum Erstellen von spaltenbasierten partitionierten Tabellen finden Sie unter Mit Datum/Zeitstempel partitionierte Tabellen erstellen und verwenden.

Beispiele für die Partitionierung

Hinweise zur Verwendung von Parametern

  • Wenn Sie Ihre Daten beruhend auf Ihrer lokalen Zeitzone partitionieren, müssen Sie die Stundenverschiebung gegenüber UTC manuell berechnen. Dazu verwenden Sie den Verschiebungsmechanismus in der Vorlagensyntax.
  • In Parametern können keine Minuten angegeben werden.
  • Die Verwendung von Platzhaltern für den Cloud Storage-URI in Kombination mit Parametern im Zieltabellennamen ist zulässig. Weitere Informationen zu Platzhaltern finden Sie unter Unterstützung von Platzhaltern für Cloud Storage-URIs.

Beispiele für Laufzeitparameter

Die folgenden Beispiele zeigen, wie das Platzhalterzeichen und die Parameter für gängige Anwendungsfälle kombiniert werden können. Angenommen, der Name der Tabelle lautet mytable und die run_time ist für alle Beispiele 2018-02-15 00:00:00 (UTC).

Cloud Storage- oder Amazon S3-Daten in eine nicht partitionierte Tabelle übertragen

Dieser Anwendungsfall gilt für das Laden neuer Dateien aus einem Cloud Storage- oder Amazon S3-Bucket in eine nicht partitionierte Tabelle. In diesem Beispiel werden ein Platzhalter im URI und eine Ad-hoc-Aktualisierungsübertragung verwendet, um neue Dateien abzurufen, die mindestens eine Stunde alt sind.

Datenquelle Quell-URI Name der Zieltabelle
Cloud Storage gs://bucket/*.csv mytable
Amazon S3 s3://bucket/*.csv mytable

Snapshots aller Daten in eine nach Aufnahmezeit partitionierte Tabelle laden

In diesem Fall werden alle Daten im angegebenen URI in eine Tabelle übertragen, die nach dem aktuellen Datum partitioniert ist. Bei einer Aktualisierungsübertragung werden mit dieser Konfiguration seit dem letzten Ladevorgang hinzugefügte Dateien übernommen und einer bestimmten Partition hinzugefügt.

Datenquelle Quell-URI Name der parametrisierten Zieltabelle Name der geprüften Zieltabelle
Cloud Storage gs://bucket/*.csv mytable${run_time|"%Y%m%d"} mytable$20180215
Amazon S3 s3://bucket/*.csv mytable${run_time|"%Y%m%d"} mytable$20180215

Dieser Anwendungsfall überträgt die aktuellen Daten in eine Tabelle, die nach dem heutigen Datum partitioniert ist. Dieses Beispiel gilt auch für eine Aktualisierungsübertragung, bei der neu hinzugefügte Dateien mit einem bestimmten Datum abgerufen und in die entsprechende Partition geladen werden.

Datenquelle Parametrisierter URI Name der parametrisierten Zieltabelle Ausgewerteter URI Name der geprüften Zieltabelle
Cloud Storage gs://bucket/events-{run_time|"%Y%m%d"}/*.csv mytable${run_time|"%Y%m%d"} gs://bucket/events-20180215/*.csv mytable$20180215
Amazon S3 s3://bucket/events-{run_time|"%Y%m%d"}/*.csv mytable${run_time|"%Y%m%d"} s3://bucket/events-20180215/*.csv mytable$20180215

Weitere Informationen