Modèle Spanner vers texte Cloud Storage

Le modèle Spanner vers texte Cloud Storage est un pipeline par lots qui lit les données d'une table Spanner et les écrit dans Cloud Storage sous forme de fichiers texte CSV.

Conditions requises pour ce pipeline

  • La table d'entrée Spanner doit exister avant l'exécution du pipeline.

Paramètres de modèle

Paramètres obligatoires

  • spannerTable: table Spanner à partir de laquelle lire les données.
  • spannerProjectId: ID du projet Google Cloud qui contient la base de données Spanner à partir de laquelle lire les données.
  • spannerInstanceId: ID d'instance de la table demandée.
  • spannerDatabaseId: ID de base de données de la table demandée.
  • textWritePrefix: préfixe du chemin d'accès à Cloud Storage qui spécifie l'emplacement d'écriture des données Exemple :gs://mybucket/somefolder/

Paramètres facultatifs

  • csvTempDirectory: chemin d'accès Cloud Storage où les fichiers CSV temporaires sont écrits. Exemple :gs://your-bucket/your-path
  • spannerPriority: priorité des requêtes (https://cloud.google.com/spanner/docs/reference/rest/v1/RequestOptions) pour les appels Spanner. Les valeurs possibles sont HIGH, MEDIUM, LOW. La valeur par défaut est MEDIUM.
  • spannerHost: point de terminaison Cloud Spanner à appeler dans le modèle. Utilisé uniquement pour les tests. Exemple :https://batch-spanner.googleapis.com La valeur par défaut est https://spanner.googleapis.com.
  • spannerSnapshotTime: code temporel correspondant à la version de la base de données Spanner à partir de laquelle vous souhaitez lire. L'horodatage doit être spécifié au format UTC Zulu RFC 3339 (https://tools.ietf.org/html/rfc3339). L'horodatage doit être antérieur à la date et l'heure actuelles et l'Obsolescence maximale de l'horodatage (https://cloud.google.com/spanner/docs/timestamp-bounds#maximum_timestamp_staleness) s'applique. Par exemple, 1990-12-31T23:59:60Z. La valeur par défaut est vide.
  • dataBoostEnabled: définissez la valeur sur true pour utiliser les ressources de calcul de Spanner Data Boost afin d'exécuter la tâche avec un impact quasi nul sur les workflows OLTP de Spanner. Si la valeur est "true", l'autorisation IAM (Identity and Access Management) spanner.databases.useDataBoost est requise. Pour en savoir plus, consultez la présentation de Data Boost (https://cloud.google.com/spanner/docs/databoost/databoost-overview). La valeur par défaut est "false".

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 Cloud Spanner to Text Files on Cloud Storage 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/Spanner_to_GCS_Text \
    --region REGION_NAME \
    --parameters \
spannerProjectId=SPANNER_PROJECT_ID,\
spannerDatabaseId=DATABASE_ID,\
spannerInstanceId=INSTANCE_ID,\
spannerTable=TABLE_ID,\
textWritePrefix=gs://BUCKET_NAME/output/

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
  • SPANNER_PROJECT_ID : ID du projet Google Cloud de la base de données Spanner à partir de laquelle vous souhaitez lire les données
  • DATABASE_ID : ID de la base de données Spanner
  • BUCKET_NAME : nom du bucket Cloud Storage
  • INSTANCE_ID : ID d'instance Spanner
  • TABLE_ID : ID de la table Spanner

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/Spanner_to_GCS_Text
{
   "jobName": "JOB_NAME",
   "parameters": {
       "spannerProjectId": "SPANNER_PROJECT_ID",
       "spannerDatabaseId": "DATABASE_ID",
       "spannerInstanceId": "INSTANCE_ID",
       "spannerTable": "TABLE_ID",
       "textWritePrefix": "gs://BUCKET_NAME/output/"
   },
   "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
  • SPANNER_PROJECT_ID : ID du projet Google Cloud de la base de données Spanner à partir de laquelle vous souhaitez lire les données
  • DATABASE_ID : ID de la base de données Spanner
  • BUCKET_NAME : nom du bucket Cloud Storage
  • INSTANCE_ID : ID d'instance Spanner
  • TABLE_ID : ID de la table Spanner

Étape suivante