Charger des données dans des tables partitionnées

Ce document explique comment charger des données dans des tables partitionnées.

Écrire des données sur une partition spécifique

Vous pouvez charger des données dans une partition spécifique à l'aide de la commande bq load avec un décorateur de partition. L'exemple suivant ajoute des données dans la partition 20160501 (1er mai 2016) d'une table existante, en supposant que la table est déjà partitionnée par date :

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

Vous pouvez également écrire les résultats d'une requête dans une partition spécifique :

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

Avec le partitionnement par date d'ingestion, vous pouvez utiliser cette technique pour charger des données plus anciennes dans la partition correspondant à l'heure à laquelle les données ont été créées à l'origine.

Vous pouvez également utiliser cette technique pour ajuster les fuseaux horaires. Par défaut, les partitions par date d'ingestion sont basées sur l'heure UTC. Si vous souhaitez que l'heure de partition corresponde à un fuseau horaire particulier, vous pouvez utiliser des décorateurs de partitions pour décaler le temps d'ingestion UTC. Par exemple, si vous êtes à l'heure normale du Pacifique (PST), vous pouvez charger les données générées le 1er mai 2016 PST dans la partition pour cette date, à l'aide du décorateur de partition correspondant : $20160501.

Pour les tables partitionnées par colonnes d'unités de temps et par plages d'entiers, l'ID de partition spécifié dans le décorateur doit correspondre aux données en cours d'écriture. Par exemple, si la table est partitionnée suivant une colonne DATE, le décorateur doit correspondre à la valeur de cette colonne. Dans le cas contraire, une erreur se produit. Toutefois, si vous savez au préalable que vos données se trouvent dans une seule partition, la spécification du décorateur de partition peut améliorer les performances d'écriture.

L'exemple précédent ajoute des données à une partition. Pour écraser les données d'une partition, vous devez inclure des options différentes pour chaque commande, à savoir bq load --replace=true ... et bq query --append_table=false .... Pour en savoir plus sur les options de ces commandes, consultez les sections bq load et bq query.

Pour en savoir plus sur le chargement des données, consultez la page intitulée Présentation du chargement de données dans BigQuery.

Diffuser des données en flux continu dans des tables partitionnées

Pour en savoir plus sur la diffusion de données en flux continu dans une table partitionnée avec l'API BigQuery Storage Write, consultez la page Partitionnement par colonnes d'unités de temps.

Étapes suivantes

Pour plus d'informations sur l'utilisation des tables partitionnées, consultez les pages suivantes :