Modèle BigQuery vers TFRecord Cloud Storage

Le modèle BigQuery vers TFRecords Cloud Storage est un pipeline qui lit les données à partir d'une requête BigQuery et les écrit dans un bucket Cloud Storage au format TFRecord. Vous pouvez spécifier les pourcentages de répartition pour l'entraînement, les tests et la validation. Par défaut, la répartition est de 1 ou 100 % pour l'ensemble d'entraînement, et de 0 ou 0 % pour les ensembles de test et de validation. Lorsque vous définissez la répartition des ensembles de données, la somme des valeurs assignées à l'entraînement, aux tests et à la validation doit être égale à 1 ou 100 % (par exemple : 0,6 + 0,2 + 0,2). Dataflow détermine automatiquement le nombre optimal de segments pour chaque ensemble de données de sortie.

Conditions requises pour ce pipeline

  • L'ensemble de données et la table BigQuery doivent exister.
  • Le bucket Cloud Storage de sortie doit exister avant l'exécution du pipeline. Les sous-répertoires d'entraînement, de test et de validation n'ont pas besoin d'exister au préalable, ils sont générés automatiquement.

Paramètres de modèle

Paramètres obligatoires

  • readQuery: requête SQL BigQuery qui extrait les données de la source. Exemple :select * from dataset1.sample_table
  • outputDirectory: préfixe du chemin d'accès de niveau supérieur dans Cloud Storage à utiliser lors de l'écriture des fichiers TFRecord d'entraînement, de test et de validation. Les sous-répertoires dédiés aux fichiers TFRecord d'entraînement, de test et de validation résultants sont générés à partir de outputDirectory. Par exemple, gs://mybucket/output.

Paramètres facultatifs

  • readIdColumn: nom de la colonne BigQuery stockant l'identifiant unique de la ligne.
  • invalidOutputPath: chemin d'accès Cloud Storage où écrire les lignes BigQuery qui ne peuvent pas être converties en entités cibles. Exemple :gs://your-bucket/your-path
  • outputSuffix: suffixe des fichiers TFRecord d'entraînement, de test et de validation écrits. La valeur par défaut est .tfrecord.
  • trainingPercentage: pourcentage des données de requête alloué aux fichiers TFRecord d'entraînement. La valeur par défaut est 1 ou 100%.
  • testingPercentage: pourcentage des données de requête alloué aux fichiers TFRecord de test. La valeur par défaut est 0 ou 0%.
  • validationPercentage: pourcentage des données de requête alloué aux fichiers TFRecord de validation. La valeur par défaut est 0 ou 0%.

Exécuter le modèle

Console

  1. Accédez à la page Dataflow Créer un job à partir d'un modèle.
  2. Accéder à la page Créer un job à partir d'un modèle
  3. Dans le champ Nom du job, saisissez un nom de job unique.
  4. Facultatif : pour Point de terminaison régional, sélectionnez une valeur dans le menu déroulant. La région par défaut est us-central1.

    Pour obtenir la liste des régions dans lesquelles vous pouvez exécuter un job Dataflow, consultez la page Emplacements Dataflow.

  5. Dans le menu déroulant Modèle Dataflow, sélectionnez the BigQuery to TFRecords template.
  6. Dans les champs fournis, saisissez vos valeurs de paramètres.
  7. Cliquez sur Run Job (Exécuter la tâche).

gcloud

Dans le shell ou le terminal, exécutez le modèle :

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates-REGION_NAME/VERSION/Cloud_BigQuery_to_GCS_TensorFlow_Records \
    --region REGION_NAME \
    --parameters \
readQuery=READ_QUERY,\
outputDirectory=OUTPUT_DIRECTORY,\
trainingPercentage=TRAINING_PERCENTAGE,\
testingPercentage=TESTING_PERCENTAGE,\
validationPercentage=VALIDATION_PERCENTAGE,\
outputSuffix=OUTPUT_FILENAME_SUFFIX

Remplacez les éléments suivants :

  • JOB_NAME : nom de job unique de votre choix
  • VERSION : version du modèle que vous souhaitez utiliser

    Vous pouvez utiliser les valeurs suivantes :

  • REGION_NAME : région dans laquelle vous souhaitez déployer votre job Dataflow, par exemple us-central1
  • READ_QUERY : requête BigQuery à exécuter
  • OUTPUT_DIRECTORY : préfixe du chemin d'accès Cloud Storage pour les ensembles de données de sortie
  • TRAINING_PERCENTAGE : valeur décimale du pourcentage représentant la fraction de l'ensemble de données d'entraînement
  • TESTING_PERCENTAGE : valeur décimale du pourcentage représentant la fraction de l'ensemble de données de test
  • VALIDATION_PERCENTAGE : valeur décimale du pourcentage représentant la fraction de l'ensemble de données de validation
  • OUTPUT_FILENAME_SUFFIX : suffixe souhaité pour les fichiers TensorFlow Record de sortie

API

Pour exécuter le modèle à l'aide de l'API REST, envoyez une requête HTTP POST. Pour en savoir plus sur l'API, ses autorisations et leurs champs d'application, consultez la section projects.templates.launch.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates-LOCATION/VERSION/Cloud_BigQuery_to_GCS_TensorFlow_Records
{
   "jobName": "JOB_NAME",
   "parameters": {
       "readQuery":"READ_QUERY",
       "outputDirectory":"OUTPUT_DIRECTORY",
       "trainingPercentage":"TRAINING_PERCENTAGE",
       "testingPercentage":"TESTING_PERCENTAGE",
       "validationPercentage":"VALIDATION_PERCENTAGE",
       "outputSuffix":"OUTPUT_FILENAME_SUFFIX"
   },
   "environment": { "zone": "us-central1-f" }
}

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet Google Cloud dans lequel vous souhaitez exécuter le job Dataflow
  • JOB_NAME : nom de job unique de votre choix
  • VERSION : version du modèle que vous souhaitez utiliser

    Vous pouvez utiliser les valeurs suivantes :

  • LOCATION : région dans laquelle vous souhaitez déployer votre job Dataflow, par exemple us-central1
  • READ_QUERY : requête BigQuery à exécuter
  • OUTPUT_DIRECTORY : préfixe du chemin d'accès Cloud Storage pour les ensembles de données de sortie
  • TRAINING_PERCENTAGE : valeur décimale du pourcentage représentant la fraction de l'ensemble de données d'entraînement
  • TESTING_PERCENTAGE : valeur décimale du pourcentage représentant la fraction de l'ensemble de données de test
  • VALIDATION_PERCENTAGE : valeur décimale du pourcentage représentant la fraction de l'ensemble de données de validation
  • OUTPUT_FILENAME_SUFFIX : suffixe souhaité pour les fichiers TensorFlow Record de sortie

Étape suivante