Vorlage "BigQuery für Cloud Storage TFRecords"

Die Vorlage "BigQuery für Cloud Storage TFRecords" ist eine Pipeline, die Daten aus einer BigQuery-Abfrage liest und in einen Cloud Storage-Bucket im TFRecord-Format schreibt. Sie können die Aufteilung der Prozentsätze für Training, Tests und Validierungen festlegen. Standardmäßig beträgt die Aufteilung 1 oder 100 % für den Trainingssatz und 0 oder 0 % für Test- und Validierungssätze. Beachten Sie, dass bei der Dataset-Aufteilung die Summe aus Training, Tests und Validierungen in der Addition 1 oder 100 % ergeben muss (z. B. 0,6 + 0,2 + 0,2). Dataflow bestimmt automatisch die optimale Anzahl von Shards für jedes Ausgabe-Dataset.

Pipelineanforderungen

  • Das BigQuery-Dataset und die Tabelle müssen vorhanden sein.
  • Der Cloud Storage-Ausgabe-Bucket muss vor der Pipelineausführung vorhanden sein. Unterverzeichnisse, Training und Validierungen müssen nicht bereits vorhanden sein und werden automatisch generiert.

Vorlagenparameter

Erforderliche Parameter

  • readQuery: Eine BigQuery SQL-Abfrage, die Daten aus der Quelle extrahiert. Beispiel: select * from dataset1.sample_table.
  • outputDirectory: Das Präfix der obersten Ebene des Cloud Storage-Pfads, das verwendet wird, wenn die TFRecord-Dateien für Training, Tests und Validierungen geschrieben werden. Unterverzeichnisse für resultierende TFRecord-Dateien für Training, Tests und Validierungen werden automatisch aus outputDirectory generiert. Beispiel: gs://mybucket/output

Optionale Parameter

  • readIdColumn: Der Name der BigQuery-Spalte, in der die eindeutige Kennung der Zeile gespeichert ist.
  • invalidOutputPath: Cloud Storage-Pfad, in den BigQuery-Zeilen geschrieben werden, die nicht in Zielentitäten umgewandelt werden können. Beispiel: gs://your-bucket/your-path.
  • outputSuffix: Das Dateisuffix für die TFRecord-Dateien für Training, Test und Validierung, die geschrieben werden. Der Standardwert ist .tfrecord.
  • trainingPercentage: Der Prozentsatz der Abfragedaten, die TFRecord-Trainingsdateien zugewiesen sind. Der Standardwert ist 1 oder 100%.
  • testingPercentage: Der Prozentsatz der Abfragedaten, die TFRecord-Testdateien zugewiesen sind. Der Standardwert ist 0 oder 0%.
  • validationPercentage: Der Prozentsatz der Abfragedaten, die TFRecord-Validierungsdateien zugewiesen sind. Der Standardwert ist 0 oder 0%.

Führen Sie die Vorlage aus.

Console

  1. Rufen Sie die Dataflow-Seite Job aus Vorlage erstellen auf.
  2. Zur Seite "Job aus Vorlage erstellen“
  3. Geben Sie im Feld Jobname einen eindeutigen Jobnamen ein.
  4. Optional: Wählen Sie für Regionaler Endpunkt einen Wert aus dem Drop-down-Menü aus. Die Standardregion ist us-central1.

    Eine Liste der Regionen, in denen Sie einen Dataflow-Job ausführen können, finden Sie unter Dataflow-Standorte.

  5. Wählen Sie im Drop-down-Menü Dataflow-Vorlage die Option the BigQuery to TFRecords templateaus.
  6. Geben Sie Ihre Parameterwerte in die Parameterfelder ein.
  7. Klicken Sie auf Job ausführen.

gcloud

Führen Sie die Vorlage in der Shell oder im Terminal aus:

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

Ersetzen Sie dabei Folgendes:

  • JOB_NAME: ein eindeutiger Jobname Ihrer Wahl
  • VERSION: Die Version der Vorlage, die Sie verwenden möchten

    Sie können die folgenden Werte verwenden:

    • latest zur Verwendung der neuesten Version der Vorlage, die im nicht datierten übergeordneten Ordner im Bucket verfügbar ist: gs://dataflow-templates-REGION_NAME/latest/
    • Den Versionsnamen wie 2023-09-12-00_RC00, um eine bestimmte Version der Vorlage zu verwenden. Diese ist verschachtelt im jeweiligen datierten übergeordneten Ordner im Bucket enthalten: gs://dataflow-templates-REGION_NAME/.
  • REGION_NAME: die Region, in der Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • READ_QUERY: Die auszuführende BigQuery-Abfrage
  • OUTPUT_DIRECTORY: Das Cloud Storage-Pfadpräfix für Ausgabe-Datasets
  • TRAINING_PERCENTAGE: Die Dezimalprozentsatzaufteilung für das Trainings-Dataset
  • TESTING_PERCENTAGE: Die Dezimalprozentsatzaufteilung für das Test-Dataset
  • VALIDATION_PERCENTAGE: Die Dezimalprozentsatzaufteilung für das Validierungs-Dataset
  • OUTPUT_FILENAME_SUFFIX: Das bevorzugte Suffix der TensorFlow Record-Ausgabedatei

API

Senden Sie eine HTTP-POST-Anfrage, um die Vorlage mithilfe der REST API auszuführen. Weitere Informationen zur API und ihren Autorisierungsbereichen finden Sie unter 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" }
}

Ersetzen Sie dabei Folgendes:

  • PROJECT_ID: die ID des Google Cloud-Projekts, in dem Sie den Dataflow-Job ausführen möchten
  • JOB_NAME: ein eindeutiger Jobname Ihrer Wahl
  • VERSION: Die Version der Vorlage, die Sie verwenden möchten

    Sie können die folgenden Werte verwenden:

    • latest zur Verwendung der neuesten Version der Vorlage, die im nicht datierten übergeordneten Ordner im Bucket verfügbar ist: gs://dataflow-templates-REGION_NAME/latest/
    • Den Versionsnamen wie 2023-09-12-00_RC00, um eine bestimmte Version der Vorlage zu verwenden. Diese ist verschachtelt im jeweiligen datierten übergeordneten Ordner im Bucket enthalten: gs://dataflow-templates-REGION_NAME/.
  • LOCATION: die Region, in der Sie Ihren Dataflow-Job bereitstellen möchten, z. B. us-central1
  • READ_QUERY: Die auszuführende BigQuery-Abfrage
  • OUTPUT_DIRECTORY: Das Cloud Storage-Pfadpräfix für Ausgabe-Datasets
  • TRAINING_PERCENTAGE: Die Dezimalprozentsatzaufteilung für das Trainings-Dataset
  • TESTING_PERCENTAGE: Die Dezimalprozentsatzaufteilung für das Test-Dataset
  • VALIDATION_PERCENTAGE: Die Dezimalprozentsatzaufteilung für das Validierungs-Dataset
  • OUTPUT_FILENAME_SUFFIX: Das bevorzugte Suffix der TensorFlow Record-Ausgabedatei

Nächste Schritte