Exporter des données de table

Cette page explique comment exporter des données depuis des tables BigQuery.

Une fois que vous avez chargé des données dans BigQuery, vous pouvez les exporter sous plusieurs formats. BigQuery peut exporter jusqu'à 1 Go de données dans un seul fichier. Si les données dépassent 1 Go, vous devez les exporter dans plusieurs fichiers. Le cas échéant, la taille des fichiers varie.

Vous pouvez utiliser un service tel que Cloud Dataflow pour lire les données de BigQuery au lieu de les exporter manuellement. Pour en savoir plus sur l'utilisation de Cloud Dataflow afin de lire et d'écrire dans BigQuery, consultez la page E/S BigQuery dans la documentation Apache Beam.

Autorisations requises

  • Assurez-vous que vous disposez d'un accès READER à l'ensemble de données qui contient les données que vous souhaitez exporter. Vous pouvez également utiliser n'importe quel rôle IAM BigQuery prédéfini au niveau du projet, qui fournit des autorisations bigquery.tables.export, telles que bigquery.dataViewer, bigquery.dataOwner, bigquery.dataEditor ou bigquery.admin. Lorsque vous attribuez un rôle IAM au niveau du projet, l'utilisateur ou le groupe dispose d'autorisations bigquery.tables.export pour chaque table du projet.
  • Assurez-vous que vous disposez d'autorisations WRITER sur un bucket Cloud Storage, ou que vous êtes doté d'un rôle IAM prédéfini qui vous autorise à écrire des objets dans un bucket. Vous ne pouvez exporter des données depuis BigQuery que vers un bucket Cloud Storage. Pour en savoir plus sur les rôles IAM Cloud Storage, consultez la page Rôles IAM Cloud Storage.
  • Pour exécuter une tâche d'exportation, vous devez disposer d'autorisations bigquery.jobs.create. Vous pouvez définir des autorisations bigquery.jobs.create au niveau du projet en accordant l'un des rôles IAM prédéfinis suivants :

    • bigquery.user
    • bigquery.jobUser
    • bigquery.admin

Limites en matière d'exportation

Lorsque vous exportez des données depuis BigQuery, tenez compte des points suivants :

  • Vous ne pouvez pas exporter de données de table vers un fichier local, vers Google Sheets ou vers Google Drive. La seule zone d'exportation acceptée est Cloud Storage. Pour en savoir plus sur l'enregistrement des résultats de requête, consultez la section Télécharger et enregistrer des résultats de requête.
  • Vous pouvez exporter jusqu'à 1 Go de données de table dans un seul fichier. Si les données dépassent 1 Go, utilisez un caractère générique pour les exporter dans plusieurs fichiers. Le cas échéant, la taille des fichiers varie.
  • Vous ne pouvez pas exporter des données imbriquées et répétées au format CSV. Ces données sont acceptées pour les exportations au format Avro et JSON.
  • Lorsque vous exportez des données au format JSON, les types de données INT64 (entier) sont encodés sous la forme de chaînes JSON, afin de préserver la précision 64 bits lorsque les données sont lues par d'autres systèmes.
  • Vous ne pouvez pas exporter des données de plusieurs tables dans une seule tâche d'exportation.
  • Lorsque vous exportez des données à partir de tables partitionnées, vous ne pouvez pas exporter des partitions individuelles.
  • Lorsque vous exportez des données à l'aide de la console GCP ou de l'interface utilisateur Web classique de BigQuery, vous ne pouvez pas choisir un type de compression autre que GZIP.

Considérations relatives aux zones

