Utiliser des paramètres d'exécution dans les transferts

Lors de la configuration d'un transfert Cloud Storage ou Amazon S3, l'URI et la table de destination peuvent être tous deux paramétrés, ce qui vous permet de charger des données à partir de compartiments organisés par date. Ces paramètres sont appelés _runtime parameters_ pour les distinguer des paramètres de requête.

En utilisant les paramètres d'exécution dans un transfert, vous pouvez :

  • Définir la manière dont vous souhaitez partitionner la table de destination
  • Récupérer des fichiers qui correspondent à une date particulière

Paramètres d'exécution disponibles

Lors de la configuration du transfert Cloud Storage ou Amazon S3, vous pouvez spécifier le mode de partitionnement de la table de destination à l'aide de paramètres d'exécution.

Paramètre Type de modèle Valeur
run_time Horodatage formaté En heure UTC, selon l'exécution programmée. Pour les transferts programmés de façon récurrente, run_time représente l'heure d'exécution prévue. Par exemple, si le transfert est défini sur "toutes les 24 heures", la différence de run_time entre deux requêtes consécutives sera exactement de 24 heures, même si le temps d’exécution réel peut varier légèrement.

Consultez TransferRun.runTime
run_date Chaîne de date Date du paramètre run_time au format %Y%m%d, par exemple, "20180101". Ce format est compatible avec les tables partitionnées par date d'ingestion.

Système de modélisation

Les transferts Cloud Storage et Amazon S3 acceptent les paramètres d'exécution dans le nom de la table de destination via une syntaxe de modélisation.

Syntaxe des paramètres de modélisation

La syntaxe de modélisation supporte la modélisation de base des chaînes et le décalage horaire. Les paramètres sont référencés dans les formats suivants :

  • {run_date}
  • {run_time[+\-offset]|"time_format"}
Paramètre Objectif
run_date Ce paramètre est remplacé par la date au format YYYYMMDD.
run_time Ce paramètre accepte les propriétés suivantes :


offset
Décalage horaire exprimé en heures (h), minutes (m) et secondes (s), selon cet ordre.
Les jours (d) ne sont pas acceptés.
Les valeurs décimales sont autorisées, par exemple : 1.5h.

time_format
Chaîne de mise en forme. Les paramètres de mise en forme les plus courants sont les années (%Y), les mois (%m) et les jours (%d).
AAAAMMJJ est le suffixe requis pour les tables partitionnées – cela équivaut à "%Y%m%d".

Pour plus d'informations, consultez la section relative à la mise en forme des éléments datetime.

Consignes d'utilisation :
  • Aucun espace n'est autorisé entre run_time, offset et time format.
  • Pour inclure des accolades littérales dans la chaîne, vous pouvez les échapper comme ceci : ‘\{‘ and ‘\}’.
  • Pour inclure des guillemets littéraux ou une barre verticale au format time_format, comme dans “YYYY|MM|DD”, vous pouvez les échapper au format de chaîne suivant : ‘\”’ ou ‘\|’.

Exemples de paramètres de modélisation

Les exemples suivants permettent d'illustrer la manière de définir les noms d'une table de destination avec différents formats d'heure, et en incluant un décalage de l'exécution.
run_time (UTC) Paramètre modélisé Nom de la table de destination de sortie
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"}
ou
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

Options de partitionnement

Les transferts Cloud Storage et Amazon S3 peuvent écrire dans des tables de destination partitionnées ou non. Il existe deux types de tables partitionnées dans BigQuery :

  • Tables partitionnées par temps d'ingestion : tables partitionnées en fonction du temps d'ingestion. Pour les transferts Cloud Storage et Amazon S3, le temps d'ingestion est la durée d'exécution du transfert.
  • Tables partitionnées : tables partitionnées en fonction d'une colonne TIMESTAMP ou DATE.

Si la table de destination est partitionnée en fonction d'une colonne, vous identifiez la colonne partitionnée lorsque vous créez la table de destination et spécifiez son schéma. Pour plus d'informations sur la création de tables partitionnées en colonnes, consultez la section Créer et utiliser des tables partitionnées.

Exemples de partitionnement

Exemples de paramètres d'exécution

Ces exemples montrent comment combiner le caractère générique et les paramètres pour des cas d'utilisation courants. Supposons que le paramètre run_time est défini sur 2018-02-15 00:00:00 (UTC) pour tous les exemples.

Si vous partitionnez vos données en fonction de votre fuseau horaire local, vous devrez calculer manuellement le décalage horaire à partir de l'heure UTC à l'aide du mécanisme de décalage de la syntaxe de modélisation.

Transférer des données Cloud Storage ou Amazon S3 vers une table non partitionnée

Ce cas d'utilisation s'applique au chargement de nouveaux fichiers à partir d'un compartiment Cloud Storage ou Amazon S3 et vers une table non partitionnée. Cet exemple utilise un caractère générique dans l'URI et un transfert d'actualisation ad hoc pour récupérer les nouveaux fichiers datant au moins d'une heure.

Source des données URI source Nom de la table de destination
Cloud Storage gs://bucket/*.csv mytable
Amazon S3 s3://bucket/*.csv mytable

Charger un instantané de toutes les données dans une table partitionnée avec date d'ingestion

Dans ce cas, toutes les données de l'URI spécifié sont transférées vers une table partitionnée à la date du jour. Lors d'un transfert d'actualisation, cette configuration récupère les fichiers récemment ajoutés depuis le dernier chargement, et les ajoute à une partition particulière.

Source des données URI source Table de destination paramétrée Table de destination évaluée
Cloud Storage gs://bucket/*.csv mytable${run_time|"%Y%m%d"} my_table$20180215
Amazon S3 s3://bucket/*.csv mytable${run_time|"%Y%m%d"} my_table$20180215

Charger des données associées à une date spécifique dans une table partitionnée avec date d'ingestion

Ce cas d'utilisation transfère les données du jour dans une table partitionnée à la date du jour. Cet exemple s'applique également à un transfert d'actualisation qui récupère les fichiers récemment ajoutés correspondant à une date donnée, et charge les données dans la partition correspondante.

Source des données URI paramétrée Table de destination paramétrée URI évalué Table de destination évaluée
Cloud Storage gs://bucket/events-{run_time|"%Y%m%d"}/*.csv mytable${run_time|"%Y%m%d"} gs://bucket/events-20180215/*.csv my_table$20180215
Amazon S3 s3://bucket/events-{run_time|"%Y%m%d"}/*.csv mytable${run_time|"%Y%m%d"} s3://bucket/events-20180215/*.csv my_table$20180215

Étapes suivantes

Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Besoin d'aide ? Consultez notre page d'assistance.