Utiliser les paramètres dans les transferts Cloud Storage

Le service de transfert de données BigQuery pour Cloud Storage vous permet de programmer des chargements de données récurrents depuis Cloud Storage vers BigQuery.

En utilisant les paramètres d'exécution dans un transfert Cloud Storage, vous pouvez effectuer les actions suivantes :

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

Paramètres d'exécution disponibles

Lors de la configuration du transfert Cloud Storage, vous pouvez définir la manière dont vous souhaitez partitionner la table de destination avec des 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 du paramètre run_time entre deux requêtes consécutives sera exactement de 24 heures, même si la durée d'exécution réelle peut varier légèrement.

Consultez la section relative à 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 acceptent les paramètres d'exécution dans le nom de la table de destination via une syntaxe de modélisation.

Syntaxe de modélisation des paramètres

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).
YYYYMMDD 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 : ‘\”’ or ‘\|’.

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_+25h{run_time|"%Y%m%d"} mytable_20180216
2018-02-15 00:00:00 mytable_-1h{run_time|"%Y%m%d"} mytable_20180214
2018-02-15 00:00:00 mytable_+1.5h{run_time|"%Y%m%d;%H"}
ou
mytable_+90m{run_time|"%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 peuvent écrire dans des tables de destination partitionnées ou non partitionnées. 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, le temps d'ingestion correspond à 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 vers une table non partitionnée

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

Source (URI Cloud Storage) Nom de la table de destination
Configuration gs://bucket/*.csv mytable
Évaluation gs://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 Cloud Storage 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 (URI Cloud Storage) Nom de la table de destination
Configuration gs://bucket/*.csv mytable${run_time|”%Y%m%d”}
Évaluation gs://bucket/*.csv 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 Cloud Storage actuelles vers 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 (URI Cloud Storage) Nom de la table de destination
Configuration gs://bucket/events-{run_time|"%Y%m%d"}/*.csv mytable${run_time|”%Y%m%d”}
Évaluation gs://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.