Lorsque vous choisissez un emplacement pour les données, envisagez d'entreprendre les actions suivantes :

  • Cohéberger vos buckets Cloud Storage pour exporter des données.
    • Lorsque vous exportez des données, le bucket Cloud Storage régional ou multirégional doit se trouver dans le même emplacement que l'ensemble de données BigQuery. Par exemple, si votre ensemble de données BigQuery est situé dans la zone multirégionale UE, le bucket Cloud Storage contenant les données que vous exportez doit se trouver dans une zone régionale ou multirégionale de l'UE.
    • Si votre ensemble de données se trouve dans une zone régionale, le bucket Cloud Storage doit être un bucket régional du même emplacement. Par exemple, si votre ensemble de données se trouve dans la région Tokyo, le bucket Cloud Storage doit être un bucket régional situé à Tokyo.
    • Exception : Si votre ensemble de données se trouve dans la zone multirégionale États-Unis, vous pouvez exporter des données dans un bucket Cloud Storage situé dans n'importe quelle zone régionale ou multirégionale.
  • Élaborer un plan de gestion des données.
    • Si vous choisissez une ressource de stockage régionale, telle qu'un ensemble de données BigQuery ou un bucket Cloud Storage, élaborez un plan de gestion géographique des données.

Pour en savoir plus sur les emplacements Cloud Storage, consultez la section Emplacements des buckets dans la documentation de Cloud Storage.

Déplacer des données BigQuery entre des emplacements

Il n'est pas possible de modifier l'emplacement d'un ensemble de données après sa création, ni de déplacer un ensemble de données d'un emplacement vers un autre. Si vous devez tout de même le faire, procédez comme suit :

  1. Exportez les données de vos tables BigQuery vers un bucket Cloud Storage régional ou multirégional situé dans le même emplacement que l'ensemble de données. Par exemple, si votre ensemble de données se trouve dans l'emplacement multirégional UE, exportez les données dans un bucket régional ou multirégional de l'UE.

    L'exportation de données depuis BigQuery est gratuite, mais vous payez des frais pour le stockage des données exportées dans Cloud Storage. Les exportations BigQuery sont soumises aux limites applicables aux tâches d'exportation.

  2. Copiez ou déplacez les données de votre bucket Cloud Storage vers un bucket régional ou multirégional dans le nouvel emplacement. Par exemple, si vous déplacez vos données de l'emplacement multirégional US vers l'emplacement régional Tokyo, vous les transférez vers un bucket régional situé à Tokyo. Pour en savoir plus sur le transfert d'objets Cloud Storage, consultez la page Renommer, copier et déplacer des objets de la documentation Cloud Storage.

    Notez que le transfert de données entre régions entraîne des frais de sortie réseau dans Cloud Storage.

  3. Après avoir transféré les données vers un bucket Cloud Storage dans le nouvel emplacement, créez-y un ensemble de données BigQuery. Ensuite, chargez les données du bucket Cloud Storage dans BigQuery.

    Le chargement des données dans BigQuery est gratuit, mais vous devrez payer des frais pour le stockage des données dans Cloud Storage jusqu'à ce que vous supprimiez les données ou le bucket. Le stockage des données dans BigQuery après leur chargement vous est également facturé. Le chargement de données dans BigQuery est soumis aux limites applicables aux tâches de chargement.

Pour en savoir plus sur le stockage de données à l'aide de Cloud Storage, consultez la section Utiliser Cloud Storage avec Big Data.

Formats d'exportation et types de compression

BigQuery accepte les formats de données et les types de compression suivants pour les données exportées.

Format des données Types de compression acceptés Détails
CSV GZIP

Vous pouvez contrôler le délimiteur CSV dans vos données exportées à l'aide de l'indicateur CLI --field_delimiter ou de la propriété de tâche d'extraction configuration.extract.fieldDelimiter .

Les données imbriquées et répétées ne sont pas acceptées.

JSON GZIP Les données imbriquées et répétées sont acceptées.
Avro DEFLATE, SNAPPY

GZIP n'est pas compatible avec les exportations au format Avro.

Les données imbriquées et répétées sont acceptées.

Exporter des données stockées dans BigQuery

Vous pouvez exporter des données de table à l'aide de l'interface utilisateur Web de BigQuery ou de la commande CLI bq extract, ou en envoyant une tâche d'extraction via l'API ou les bibliothèques clientes.

Exporter des données de table

Pour exporter des données depuis une table BigQuery :

Console

  1. Ouvrez l'interface utilisateur Web de BigQuery dans la console GCP.
    Accéder à l'UI Web de BigQuery

  2. Dans la section Ressources du panneau de navigation, développez votre projet et cliquez sur un ensemble de données pour le développer. Recherchez et cliquez sur la table contenant les données à exporter.

  3. À droite de la fenêtre, cliquez sur Export (Exporter) puis sélectionnez Exporter vers Cloud Storage.

    Exporter des données

  4. Dans la boîte de dialogue Exporter vers Cloud Storage, procédez comme suit :

    • Dans le champ Sélectionner l'emplacement Cloud Storage, recherchez le compartiment, le dossier ou le fichier dans lequel vous souhaitez exporter les données.
    • Pour Export format (Format d'exportation), choisissez le format des données exportées : CSV, JSON (délimité par un retour à la ligne) ou Avro.
    • Pour Compression, acceptez la valeur par défaut (None), ou choisissez GZIP. Le format Avro ne peut pas être utilisé en association avec la compression GZIP. Pour compresser des données Avro, utilisez l'outil de ligne de commande bq ou l'API, et spécifiez l'un des types de compression acceptés pour ces données : DEFLATE ou SNAPPY.
    • Cliquez sur Exporter pour exporter le tableau.

Pour vérifier la progression de la tâche, consultez en haut de la fenêtre de navigation l'historique de la tâche pour une tâche d'exportation.

UI classique

  1. Accédez à l'UI Web de BigQuery.
    Accéder à l'UI Web de BigQuery

  2. Dans la barre de navigation, cliquez sur votre ensemble de données pour le développer.

  3. Cliquez sur la flèche vers le bas image de la flèche vers le bas à côté de la table qui contient les données que vous exportez.

  4. Sélectionnez Exporter la table pour afficher la boîte de dialogue Exporter vers Cloud Storage.

  5. Dans la boîte de dialogue Exporter vers Cloud Storage, procédez comme suit :

    • Pour Export format (Format d'exportation), choisissez le format des données exportées : CSV, JSON (délimité par un retour à la ligne) ou Avro.
    • Pour Compression, acceptez la valeur par défaut (None), ou choisissez GZIP. Le format Avro ne peut pas être utilisé en association avec la compression GZIP. Pour compresser des données Avro, utilisez l'outil de ligne de commande bq ou l'API, et spécifiez l'un des types de compression acceptés pour ces données : DEFLATE ou SNAPPY.
    • Dans la zone de texte URI Cloud Storage, saisissez un URI valide au format gs://[BUCKET_NAME]/[FILENAME.CSV], où [BUCKET_NAME] correspond au nom du bucket Cloud Storage et [FILENAME] au nom du fichier de destination. L'ensemble de données BigQuery et le bucket Cloud Storage doivent se trouver dans la même zone.
    • Cliquez sur OK pour exporter la table.

Pendant l'exécution de la tâche, (extraction) apparaît à côté du nom de la table dans le panneau de navigation. Pour vérifier la progression de la tâche, recherchez dans l'historique des tâches en haut du panneau de navigation une tâche d'extraction.

Ligne de commande


Utilisez la commande bq extract.

  • bq --location=[LOCATION] extract --destination_format [FORMAT] --compression [COMPRESSION_TYPE] --field_delimiter [DELIMITER] --print_header [BOOLEAN] [PROJECT_ID]:[DATASET].[TABLE] gs://[BUCKET]/[FILENAME]

Où :

  • [LOCATION] est le nom de votre emplacement. Le paramètre --location est facultatif. Par exemple, si vous utilisez BigQuery dans la région de Tokyo, définissez la valeur de l'indicateur sur asia-northeast1. Vous pouvez définir une valeur par défaut correspondant à l'emplacement en utilisant le fichier .bigqueryrc.
  • [FORMAT] est le format des données exportées : CSV, NEWLINE_DELIMITED_JSON ou AVRO.
  • [COMPRESSION_TYPE] est un type de compression compatible pour votre format de données. CSV et NEWLINE_DELIMITED_JSON acceptent GZIP. AVRO accepte DEFLATE et SNAPPY.
  • [DELIMITER] est le caractère qui indique la limite entre les colonnes dans les exportations au format CSV. \t et tab sont les noms acceptés pour la tabulation.
  • [BOOLEAN] a la valeur true ou false. Lorsque la valeur est true, les lignes d'en-tête sont imprimées dans les données exportées si le format de ces dernières accepte les en-têtes. La valeur par défaut est true.
  • [PROJECT_ID] correspond à l'ID de votre projet.
  • [DATASET] est le nom de l'ensemble de données source.
  • [TABLE] est la table que vous exportez.
  • [BUCKET] est le nom du bucket Cloud Storage vers lequel vous exportez les données. L'ensemble de données BigQuery et le bucket Cloud Storage doivent se trouver dans la même zone.
  • [FILENAME] est le nom du fichier de données exporté. Pour effectuer l'exportation dans plusieurs fichiers, utilisez un caractère générique.

Exemples :

Par exemple, la commande suivante permet d'exporter mydataset.mytable dans un fichier compressé gzip nommé myfile.csv. myfile.csv est stocké dans un bucket Cloud Storage nommé example-bucket.

  • bq --location=US extract --compression GZIP 'mydataset.mytable' gs://example-bucket/myfile.csv

Le format de destination par défaut est CSV. Pour exporter au format JSON ou Avro, spécifiez l'indicateur destination_format, puis définissez-le sur NEWLINE_DELIMITED_JSON ou AVRO. Par exemple :

  • bq --location=US extract --destination_format NEWLINE_DELIMITED_JSON 'mydataset.mytable' gs://example-bucket/myfile.json

La commande suivante permet d'exporter mydataset.mytable dans un fichier Avro compressé à l'aide de Snappy. Le fichier se nomme myfile.avro. myfile.avro est exporté vers un bucket Cloud Storage nommé example-bucket.

  • bq --location=US extract --destination_format AVRO --compression SNAPPY 'mydataset.mytable' gs://example-bucket/myfile.avro

API


Pour exporter des données, créez une tâche et insérez l'objet configuration.extract.

Spécifiez l'emplacement dans la propriété location de la section jobReference de la ressource de tâche.

  1. Créez une tâche d'extraction qui pointe vers les données sources BigQuery et la destination Cloud Storage.

  2. Spécifiez la table source à l'aide de l'objet de configuration sourceTable, qui comprend les ID du projet, de l'ensemble de données et de la table.

  3. Les URI de destination doivent être complets et respecter le format gs://[BUCKET_NAME]/[FILENAME.CSV]. Chaque URI peut contenir un caractère générique "*", et doit être placé après le nom du bucket.

  4. Spécifiez le format de données en définissant la propriété configuration.extract.destinationFormat. Par exemple, pour exporter un fichier JSON, définissez cette propriété sur la valeur NEWLINE_DELIMITED_JSON.

  5. Pour vérifier l'état de la tâche, appelez jobs.get ([JOB_ID]) avec l'ID de la tâche renvoyée par la requête initiale.

    • Si la propriété status.state = DONE s'affiche, la tâche a bien été exécutée.
    • Si la propriété status.errorResult est présente, la requête a échoué. Cet objet inclura des informations décrivant le problème rencontré.
    • Si la propriété status.errorResult est absente, la tâche a bien été exécutée. Toutefois, des erreurs non fatales ont pu se produire. Ces erreurs sont répertoriées dans la propriété status.errors de l'objet de tâche renvoyé.

Remarques relatives à l'API :

  • Nous vous recommandons de générer un ID unique et de le transmettre en tant que jobReference.jobId lorsque vous appelez jobs.insert() pour créer une tâche. Cette approche offre une protection plus robuste contre les pannes réseau, car le client peut lancer une requête ou effectuer de nouvelles tentatives en utilisant l'ID de tâche connu.

  • L'appel de jobs.insert() avec un ID de tâche donné est idempotent. En d'autres termes, vous pouvez effectuer autant de tentatives que vous le souhaitez avec le même ID de tâche. L'une de ces opérations tout au plus aboutira.

C#

Avant d'essayer l'exemple ci-dessous, suivez la procédure de configuration pour C# dans le guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery C#.

using Google.Cloud.BigQuery.V2;
using System;

public class BigQueryExtractTable
{
    public void ExtractTable(
        string projectId = "your-project-id",
        string bucketName = "your-bucket-name")
    {
        BigQueryClient client = BigQueryClient.Create(projectId);
        // Define a destination URI. Use a single wildcard URI if you think
        // your exported data will be larger than the 1 GB maximum value.
        string destinationUri = $"gs://{bucketName}/shakespeare-*.csv";
        BigQueryJob job = client.CreateExtractJob(
            projectId: "bigquery-public-data",
            datasetId: "samples",
            tableId: "shakespeare",
            destinationUri: destinationUri
        );
        job.PollUntilCompleted();  // Waits for the job to complete.
        Console.Write($"Exported table to {destinationUri}.");
    }
}

Go

Avant d'essayer l'exemple ci-dessous, suivez la procédure de configuration pour Go décrite dans le guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API BigQuery Go.

srcProject := "bigquery-public-data"
srcDataset := "samples"
srcTable := "shakespeare"

// For example, gcsUri = "gs://mybucket/shakespeare.csv"
gcsRef := bigquery.NewGCSReference(gcsURI)
gcsRef.FieldDelimiter = ","

extractor := client.DatasetInProject(srcProject, srcDataset).Table(srcTable).ExtractorTo(gcsRef)
extractor.DisableHeader = true
// You can choose to run the job in a specific location for more complex data locality scenarios.
// Ex: In this example, source dataset and GCS bucket are in the US.
extractor.Location = "US"

job, err := extractor.Run(ctx)
if err != nil {
	return err
}
status, err := job.Wait(ctx)
if err != nil {
	return err
}
if err := status.Err(); err != nil {
	return err
}

Java

Avant d'essayer l'exemple ci-dessous, suivez la procédure de configuration pour Java dans le guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery Java.

Job job = table.extract(format, gcsUrl);
// Wait for the job to complete
try {
  Job completedJob =
      job.waitFor(
          RetryOption.initialRetryDelay(Duration.ofSeconds(1)),
          RetryOption.totalTimeout(Duration.ofMinutes(3)));
  if (completedJob != null && completedJob.getStatus().getError() == null) {
    // Job completed successfully
  } else {
    // Handle error case
  }
} catch (InterruptedException e) {
  // Handle interrupted wait
}

Node.js

Avant d'essayer l'exemple ci-dessous, suivez la procédure de configuration pour Node.js dans le guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery Node.js.

// Import the Google Cloud client libraries
const {BigQuery} = require('@google-cloud/bigquery');
const {Storage} = require('@google-cloud/storage');

async function extractTableToGCS() {
  // Exports my_dataset:my_table to gcs://my-bucket/my-file as raw CSV.

  /**
   * TODO(developer): Uncomment the following lines before running the sample.
   */
  // const datasetId = "my_dataset";
  // const tableId = "my_table";
  // const bucketName = "my-bucket";
  // const filename = "file.csv";

  // Instantiate clients
  const bigqueryClient = new BigQuery();
  const storageClient = new Storage();

  // Location must match that of the source table.
  const options = {
    location: 'US',
  };

  // Export data from the table into a Google Cloud Storage file
  const [job] = await bigqueryClient
    .dataset(datasetId)
    .table(tableId)
    .extract(storageClient.bucket(bucketName).file(filename), options);
  // load() waits for the job to finish
  console.log(`Job ${job.id} completed.`);

  // Check the job's status for errors
  const errors = job.status.errors;
  if (errors && errors.length > 0) {
    throw errors;
  }
}
extractTableToGCS();

PHP

Avant d'essayer l'exemple ci-dessous, suivez la procédure de configuration pour PHP dans le guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery PHP.

use Google\Cloud\BigQuery\BigQueryClient;

/** Uncomment and populate these variables in your code */
// $projectId  = 'The Google project ID';
// $datasetId  = 'The BigQuery dataset ID';
// $tableId    = 'The BigQuery table ID';
// $bucketName = 'The Cloud Storage bucket Name';

$bigQuery = new BigQueryClient([
    'projectId' => $projectId,
]);
$dataset = $bigQuery->dataset($datasetId);
$table = $dataset->table($tableId);
$destinationUri = "gs://{$bucketName}/{$tableId}.json";
// Define the format to use. If the format is not specified, 'CSV' will be used.
$format = 'NEWLINE_DELIMITED_JSON';
// Create the extract job
$extractConfig = $table->extract($destinationUri)->destinationFormat($format);
// Run the job
$job = $table->runJob($extractConfig);  // Waits for the job to complete
printf('Exported %s to %s' . PHP_EOL, $table->id(), $destinationUri);

Python

Avant d'essayer l'exemple ci-dessous, suivez la procédure de configuration pour Python décrite dans le guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API BigQuery Python.

# from google.cloud import bigquery
# client = bigquery.Client()
# bucket_name = 'my-bucket'
project = "bigquery-public-data"
dataset_id = "samples"
table_id = "shakespeare"

destination_uri = "gs://{}/{}".format(bucket_name, "shakespeare.csv")
dataset_ref = client.dataset(dataset_id, project=project)
table_ref = dataset_ref.table(table_id)

extract_job = client.extract_table(
    table_ref,
    destination_uri,
    # Location must match that of the source table.
    location="US",
)  # API request
extract_job.result()  # Waits for job to complete.

print(
    "Exported {}:{}.{} to {}".format(project, dataset_id, table_id, destination_uri)
)

Ruby

Avant d'essayer l'exemple ci-dessous, suivez la procédure de configuration pour Ruby dans le guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery Ruby.

require "google/cloud/bigquery"

def extract_table(
    bucket_name = "my-bucket",
    dataset_id  = "my_dataset_id",
    table_id    = "my_table_id"
  )
  bigquery = Google::Cloud::Bigquery.new
  dataset  = bigquery.dataset dataset_id
  table    = dataset.table    table_id

  # Define a destination URI. Use a single wildcard URI if you think
  # your exported data will be larger than the 1 GB maximum value.
  destination_uri = "gs://#{bucket_name}/output-*.csv"

  extract_job = table.extract_job(destination_uri) do |config|
    # Location must match that of the source table.
    config.location = "US"
  end
  extract_job.wait_until_done!  # Waits for the job to complete

  puts "Exported #{table.id} to #{destination_uri}"
end

Détails sur les exportations au format Avro

BigQuery exprime les données au format Avro comme suit :

  • Les fichiers d'exportation obtenus sont des fichiers de conteneur Avro.
  • Chaque ligne BigQuery est représentée par un enregistrement Avro. Les données imbriquées sont représentées par des objets Enregistrement imbriqués.
  • Les champs REQUIRED sont représentés par les types Avro correspondants. Par exemple, un type INTEGER BigQuery est mappé sur un type LONG Avro.
  • Les champs NULLABLE sont représentés par une union Avro du type correspondant et la valeur "null".
  • Les champs REPEATED sont représentés par des tableaux Avro.
  • Les types de données TIMESTAMP sont représentés par les types LONG Avro.

Le format Avro ne peut pas être utilisé en combinaison avec la compression GZIP. Pour compresser des données Avro, utilisez l'outil de ligne de commande bq ou l'API, et spécifiez l'un des types de compression acceptés pour ces données : DEFLATE ou SNAPPY.

Exporter des données dans un ou plusieurs fichiers

La propriété destinationUris indique les emplacements et noms des fichiers dans lesquels BigQuery doit exporter vos fichiers.

BigQuery accepte un seul opérateur générique (*) dans chaque URI. Le caractère générique peut apparaître n'importe où dans l'URI, sauf dans le nom du bucket. L'opérateur générique permet d'indiquer à BigQuery qu'il doit créer plusieurs fichiers segmentés en fonction du modèle fourni. Cet opérateur est remplacé par un numéro (en commençant à 0) et il est complété à gauche de façon à obtenir 12 chiffres. Par exemple, un URI avec un caractère générique à la fin du nom du fichier crée des fichiers où 000000000000 est ajouté au premier fichier, 000000000001 est ajouté au deuxième fichier, etc.

Le tableau suivant décrit plusieurs options possibles pour la propriété destinationUris :

Options "destinationUris"
Un seul URI

Utilisez un seul URI si vous exportez des données de table d'une taille inférieure ou égale à 1 Go. Cette option est le cas d'utilisation le plus courant, car les données exportées sont généralement inférieures à la valeur maximale de 1 Go.

Définition de la propriété :

['gs://[YOUR_BUCKET]/file-name.json']

Crée :


gs://my-bucket/file-name.json
Un seul URI générique

Utilisez un seul URI générique si vous pensez que les données exportées dépasseront la valeur maximale de 1 Go. BigQuery segmente les données en plusieurs fichiers en fonction du modèle fourni. La taille des fichiers exportés varie.

Si vous utilisez un caractère générique dans un composant d'URI autre que le nom du fichier, assurez-vous que le composant de chemin d'accès n'existe pas avant d'exporter les données.

Définition de la propriété :

['gs://[YOUR_BUCKET]/file-name-*.json']

Crée :


gs://my-bucket/file-name-000000000000.json
gs://my-bucket/file-name-000000000001.json
gs://my-bucket/file-name-000000000002.json
...
Plusieurs URI génériques

Utilisez plusieurs URI génériques si vous souhaitez partitionner la sortie d'exportation. Utilisez cette option si vous exécutez une tâche de traitement parallèle avec un service tel que Cloud Dataproc. Déterminez le nombre de nœuds de calcul disponibles pour traiter la tâche, puis créez un URI par nœud de calcul. BigQuery traite chaque zone URI comme une partition, et utilise un traitement parallèle pour segmenter les données en plusieurs fichiers dans chaque zone. Vous pouvez utiliser le modèle de votre choix dans votre nom de fichier, en partant du principe qu'il y a un seul opérateur générique dans chaque URI, que chaque URI est unique, et que le nombre d'URI ne dépasse pas les règles relatives aux quotas.

Lorsque vous transmettez plusieurs URI génériques, BigQuery crée un fichier spécial à la fin de chaque partition indiquant le fichier "final" de l'ensemble. Ce nom de fichier indique le nombre de segments créés par BigQuery.

Par exemple, si l'URI générique est gs://[YOUR_BUCKET]/file-name- <worker number>-*.json et que BigQuery crée 80 fichiers segmentés, le nom du fichier d'enregistrement zéro est gs://my-bucket/file- name-<worker number>-000000000080.json. Vous pouvez utiliser ce nom de fichier pour déterminer que BigQuery a créé 80 fichiers segmentés (nommés 000000000000-000000000079).

Notez qu'un fichier d'enregistrement zéro peut contenir plus de 0 octet selon le format de données, par exemple lors de l'exportation de données au format CSV avec un en-tête de colonne.

Modèle de chaîne :

gs://[YOUR_BUCKET]/file-name-<worker number>-*.json

Définition de la propriété :


['gs://my-bucket/file-name-1-*.json',
'gs://my-bucket/file-name-2-*.json',
'gs://my-bucket/file-name-3-*.json']

Crée :

Cet exemple suppose que BigQuery crée 80 fichiers segmentés dans chaque partition.


gs://my-bucket/file-name-1-000000000000.json
gs://my-bucket/file-name-1-000000000001.json
...
gs://my-bucket/file-name-1-000000000080.json
gs://my-bucket/file-name-2-000000000000.json
gs://my-bucket/file-name-2-000000000001.json
...
gs://my-bucket/file-name-2-000000000080.json
gs://my-bucket/file-name-3-000000000000.json
gs://my-bucket/file-name-3-000000000001.json
...
gs://my-bucket/file-name-3-000000000080.json

Règles relatives aux quotas

Pour en savoir plus sur les quotas appliqués aux tâches d'exportation, consultez la section Tâches d'exportation de la page "Quotas et limites".

Tarifs

Actuellement, l'exportation des données depuis BigQuery est gratuite, mais les exportations sont soumises aux quotas et limites de BigQuery.

Pour en savoir plus sur la facturation relative à BigQuery, reportez-vous à la page Tarifs.

Une fois les données exportées, leur stockage dans Cloud Storage vous est facturé.

Pour en savoir plus sur la facturation relative à Cloud Storage, reportez-vous à la page Tarifs.

Étapes suivantes

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

Envoyer des commentaires concernant…

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