Modèles par lots fournis par Google

Google fournit un ensemble de modèles Cloud Dataflow Open Source. Des informations générales sur les modèles sont disponibles sur la page Présentation. Pour obtenir la liste de tous les modèles fournis par Google, consultez la page Premiers pas avec les modèles fournis par Google.

Cette page traite des modèles par lots :

Cloud Bigtable vers Cloud Storage Avro

Le modèle Cloud Bigtable vers Cloud Storage Avro est un pipeline qui lit les données d'une table Cloud Bigtable et les écrit dans un bucket Cloud Storage au format Avro. Vous pouvez utiliser le modèle pour déplacer des données de Cloud Bigtable vers Cloud Storage.

Conditions requises pour ce pipeline :

  • La table Cloud Bigtable doit exister.
  • Le bucket Cloud Storage de sortie doit exister avant l'exécution du pipeline.

Paramètres de modèle

Paramètre Description
bigtableProjectId ID du projet GCP de l'instance Cloud Bigtable à partir de laquelle vous souhaitez lire des données.
bigtableInstanceId ID de l'instance Cloud Bigtable qui contient la table.
bigtableTableId ID de la table Cloud Bigtable à exporter.
outputDirectory Chemin d'accès vers Cloud Storage où les données doivent être écrites. Par exemple, gs://mybucket/somefolder.
filenamePrefix Préfixe du nom de fichier Avro. Par exemple, output-.

Exécuter le modèle Cloud Bigtable vers fichier Avro Cloud Storage

CONSOLE

Exécution à partir de la console Google Cloud Platform
  1. Accédez à la page Cloud Dataflow dans la console GCP.
  2. Accéder à la page Cloud Dataflow
  3. Cliquez sur Créer une tâche à partir d'un modèle.
  4. Bouton
  5. Sélectionnez dans le menu déroulant du modèle Cloud Dataflow.
  6. Saisissez un nom de tâche dans le champ Nom de la tâche. Le nom du projet doit correspondre à l'expression régulière [a-z]([-a-z0-9]{0,38}[a-z0-9])? pour être valide.
  7. Saisissez vos valeurs de paramètres dans les champs fournis.
  8. Cliquez sur Exécuter la tâche.

GCLOUD

Exécution à partir de l'outil de ligne de commande gcloud

Remarque : Pour exécuter des modèles à l'aide de l'outil de ligne de commande gcloud, vous devez disposer du SDK Cloud version 138.0.0 ou ultérieure.

Lors de l'exécution de ce modèle, vous aurez besoin du chemin d'accès Cloud Storage au modèle :

gs://dataflow-templates/VERSION/

Utilisez cet exemple de requête comme indiqué dans la section Utiliser l'API REST. Cette requête nécessite une autorisation et vous devez spécifier un tempLocation dans lequel vous disposez d'autorisations en écriture. Vous devez remplacer les valeurs suivantes dans l'exemple ci-dessous :

  • Remplacez [YOUR_PROJECT_ID] par l'ID du projet.
  • Remplacez [JOB_NAME] par le nom de tâche de votre choix. Le nom de la tâche doit correspondre à l'expression régulière [a-z]([-a-z0-9]{0,38}[a-z0-9])? pour être valide.
  • Remplacez [PROJECT_ID] par l'ID de projet GCP de l'instance Cloud Bigtable à partir de laquelle vous souhaitez lire les données.
  • Remplacez [INSTANCE_ID] par l'ID de l'instance Cloud Bigtable contenant la table.
  • Remplacez [TABLE_ID] par l'ID de la table Cloud Bigtable à exporter.
  • Remplacez [OUTPUT_DIRECTORY] par le chemin d'accès à Cloud Storage où les données doivent être écrites. Par exemple, gs://mybucket/somefolder.
  • Remplacez [FILENAME_PREFIX] par le préfixe du nom du fichier Avro. Par exemple, output-.
gcloud dataflow jobs run [JOB_NAME] \
    --gcs-location gs://dataflow-templates/latest/ \
    --parameters bigtableProjectId=[PROJECT_ID],bigtableInstanceId=[INSTANCE_ID],bigtableTableId=[TABLE_ID],outputDirectory=[OUTPUT_DIRECTORY],filenamePrefix=[FILENAME_PREFIX]

API

Exécution à partir de l'API REST

Lors de l'exécution de ce modèle, vous aurez besoin du chemin d'accès Cloud Storage au modèle :

gs://dataflow-templates/VERSION/

Pour exécuter ce modèle avec une requête API REST, envoyez une requête HTTP POST avec votre ID de projet. Cette requête nécessite une autorisation.

Utilisez cet exemple de requête comme indiqué dans la section Utiliser l'API REST. Cette requête nécessite une autorisation et vous devez spécifier un tempLocation dans lequel vous disposez d'autorisations en écriture. Vous devez remplacer les valeurs suivantes dans l'exemple ci-dessous :

  • Remplacez [YOUR_PROJECT_ID] par l'ID du projet.
  • Remplacez [JOB_NAME] par le nom de tâche de votre choix. Le nom de la tâche doit correspondre à l'expression régulière [a-z]([-a-z0-9]{0,38}[a-z0-9])? pour être valide.
  • Remplacez [PROJECT_ID] par l'ID de projet GCP de l'instance Cloud Bigtable à partir de laquelle vous souhaitez lire les données.
  • Remplacez [INSTANCE_ID] par l'ID de l'instance Cloud Bigtable contenant la table.
  • Remplacez [TABLE_ID] par l'ID de la table Cloud Bigtable à exporter.
  • Remplacez [OUTPUT_DIRECTORY] par le chemin d'accès à Cloud Storage où les données doivent être écrites. Par exemple, gs://mybucket/somefolder.
  • Remplacez [FILENAME_PREFIX] par le préfixe du nom du fichier Avro. Par exemple, output-.
POST https://dataflow.googleapis.com/v1b3/projects/[YOUR_PROJECT_ID]/templates:launch?gcsPath=gs://dataflow-templates/latest/
{
   "jobName": "[JOB_NAME]",
   "parameters": {
       "bigtableProjectId": "[PROJECT_ID]",
       "bigtableInstanceId": "[INSTANCE_ID]",
       "bigtableTableId": "[TABLE_ID]",
       "outputDirectory": "[OUTPUT_DIRECTORY]",
       "filenamePrefix": "[FILENAME_PREFIX]",
   },
   "environment": { "zone": "us-central1-f" }
}

Cloud Bigtable vers Cloud Storage SequenceFile

Le modèle Cloud Bigtable vers Cloud Storage SequenceFile est un pipeline qui lit les données d'une table Cloud Bigtable et écrit ces données dans un bucket Cloud Storage au format de fichier SequenceFile. Vous pouvez utiliser ce modèle pour copier les données de Cloud Bigtable vers Cloud Storage.

Conditions requises pour ce pipeline :

  • La table Cloud Bigtable doit exister.
  • Le bucket Cloud Storage de sortie doit exister avant l'exécution du pipeline.

Paramètres de modèle

Paramètre Description
bigtableProject ID du projet GCP de l'instance Cloud Bigtable à partir de laquelle vous souhaitez lire des données.
bigtableInstanceId ID de l'instance Cloud Bigtable qui contient la table.
bigtableTableId ID de la table Cloud Bigtable à exporter.
bigtableAppProfileId ID du profil d'application Cloud Bigtable à utiliser pour l'exportation. Si vous ne spécifiez pas de profil d'application, Cloud Bigtable utilise le profil d'application par défaut de l'instance.
destinationPath Chemin d'accès vers Cloud Storage où les données doivent être écrites. Par exemple, gs://mybucket/somefolder.
filenamePrefix Préfixe du nom de fichier SequenceFile. Par exemple, output-.

Exécuter Cloud Bigtable vers le modèle Cloud Storage SequenceFile

CONSOLE

Exécution à partir de la console Google Cloud Platform
  1. Accédez à la page Cloud Dataflow dans la console GCP.
  2. Accéder à la page Cloud Dataflow
  3. Cliquez sur Créer une tâche à partir d'un modèle.
  4. Bouton
  5. Sélectionnez dans le menu déroulant du modèle Cloud Dataflow.
  6. Saisissez un nom de tâche dans le champ Nom de la tâche. Le nom du projet doit correspondre à l'expression régulière [a-z]([-a-z0-9]{0,38}[a-z0-9])? pour être valide.
  7. Saisissez vos valeurs de paramètres dans les champs fournis.
  8. Cliquez sur Exécuter la tâche.

GCLOUD

Exécution à partir de l'outil de ligne de commande gcloud

Remarque : Pour exécuter des modèles à l'aide de l'outil de ligne de commande gcloud, vous devez disposer du SDK Cloud version 138.0.0 ou ultérieure.

Lors de l'exécution de ce modèle, vous aurez besoin du chemin d'accès Cloud Storage au modèle :

gs://dataflow-templates/VERSION/

Utilisez cet exemple de requête comme indiqué dans la section Utiliser l'API REST. Cette requête nécessite une autorisation et vous devez spécifier un tempLocation dans lequel vous disposez d'autorisations en écriture. Vous devez remplacer les valeurs suivantes dans l'exemple ci-dessous :

  • Remplacez [YOUR_PROJECT_ID] par l'ID du projet.
  • Remplacez [JOB_NAME] par le nom de tâche de votre choix. Le nom de la tâche doit correspondre à l'expression régulière [a-z]([-a-z0-9]{0,38}[a-z0-9])? pour être valide.
  • Remplacez [PROJECT_ID] par l'ID de projet GCP de l'instance Cloud Bigtable à partir de laquelle vous souhaitez lire les données.
  • Remplacez [INSTANCE_ID] par l'ID de l'instance Cloud Bigtable contenant la table.
  • Remplacez [TABLE_ID] par l'ID de la table Cloud Bigtable à exporter.
  • Remplacez [APPLICATION_PROFILE_ID] par l'ID du profil d'application Cloud Bigtable à utiliser pour l'exportation.
  • Remplacez [DESTINATION_PATH] par le chemin d'accès à Cloud Storage où les données doivent être écrites. Par exemple, gs://mybucket/somefolder.
  • Remplacez [FILENAME_PREFIX] par le préfixe du nom du fichier SequenceFile. Par exemple, output-.
gcloud dataflow jobs run [JOB_NAME] \
    --gcs-location gs://dataflow-templates/latest/ \
    --parameters bigtableProject=[PROJECT_ID],bigtableInstanceId=[INSTANCE_ID],bigtableTableId=[TABLE_ID],bigtableAppProfileId=[APPLICATION_PROFILE_ID],destinationPath=[DESTINATION_PATH],filenamePrefix=[FILENAME_PREFIX]

API

Exécution à partir de l'API REST

Lors de l'exécution de ce modèle, vous aurez besoin du chemin d'accès Cloud Storage au modèle :

gs://dataflow-templates/VERSION/

Pour exécuter ce modèle avec une requête API REST, envoyez une requête HTTP POST avec votre ID de projet. Cette requête nécessite une autorisation.

Utilisez cet exemple de requête comme indiqué dans la section Utiliser l'API REST. Cette requête nécessite une autorisation et vous devez spécifier un tempLocation dans lequel vous disposez d'autorisations en écriture. Vous devez remplacer les valeurs suivantes dans l'exemple ci-dessous :

  • Remplacez [YOUR_PROJECT_ID] par l'ID du projet.
  • Remplacez [JOB_NAME] par le nom de tâche de votre choix. Le nom de la tâche doit correspondre à l'expression régulière [a-z]([-a-z0-9]{0,38}[a-z0-9])? pour être valide.
  • Remplacez [PROJECT_ID] par l'ID de projet GCP de l'instance Cloud Bigtable à partir de laquelle vous souhaitez lire les données.
  • Remplacez [INSTANCE_ID] par l'ID de l'instance Cloud Bigtable contenant la table.
  • Remplacez [TABLE_ID] par l'ID de la table Cloud Bigtable à exporter.
  • Remplacez [APPLICATION_PROFILE_ID] par l'ID du profil d'application Cloud Bigtable à utiliser pour l'exportation.
  • Remplacez [DESTINATION_PATH] par le chemin d'accès à Cloud Storage où les données doivent être écrites. Par exemple, gs://mybucket/somefolder.
  • Remplacez [FILENAME_PREFIX] par le préfixe du nom du fichier SequenceFile. Par exemple, output-.
POST https://dataflow.googleapis.com/v1b3/projects/[YOUR_PROJECT_ID]/templates:launch?gcsPath=gs://dataflow-templates/latest/
{
   "jobName": "[JOB_NAME]",
   "parameters": {
       "bigtableProject": "[PROJECT_ID]",
       "bigtableInstanceId": "[INSTANCE_ID]",
       "bigtableTableId": "[TABLE_ID]",
       "bigtableAppProfileId": "[APPLICATION_PROFILE_ID]",
       "destinationPath": "[DESTINATION_PATH]",
       "filenamePrefix": "[FILENAME_PREFIX]",
   },
   "environment": { "zone": "us-central1-f" }
}

Texte Cloud Datastore vers Cloud Storage

Le modèle Texte Cloud Datastore vers Cloud Storage est un pipeline par lots qui lit les entités Cloud Datastore et les écrit dans Cloud Storage sous forme de fichiers texte. Vous pouvez fournir une fonction pour traiter chaque entité en tant que chaîne JSON. Si vous ne fournissez pas de fonction, chaque ligne du fichier de sortie sera une entité sérialisée JSON.

Conditions requises pour ce pipeline :

Cloud Datastore doit être configuré dans le projet avant l'exécution du pipeline.

Paramètres de modèle

Paramètre Description
datastoreReadGqlQuery Une requête GQL qui spécifie les entités à saisir. Par exemple, SELECT * FROM MyKind.
datastoreReadProjectId ID de projet GCP de l'instance Cloud Datastore à partir de laquelle vous souhaitez lire les données.
datastoreReadNamespace Espace de noms des entités demandées. Pour utiliser l'espace de noms par défaut, ne renseignez pas ce paramètre.
javascriptTextTransformGcsPath Chemin d'accès Cloud Storage contenant tout votre code JavaScript. Par exemple, gs://mybucket/mytransforms/*.js. Si vous ne souhaitez pas fournir de fonction, ne renseignez pas ce paramètre.
javascriptTextTransformFunctionName Nom de la fonction JavaScript à appeler. Par exemple, si votre fonction JavaScript est function myTransform(inJson) { ...dostuff...}, le nom de la fonction est myTransform. Si vous ne souhaitez pas fournir de fonction, ne renseignez pas ce paramètre.
textWritePrefix Préfixe du chemin d'accès Cloud Storage pour spécifier l'emplacement où les données doivent être écrites. Par exemple, gs://mybucket/somefolder/.

Exécuter le modèle Texte Cloud Datastore vers Cloud Storage

CONSOLE

Exécution à partir de la console Google Cloud Platform
  1. Accédez à la page Cloud Dataflow dans la console GCP.
  2. Accéder à la page Cloud Dataflow
  3. Cliquez sur Créer une tâche à partir d'un modèle.
  4. Bouton
  5. Sélectionnez the Cloud Datastore to Cloud Storage Text template dans le menu déroulant du modèle Cloud Dataflow.
  6. Saisissez un nom de tâche dans le champ Nom de la tâche. Le nom du projet doit correspondre à l'expression régulière [a-z]([-a-z0-9]{0,38}[a-z0-9])? pour être valide.
  7. Saisissez vos valeurs de paramètres dans les champs fournis.
  8. Cliquez sur Exécuter la tâche.

GCLOUD

Exécution à partir de l'outil de ligne de commande gcloud

Remarque : Pour exécuter des modèles à l'aide de l'outil de ligne de commande gcloud, vous devez disposer du SDK Cloud version 138.0.0 ou ultérieure.

Lors de l'exécution de ce modèle, vous aurez besoin du chemin d'accès Cloud Storage au modèle :

gs://dataflow-templates/VERSION/Datastore_to_GCS_Text

Vous devez remplacer les valeurs suivantes dans l'exemple ci-dessous :

  • Remplacez YOUR_PROJECT_ID par votre ID de projet.
  • Remplacez JOB_NAME par le nom de tâche de votre choix. Le nom de la tâche doit correspondre à l'expression régulière [a-z]([-a-z0-9]{0,38}[a-z0-9])? pour être valide.
  • Remplacez YOUR_BUCKET_NAME par le nom du bucket Cloud Storage.
  • Remplacez YOUR_DATASTORE_KIND par le type de vos entités Datastore.
  • Remplacez YOUR_DATASTORE_NAMESPACE par l'espace de noms de vos entités Datastore.
  • Remplacez YOUR_JAVASCRIPT_FUNCTION par le nom de votre fonction JavaScript.
  • Remplacez PATH_TO_JAVASCRIPT_UDF_FILE par le chemin d'accès Cloud Storage au fichier .js contenant votre code JavaScript.
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/Datastore_to_GCS_Text \
    --parameters \
datastoreReadGqlQuery="SELECT * FROM YOUR_DATASTORE_KIND",\
datastoreReadProjectId=YOUR_PROJECT_ID,\
datastoreReadNamespace=YOUR_DATASTORE_NAMESPACE,\
javascriptTextTransformGcsPath=PATH_TO_JAVASCRIPT_UDF_FILE,\
javascriptTextTransformFunctionName=YOUR_JAVASCRIPT_FUNCTION,\
textWritePrefix=gs://YOUR_BUCKET_NAME/output/

API

Exécution à partir de l'API REST

Lors de l'exécution de ce modèle, vous aurez besoin du chemin d'accès Cloud Storage au modèle :

gs://dataflow-templates/VERSION/Datastore_to_GCS_Text

Pour exécuter ce modèle avec une requête API REST, envoyez une requête HTTP POST avec votre ID de projet. Cette requête nécessite une autorisation.

Vous devez remplacer les valeurs suivantes dans l'exemple ci-dessous :

  • Remplacez YOUR_PROJECT_ID par votre ID de projet.
  • Remplacez JOB_NAME par le nom de tâche de votre choix. Le nom de la tâche doit correspondre à l'expression régulière [a-z]([-a-z0-9]{0,38}[a-z0-9])? pour être valide.
  • Remplacez YOUR_BUCKET_NAME par le nom du bucket Cloud Storage.
  • Remplacez YOUR_DATASTORE_KIND par le type de vos entités Datastore.
  • Remplacez YOUR_DATASTORE_NAMESPACE par l'espace de noms de vos entités Datastore.
  • Remplacez YOUR_JAVASCRIPT_FUNCTION par le nom de votre fonction JavaScript.
  • Remplacez PATH_TO_JAVASCRIPT_UDF_FILE par le chemin d'accès Cloud Storage au fichier .js contenant votre code JavaScript.
POST https://dataflow.googleapis.com/v1b3/projects/YOUR_PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/Datastore_to_GCS_Text
{
   "jobName": "JOB_NAME",
   "parameters": {
       "datastoreReadGqlQuery": "SELECT * FROM YOUR_DATASTORE_KIND"
       "datastoreReadProjectId": "YOUR_PROJECT_ID",
       "datastoreReadNamespace": "YOUR_DATASTORE_NAMESPACE",
       "javascriptTextTransformGcsPath": "PATH_TO_JAVASCRIPT_UDF_FILE",
       "javascriptTextTransformFunctionName": "YOUR_JAVASCRIPT_FUNCTION",
       "textWritePrefix": "gs://YOUR_BUCKET_NAME/output/"
   },
   "environment": { "zone": "us-central1-f" }
}

Cloud Spanner vers Cloud Storage Avro

Le modèle Cloud Spanner vers Cloud Storage est un pipeline par lots qui exporte une base de données Cloud Spanner complète vers Cloud Storage au format Avro. L'exportation d'une base de données Cloud Spanner crée un dossier dans le bucket que vous sélectionnez. Le dossier contient :

  • Un fichier spanner-export.json.
  • Un fichier TableName-manifest.json pour chaque table de la base de données que vous avez exportée.
  • Un ou plusieurs fichiers TableName.avro-#####-of-#####.

Par exemple, l'exportation d'une base de données avec deux tables, Singers et Albums, crée l'ensemble de fichiers suivant :

  • Albums-manifest.json
  • Albums.avro-00000-of-00002
  • Albums.avro-00001-of-00002
  • Singers-manifest.json
  • Singers.avro-00000-of-00003
  • Singers.avro-00001-of-00003
  • Singers.avro-00002-of-00003
  • spanner-export.json

Conditions requises pour ce pipeline :

  • La base de données Cloud Spanner doit exister.
  • Le bucket Cloud Storage de sortie doit exister.
  • Outre les rôles Cloud IAM nécessaires pour exécuter les tâches Cloud Dataflow, vous devez également disposer des rôles Cloud IAM appropriés pour lire vos données Cloud Spanner et écrire dans votre bucket Cloud Storage.

Paramètres de modèle

Paramètre Description
instanceId ID d'instance de la base de données Cloud Spanner à exporter.
databaseId ID de base de données de la base de données Cloud Spanner que vous souhaitez exporter.
outputDir Chemin d'accès Cloud Storage vers lequel vous souhaitez exporter les fichiers Avro. La tâche d'exportation crée un dépôt contenant les fichiers exportés sous ce chemin d'accès.

Exécuter le modèle

CONSOLE

Exécution à partir de la console Google Cloud Platform
  1. Accédez à la page Cloud Dataflow dans la console GCP.
  2. Accéder à la page Cloud Dataflow
  3. Cliquez sur Créer une tâche à partir d'un modèle.
  4. Bouton
  5. Sélectionnez the Cloud Spanner to Cloud Storage Avro template dans le menu déroulant du modèle Cloud Dataflow.
  6. Saisissez un nom de tâche dans le champ Nom de la tâche.
    • Le nom de la tâche doit correspondre à l'expression régulière [a-z]([-a-z0-9]{0,38}[a-z0-9])? pour être valide.
    • Le nom de la tâche doit être conforme au format exportcloud-spanner--[YOUR_INSTANCE_ID]-[YOUR_DATABASE_ID] pour s'afficher dans la partie Cloud Spanner de la console GCP.
  7. Saisissez vos valeurs de paramètres dans les champs fournis.
  8. Cliquez sur Exécuter la tâche.

GCLOUD

Exécution à partir de l'outil de ligne de commande gcloud

Remarque : Pour exécuter des modèles à l'aide de l'outil de ligne de commande gcloud, vous devez disposer du SDK Cloud version 138.0.0 ou ultérieure.

Lors de l'exécution de ce modèle, vous aurez besoin du chemin d'accès Cloud Storage au modèle :

gs://dataflow-templates/VERSION/Cloud_Spanner_to_GCS_Avro

Utilisez cet exemple de requête comme indiqué dans la section Utiliser l'API REST. Cette requête nécessite une autorisation et vous devez spécifier un tempLocation dans lequel vous disposez d'autorisations en écriture. Vous devez remplacer les valeurs suivantes dans l'exemple ci-dessous :

  • Remplacez [DATAFLOW_REGION] par la région dans laquelle vous souhaitez exécuter la tâche Cloud Dataflow (par exemple, us-central1).
  • Remplacez [YOUR_INSTANCE_ID] par votre ID d'instance Cloud Spanner.
  • Remplacez [YOUR_DATABASE_ID] par votre ID de base de données Cloud Spanner.
  • Remplacez [YOUR_GCS_DIRECTORY] par le chemin d'accès Cloud Storage vers lequel les fichiers Avro doivent être exportés.
  • Remplacez [JOB_NAME] par le nom de tâche de votre choix.
    • Le nom de la tâche doit correspondre à l'expression régulière [a-z]([-a-z0-9]{0,38}[a-z0-9])? pour être valide.
    • Le nom de la tâche doit être conforme au format exportcloud-spanner--[YOUR_INSTANCE_ID]-[YOUR_DATABASE_ID] pour s'afficher dans la partie Cloud Spanner de la console GCP.
gcloud dataflow jobs run [JOB_NAME] \
    --gcs-location='gs://dataflow-templates/[VERSION]/Cloud_Spanner_to_GCS_Avro' \
    --region=[DATAFLOW_REGION] \
    --parameters='instanceId=[YOUR_INSTANCE_ID],databaseId=[YOUR_DATABASE_ID],outputDir=[YOUR_GCS_DIRECTORY]

API

Exécution à partir de l'API REST

Lors de l'exécution de ce modèle, vous aurez besoin du chemin d'accès Cloud Storage au modèle :

gs://dataflow-templates/VERSION/Cloud_Spanner_to_GCS_Avro

Utilisez cet exemple de requête comme indiqué dans la section Utiliser l'API REST. Cette requête nécessite une autorisation et vous devez spécifier un tempLocation dans lequel vous disposez d'autorisations en écriture. Vous devez remplacer les valeurs suivantes dans l'exemple ci-dessous :

  • Remplacez [YOUR_PROJECT_ID] par l'ID du projet.
  • Remplacez [DATAFLOW_REGION] par la région dans laquelle vous souhaitez exécuter la tâche Cloud Dataflow (par exemple, us-central1).
  • Remplacez [YOUR_INSTANCE_ID] par votre ID d'instance Cloud Spanner.
  • Remplacez [YOUR_DATABASE_ID] par votre ID de base de données Cloud Spanner.
  • Remplacez [YOUR_GCS_DIRECTORY] par le chemin d'accès Cloud Storage vers lequel les fichiers Avro doivent être exportés.
  • Remplacez [JOB_NAME] par le nom de tâche de votre choix.
    • Le nom de la tâche doit correspondre à l'expression régulière [a-z]([-a-z0-9]{0,38}[a-z0-9])? pour être valide.
    • Le nom de la tâche doit être conforme au format exportcloud-spanner--[YOUR_INSTANCE_ID]-[YOUR_DATABASE_ID] pour s'afficher dans la partie Cloud Spanner de la console GCP.
POST https://dataflow.googleapis.com/v1b3/projects/[YOUR_PROJECT_ID]/locations/[DATAFLOW_REGION]/templates:launch?gcsPath=gs://dataflow-templates/[VERSION]/Cloud_Spanner_to_GCS_Avro
{
   "jobName": "[JOB_NAME]",
   "parameters": {
       "instanceId": "[YOUR_INSTANCE_ID]",
       "databaseId": "[YOUR_DATABASE_ID]",
       "outputDir": "gs://[YOUR_GCS_DIRECTORY]"
   }
}

Cloud Spanner vers texte Cloud Storage

Le modèle Cloud Spanner vers texte Cloud Storage est un pipeline par lots qui lit les données d'une table Cloud Spanner, peut éventuellement les transformer à l'aide d'un script JavaScript UDF (Fonctions définies par l'utilisateur) que vous fournissez, et les écrit dans Cloud Storage, sous forme de fichiers texte CSV.

Conditions requises pour ce pipeline :

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

Paramètres de modèle

Paramètre Description
spannerProjectId L'ID du projet GCP de la base de données Cloud Spanner à partir de laquelle vous souhaitez lire les données.
spannerDatabaseId Base de données de la table demandée.
spannerInstanceId Instance de la table demandée.
spannerTable Table à exporter.
textWritePrefix Répertoire de sortie dans lequel les fichiers texte de sortie seront écrits. Veuillez ajouter / à la fin. Par exemple : gs://mybucket/somefolder/.
javascriptTextTransformGcsPath [Facultatif] Chemin d'accès Cloud Storage contenant tout votre code JavaScript. Par exemple, gs://mybucket/mytransforms/*.js. Si vous ne souhaitez pas fournir de fonction, ne renseignez pas ce paramètre.
javascriptTextTransformFunctionName [Facultatif] Nom de la fonction JavaScript à appeler. Par exemple, si votre fonction JavaScript est function myTransform(inJson) { ...dostuff...}, le nom de la fonction est myTransform. Si vous ne souhaitez pas fournir de fonction, ne renseignez pas ce paramètre.

Exécuter le modèle Texte Cloud Spanner vers Cloud Storage

CONSOLE

Exécution à partir de la console Google Cloud Platform
  1. Accédez à la page Cloud Dataflow dans la console GCP.
  2. Accéder à la page Cloud Dataflow
  3. Cliquez sur Créer une tâche à partir d'un modèle.
  4. Bouton
  5. Sélectionnez the Cloud Spanner to Cloud Storage Text template dans le menu déroulant du modèle Cloud Dataflow.
  6. Saisissez un nom de tâche dans le champ Nom de la tâche. Le nom du projet doit correspondre à l'expression régulière [a-z]([-a-z0-9]{0,38}[a-z0-9])? pour être valide.
  7. Saisissez vos valeurs de paramètres dans les champs fournis.
  8. Cliquez sur Exécuter la tâche.

GCLOUD

Exécution à partir de l'outil de ligne de commande gcloud

Remarque : Pour exécuter des modèles à l'aide de l'outil de ligne de commande gcloud, vous devez disposer du SDK Cloud version 138.0.0 ou ultérieure.

Lors de l'exécution de ce modèle, vous aurez besoin du chemin d'accès Cloud Storage au modèle :

gs://dataflow-templates/VERSION/Spanner_to_GCS_Text

Vous devez remplacer les valeurs suivantes dans l'exemple ci-dessous :

  • Remplacez YOUR_PROJECT_ID par votre ID de projet.
  • Remplacez JOB_NAME par le nom de tâche de votre choix. Le nom de la tâche doit correspondre à l'expression régulière [a-z]([-a-z0-9]{0,38}[a-z0-9])? pour être valide.
  • Remplacez YOUR_DATABASE_ID par l'ID de base de données Cloud Spanner.
  • Remplacez YOUR_BUCKET_NAME par le nom du bucket Cloud Storage.
  • Remplacez YOUR_INSTANCE_ID par l'ID d'instance Cloud Spanner.
  • Remplacez YOUR_TABLE_ID par l'ID de la table Cloud Spanner.
  • Remplacez PATH_TO_JAVASCRIPT_UDF_FILE par le chemin d'accès Cloud Storage au fichier .js contenant votre code JavaScript.
  • Remplacez YOUR_JAVASCRIPT_FUNCTION par le nom de votre fonction JavaScript.
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/Spanner_to_GCS_Text \
    --parameters \
spannerProjectId=YOUR_PROJECT_ID,\
spannerDatabaseId=YOUR_DATABASE_ID,\
spannerInstanceId=YOUR_INSTANCE_ID,\
spannerTable=YOUR_TABLE_ID,\
textWritePrefix=gs://YOUR_BUCKET_NAME/output/,\
javascriptTextTransformGcsPath=PATH_TO_JAVASCRIPT_UDF_FILE,\
javascriptTextTransformFunctionName=YOUR_JAVASCRIPT_FUNCTION

API

Exécution à partir de l'API REST

Lors de l'exécution de ce modèle, vous aurez besoin du chemin d'accès Cloud Storage au modèle :

gs://dataflow-templates/VERSION/Spanner_to_GCS_Text

Pour exécuter ce modèle avec une requête API REST, envoyez une requête HTTP POST avec votre ID de projet. Cette requête nécessite une autorisation.

Vous devez remplacer les valeurs suivantes dans l'exemple ci-dessous :

  • Remplacez YOUR_PROJECT_ID par votre ID de projet.
  • Remplacez JOB_NAME par le nom de tâche de votre choix. Le nom de la tâche doit correspondre à l'expression régulière [a-z]([-a-z0-9]{0,38}[a-z0-9])? pour être valide.
  • Remplacez YOUR_DATABASE_ID par l'ID de base de données Cloud Spanner.
  • Remplacez YOUR_BUCKET_NAME par le nom du bucket Cloud Storage.
  • Remplacez YOUR_INSTANCE_ID par l'ID d'instance Cloud Spanner.
  • Remplacez YOUR_TABLE_ID par l'ID de la table Cloud Spanner.
  • Remplacez PATH_TO_JAVASCRIPT_UDF_FILE par le chemin d'accès Cloud Storage au fichier .js contenant votre code JavaScript.
  • Remplacez YOUR_JAVASCRIPT_FUNCTION par le nom de votre fonction JavaScript.
POST https://dataflow.googleapis.com/v1b3/projects/YOUR_PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/Spanner_to_GCS_Text
{
   "jobName": "JOB_NAME",
   "parameters": {
       "spannerProjectId": "YOUR_PROJECT_ID",
       "spannerDatabaseId": "YOUR_DATABASE_ID",
       "spannerInstanceId": "YOUR_INSTANCE_ID",
       "spannerTable": "YOUR_TABLE_ID",
       "textWritePrefix": "gs://YOUR_BUCKET_NAME/output/",
       "javascriptTextTransformGcsPath": "PATH_TO_JAVASCRIPT_UDF_FILE",
       "javascriptTextTransformFunctionName": "YOUR_JAVASCRIPT_FUNCTION"
   },
   "environment": { "zone": "us-central1-f" }
}

Cloud Storage Avro vers Cloud Bigtable

Le modèle Cloud Storage Avro vers Cloud Bigtable est un pipeline qui lit les données des fichiers Avro dans un bucket Cloud Storage et écrit les données dans une table Bigtable. Vous pouvez utiliser le modèle pour copier les données de Cloud Storage dans Cloud Bigtable.

Conditions requises pour ce pipeline :

  • La table Cloud Bigtable doit exister et posséder les mêmes familles de colonnes que dans les fichiers Avro exportés.
  • Les fichiers d'entrée Avro doivent exister dans un bucket Cloud Storage avant l'exécution du pipeline.
  • Cloud Bigtable attend un schéma spécifique des fichiers d'entrée Avro.

Paramètres de modèle

Paramètre Description
bigtableProjectId ID du projet GCP de l'instance Cloud Bigtable dans laquelle vous voulez écrire les données.
bigtableInstanceId ID de l'instance Cloud Bigtable qui contient la table.
bigtableTableId ID de la table Cloud Bigtable à importer.
inputFilePattern Modèle de chemin d'accès de Cloud Storage où se trouvent les données. Par exemple, gs://mybucket/somefolder/prefix*.

Exécuter le modèle Fichier Avro Cloud Storage vers Cloud Bigtable

CONSOLE

Exécution à partir de la console Google Cloud Platform
  1. Accédez à la page Cloud Dataflow dans la console GCP.
  2. Accéder à la page Cloud Dataflow
  3. Cliquez sur Créer une tâche à partir d'un modèle.
  4. Bouton
  5. Sélectionnez the Cloud Spanner to Cloud Storage Text template dans le menu déroulant du modèle Cloud Dataflow.
  6. Saisissez un nom de tâche dans le champ Nom de la tâche. Le nom du projet doit correspondre à l'expression régulière [a-z]([-a-z0-9]{0,38}[a-z0-9])? pour être valide.
  7. Saisissez vos valeurs de paramètres dans les champs fournis.
  8. Cliquez sur Exécuter la tâche.

GCLOUD

Exécution à partir de l'outil de ligne de commande gcloud

Remarque : Pour exécuter des modèles à l'aide de l'outil de ligne de commande gcloud, vous devez disposer du SDK Cloud version 138.0.0 ou ultérieure.

Lors de l'exécution de ce modèle, vous aurez besoin du chemin d'accès Cloud Storage au modèle :

gs://dataflow-templates/VERSION/Spanner_to_GCS_Text

Utilisez cet exemple de requête comme indiqué dans la section Utiliser l'API REST. Cette requête nécessite une autorisation et vous devez spécifier un tempLocation dans lequel vous disposez d'autorisations en écriture. Vous devez remplacer les valeurs suivantes dans l'exemple ci-dessous :

  • Remplacez [YOUR_PROJECT_ID] par l'ID du projet.
  • Remplacez [JOB_NAME] par le nom de tâche de votre choix. Le nom de la tâche doit correspondre à l'expression régulière [a-z]([-a-z0-9]{0,38}[a-z0-9])? pour être valide.
  • Remplacez [PROJECT_ID] par l'ID de projet GCP de l'instance Cloud Bigtable à partir de laquelle vous souhaitez lire les données.
  • Remplacez [INSTANCE_ID] par l'ID de l'instance Cloud Bigtable contenant la table.
  • Remplacez [TABLE_ID] par l'ID de la table Cloud Bigtable à exporter.
  • Remplacez [INPUT_FILE_PATTERN] par le modèle de chemin d'accès à Cloud Storage où se trouvent les données. Par exemple, gs://mybucket/somefolder/prefix*.
gcloud dataflow jobs run [JOB_NAME] \
    --gcs-location gs://dataflow-templates/latest/Spanner_to_GCS_Text \
    --parameters bigtableProjectId=[PROJECT_ID],bigtableInstanceId=[INSTANCE_ID],bigtableTableId=[TABLE_ID],inputFilePattern=[INPUT_FILE_PATTERN]

API

Exécution à partir de l'API REST

Lors de l'exécution de ce modèle, vous aurez besoin du chemin d'accès Cloud Storage au modèle :

gs://dataflow-templates/VERSION/Spanner_to_GCS_Text

Pour exécuter ce modèle avec une requête API REST, envoyez une requête HTTP POST avec votre ID de projet. Cette requête nécessite une autorisation.

Utilisez cet exemple de requête comme indiqué dans la section Utiliser l'API REST. Cette requête nécessite une autorisation et vous devez spécifier un tempLocation dans lequel vous disposez d'autorisations en écriture. Vous devez remplacer les valeurs suivantes dans l'exemple ci-dessous :

  • Remplacez [YOUR_PROJECT_ID] par l'ID du projet.
  • Remplacez [JOB_NAME] par le nom de tâche de votre choix. Le nom de la tâche doit correspondre à l'expression régulière [a-z]([-a-z0-9]{0,38}[a-z0-9])? pour être valide.
  • Remplacez [PROJECT_ID] par l'ID de projet GCP de l'instance Cloud Bigtable à partir de laquelle vous souhaitez lire les données.
  • Remplacez [INSTANCE_ID] par l'ID de l'instance Cloud Bigtable contenant la table.
  • Remplacez [TABLE_ID] par l'ID de la table Cloud Bigtable à exporter.
  • Remplacez [INPUT_FILE_PATTERN] par le modèle de chemin d'accès à Cloud Storage où se trouvent les données. Par exemple, gs://mybucket/somefolder/prefix*.
POST https://dataflow.googleapis.com/v1b3/projects/[YOUR_PROJECT_ID]/templates:launch?gcsPath=gs://dataflow-templates/latest/Spanner_to_GCS_Text
{
   "jobName": "[JOB_NAME]",
   "parameters": {
       "bigtableProjectId": "[PROJECT_ID]",
       "bigtableInstanceId": "[INSTANCE_ID]",
       "bigtableTableId": "[TABLE_ID]",
       "inputFilePattern": "[INPUT_FILE_PATTERN]",
   },
   "environment": { "zone": "us-central1-f" }
}

Cloud Storage Avro vers Cloud Spanner

Le modèle de fichiers Avro Cloud Storage vers Cloud Spanner est un pipeline par lots qui lit les fichiers Avro de Cloud Storage et les importe dans une base de données Cloud Spanner.

Conditions requises pour ce pipeline :

  • La base de données Cloud Spanner cible doit exister et être vide.
  • Vous devez disposer d'autorisations en lecture pour le bucket Cloud Storage et d'autorisations en écriture pour la base de données Cloud Spanner cible.
  • Le chemin d'accès à Cloud Storage en entrée doit exister et inclure un fichier spanner-export.json contenant une description JSON des fichiers à importer.

Paramètres de modèle

Paramètre Description
instanceId ID d'instance de la base de données Cloud Spanner.
databaseId ID de base de données de la base de données Cloud Spanner.
inputDir Chemin d'accès Cloud Storage où les fichiers Avro doivent être importés.

Exécuter le modèle

CONSOLE

Exécution à partir de la console Google Cloud Platform
  1. Accédez à la page Cloud Dataflow dans la console GCP.
  2. Accéder à la page Cloud Dataflow
  3. Cliquez sur Créer une tâche à partir d'un modèle.
  4. Bouton
  5. Sélectionnez the Cloud Storage Avro to Cloud Spanner template dans le menu déroulant du modèle Cloud Dataflow.
  6. Saisissez un nom de tâche dans le champ Nom de la tâche.
    • Le nom de la tâche doit correspondre à l'expression régulière [a-z]([-a-z0-9]{0,38}[a-z0-9])? pour être valide.
    • Le nom de la tâche doit être conforme au format importcloud-spanner--[YOUR_INSTANCE_ID]-[YOUR_DATABASE_ID] pour s'afficher dans la partie Cloud Spanner de la console GCP.
  7. Saisissez vos valeurs de paramètres dans les champs fournis.
  8. Cliquez sur Exécuter la tâche.

GCLOUD

Exécution à partir de l'outil de ligne de commande gcloud

Remarque : Pour exécuter des modèles à l'aide de l'outil de ligne de commande gcloud, vous devez disposer du SDK Cloud version 138.0.0 ou ultérieure.

Lors de l'exécution de ce modèle, vous aurez besoin du chemin d'accès Cloud Storage au modèle :

gs://dataflow-templates/VERSION/GCS_Avro_to_Cloud_Spanner

Utilisez cet exemple de requête comme indiqué dans la section Utiliser l'API REST. Cette requête nécessite une autorisation et vous devez spécifier un tempLocation dans lequel vous disposez d'autorisations en écriture. Vous devez remplacer les valeurs suivantes dans l'exemple ci-dessous :

  • Remplacez [YOUR_PROJECT_ID] par l'ID du projet.
  • Remplacez [JOB_NAME] par le nom de tâche de votre choix. Le nom de la tâche doit correspondre à l'expression régulière [a-z]([-a-z0-9]{0,38}[a-z0-9])? pour être valide.
  • Remplacez [PROJECT_ID] par l'ID de projet GCP de l'instance Cloud Bigtable à partir de laquelle vous souhaitez lire les données.
  • Remplacez [INSTANCE_ID] par l'ID de l'instance Cloud Bigtable contenant la table.
  • Remplacez [TABLE_ID] par l'ID de la table Cloud Bigtable à exporter.
  • Remplacez [INPUT_FILE_PATTERN] par le modèle de chemin d'accès à Cloud Storage où se trouvent les données. Par exemple, gs://mybucket/somefolder/prefix*.
gcloud dataflow jobs run [JOB_NAME] \
    --gcs-location='gs://dataflow-templates/[VERSION]/GCS_Avro_to_Cloud_Spanner' \
    --region=[DATAFLOW_REGION] \
    --parameters='instanceId=[YOUR_INSTANCE_ID],databaseId=[YOUR_DATABASE_ID],inputDir=[YOUR_GCS_DIRECTORY]'

API

Exécution à partir de l'API REST

Lors de l'exécution de ce modèle, vous aurez besoin du chemin d'accès Cloud Storage au modèle :

gs://dataflow-templates/VERSION/GCS_Avro_to_Cloud_Spanner

Utilisez cet exemple de requête comme indiqué dans la section Utiliser l'API REST. Cette requête nécessite une autorisation et vous devez spécifier un tempLocation dans lequel vous disposez d'autorisations en écriture. Vous devez remplacer les valeurs suivantes dans l'exemple ci-dessous :

  • Remplacez [YOUR_PROJECT_ID] par l'ID du projet.
  • Remplacez [JOB_NAME] par le nom de tâche de votre choix. Le nom de la tâche doit correspondre à l'expression régulière [a-z]([-a-z0-9]{0,38}[a-z0-9])? pour être valide.
  • Remplacez [PROJECT_ID] par l'ID de projet GCP de l'instance Cloud Bigtable à partir de laquelle vous souhaitez lire les données.
  • Remplacez [INSTANCE_ID] par l'ID de l'instance Cloud Bigtable contenant la table.
  • Remplacez [TABLE_ID] par l'ID de la table Cloud Bigtable à exporter.
  • Remplacez [INPUT_FILE_PATTERN] par le modèle de chemin d'accès à Cloud Storage où se trouvent les données. Par exemple, gs://mybucket/somefolder/prefix*.
POST https://dataflow.googleapis.com/v1b3/projects/[YOUR_PROJECT_ID]/locations/[DATAFLOW_REGION]/templates:launch?gcsPath=gs://dataflow-templates/[VERSION]/GCS_Avro_to_Cloud_Spanner
{
   "jobName": "[JOB_NAME]",
   "parameters": {
       "instanceId": "[YOUR_INSTANCE_ID]",
       "databaseId": "[YOUR_DATABASE_ID]",
       "inputDir": "gs://[YOUR_GCS_DIRECTORY]"
   },
   "environment": {
       "machineType": "n1-standard-2"
   }
}

Cloud Storage SequenceFile vers Cloud Bigtable

Le modèle Cloud Storage SequenceFile vers Cloud Bigtable est un pipeline qui lit les données des fichiers SequenceFile dans un bucket Cloud Storage et les écrit dans une table Cloud Bigtable. Vous pouvez utiliser le modèle pour copier des données de Cloud Storage dans Cloud Bigtable.

Conditions requises pour ce pipeline :

  • La table Cloud Bigtable doit exister.
  • Les fichiers d'entrée SequenceFiles doivent exister dans un bucket Cloud Storage avant l'exécution du pipeline.
  • Les fichiers d'entrée SequenceFiles doivent avoir été exportés de Cloud Bigtable ou de HBase.

Paramètres de modèle

Paramètre Description
bigtableProject ID du projet GCP de l'instance Cloud Bigtable dans laquelle vous voulez écrire les données.
bigtableInstanceId ID de l'instance Cloud Bigtable qui contient la table.
bigtableTableId ID de la table Cloud Bigtable à importer.
bigtableAppProfileId ID du profil d'application Cloud Bigtable à utiliser pour l'importation. Si vous ne spécifiez pas de profil d'application, Cloud Bigtable utilise le profil d'application par défaut de l'instance.
sourcePattern Modèle de chemin d'accès de Cloud Storage où se trouvent les données. Par exemple, gs://mybucket/somefolder/prefix*.

Exécuter le modèle SequenceFile Cloud Storage vers Cloud Bigtable

CONSOLE

Exécution à partir de la console Google Cloud Platform
  1. Accédez à la page Cloud Dataflow dans la console GCP.
  2. Accéder à la page Cloud Dataflow
  3. Cliquez sur Créer une tâche à partir d'un modèle.
  4. Bouton
  5. Sélectionnez the Cloud Storage Avro to Cloud Spanner template dans le menu déroulant du modèle Cloud Dataflow.
  6. Saisissez un nom de tâche dans le champ Nom de la tâche. Le nom du projet doit correspondre à l'expression régulière [a-z]([-a-z0-9]{0,38}[a-z0-9])? pour être valide.
  7. Saisissez vos valeurs de paramètres dans les champs fournis.
  8. Cliquez sur Exécuter la tâche.

GCLOUD

Exécution à partir de l'outil de ligne de commande gcloud

Remarque : Pour exécuter des modèles à l'aide de l'outil de ligne de commande gcloud, vous devez disposer du SDK Cloud version 138.0.0 ou ultérieure.

Lors de l'exécution de ce modèle, vous aurez besoin du chemin d'accès Cloud Storage au modèle :

gs://dataflow-templates/VERSION/GCS_Avro_to_Cloud_Spanner

Utilisez cet exemple de requête comme indiqué dans la section Utiliser l'API REST. Cette requête nécessite une autorisation et vous devez spécifier un tempLocation dans lequel vous disposez d'autorisations en écriture. Vous devez remplacer les valeurs suivantes dans l'exemple ci-dessous :

  • Remplacez [YOUR_PROJECT_ID] par l'ID du projet.
  • Remplacez [JOB_NAME] par le nom de tâche de votre choix. Le nom de la tâche doit correspondre à l'expression régulière [a-z]([-a-z0-9]{0,38}[a-z0-9])? pour être valide.
  • Remplacez [PROJECT_ID] par l'ID de projet GCP de l'instance Cloud Bigtable à partir de laquelle vous souhaitez lire les données.
  • Remplacez [INSTANCE_ID] par l'ID de l'instance Cloud Bigtable contenant la table.
  • Remplacez [TABLE_ID] par l'ID de la table Cloud Bigtable à exporter.
  • Remplacez [APPLICATION_PROFILE_ID] par l'ID du profil d'application Cloud Bigtable à utiliser pour l'exportation.
  • Remplacez [SOURCE_PATTERN] par le modèle de chemin d'accès à Cloud Storage où se trouvent les données. Par exemple, gs://mybucket/somefolder/prefix*.
gcloud dataflow jobs run [JOB_NAME] \
    --gcs-location gs://dataflow-templates/latest/GCS_Avro_to_Cloud_Spanner \
    --parameters bigtableProject=[PROJECT_ID],bigtableInstanceId=[INSTANCE_ID],bigtableTableId=[TABLE_ID],bigtableAppProfileId=[APPLICATION_PROFILE_ID],sourcePattern=[SOURCE_PATTERN]

API

Exécution à partir de l'API REST

Lors de l'exécution de ce modèle, vous aurez besoin du chemin d'accès Cloud Storage au modèle :

gs://dataflow-templates/VERSION/GCS_Avro_to_Cloud_Spanner

Pour exécuter ce modèle avec une requête API REST, envoyez une requête HTTP POST avec votre ID de projet. Cette requête nécessite une autorisation.

Utilisez cet exemple de requête comme indiqué dans la section Utiliser l'API REST. Cette requête nécessite une autorisation et vous devez spécifier un tempLocation dans lequel vous disposez d'autorisations en écriture. Vous devez remplacer les valeurs suivantes dans l'exemple ci-dessous :

  • Remplacez [YOUR_PROJECT_ID] par l'ID du projet.
  • Remplacez [JOB_NAME] par le nom de tâche de votre choix. Le nom de la tâche doit correspondre à l'expression régulière [a-z]([-a-z0-9]{0,38}[a-z0-9])? pour être valide.
  • Remplacez [PROJECT_ID] par l'ID de projet GCP de l'instance Cloud Bigtable à partir de laquelle vous souhaitez lire les données.
  • Remplacez [INSTANCE_ID] par l'ID de l'instance Cloud Bigtable contenant la table.
  • Remplacez [TABLE_ID] par l'ID de la table Cloud Bigtable à exporter.
  • Remplacez [APPLICATION_PROFILE_ID] par l'ID du profil d'application Cloud Bigtable à utiliser pour l'exportation.
  • Remplacez [SOURCE_PATTERN] par le modèle de chemin d'accès à Cloud Storage où se trouvent les données. Par exemple, gs://mybucket/somefolder/prefix*.
POST https://dataflow.googleapis.com/v1b3/projects/[YOUR_PROJECT_ID]/templates:launch?gcsPath=gs://dataflow-templates/latest/GCS_Avro_to_Cloud_Spanner
{
   "jobName": "[JOB_NAME]",
   "parameters": {
       "bigtableProject": "[PROJECT_ID]",
       "bigtableInstanceId": "[INSTANCE_ID]",
       "bigtableTableId": "[TABLE_ID]",
       "bigtableAppProfileId": "[APPLICATION_PROFILE_ID]",
       "sourcePattern": "[SOURCE_PATTERN]",
   },
   "environment": { "zone": "us-central1-f" }
}

Texte Cloud Storage vers BigQuery

Le pipeline Texte Cloud Storage vers BigQuery est un pipeline par lots qui vous permet de lire des fichiers texte stockés dans Cloud Storage, de les transformer à l'aide de la fonction définie par l'utilisateur (UDF) JavaScript et de générer le résultat dans BigQuery.

IMPORTANT : Si vous réutilisez une table BigQuery existante, celle-ci sera écrasée.

Conditions requises pour ce pipeline :

  • Créez un fichier JSON décrivant votre schéma BigQuery.

    Assurez-vous qu'il existe un tableau JSON de niveau supérieur intitulé BigQuery Schema et que son contenu suit le modèle {"name": "COLUMN_NAME", "type": "DATA_TYPE"}. Exemple :

    {
      "BigQuery Schema": [
        {
          "name": "location",
          "type": "STRING"
        },
        {
          "name": "name",
          "type": "STRING"
        },
        {
          "name": "age",
          "type": "STRING"
        },
        {
          "name": "color",
          "type": "STRING"
        },
        {
          "name": "coffee",
          "type": "STRING"
        }
      ]
    }
    
  • Créez un fichier JavaScript (.js) à l'aide de la fonction définie par l'utilisateur (UDF) qui fournit la logique pour transformer les lignes de texte. Notez que votre fonction doit renvoyer une chaîne JSON.

    Par exemple, cette fonction divise chaque ligne d'un fichier CSV et renvoie une chaîne JSON après avoir transformé les valeurs.

    function transform(line) {
    var values = line.split(',');
    
    var obj = new Object();
    obj.location = values[0];
    obj.name = values[1];
    obj.age = values[2];
    obj.color = values[3];
    obj.coffee = values[4];
    var jsonString = JSON.stringify(obj);
    
    return jsonString;
    }
    

Paramètres de modèle

Paramètre Description
javascriptTextTransformFunctionName Nom de la fonction que vous souhaitez appeler à partir de votre fichier .js.
JSONPath Chemin d'accès gs:// vers le fichier JSON qui définit votre schéma BigQuery, stocké dans Cloud Storage. Par exemple, gs://path/to/my/schema.json.
javascriptTextTransformGcsPath Chemin d'accès gs:// vers le fichier JavaScript qui définit votre UDF. Par exemple, gs://path/to/my/javascript_function.js.
inputFilePattern Chemin d'accès gs:// vers le texte de Cloud Storage que vous souhaitez traiter. Par exemple, gs://path/to/my/text/data.txt.
outputTable Nom de la table BigQuery que vous souhaitez créer pour stocker vos données traitées. Si vous réutilisez une table BigQuery existante, la table sera remplacée. Par exemple, my-project-name:my-dataset.my-table.
bigQueryLoadingTemporaryDirectory Répertoire temporaire pour le processus de chargement de BigQuery. Par exemple, gs://my-bucket/my-files/temp_dir.

Exécuter le modèle Texte Cloud Storage vers BigQuery

CONSOLE

Exécution à partir de la console Google Cloud Platform
  1. Accédez à la page Cloud Dataflow dans la console GCP.
  2. Accéder à la page Cloud Dataflow
  3. Cliquez sur Créer une tâche à partir d'un modèle.
  4. Bouton
  5. Sélectionnez the Cloud Storage Text to BigQuery template dans le menu déroulant du modèle Cloud Dataflow.
  6. Saisissez un nom de tâche dans le champ Nom de la tâche. Le nom du projet doit correspondre à l'expression régulière [a-z]([-a-z0-9]{0,38}[a-z0-9])? pour être valide.
  7. Saisissez vos valeurs de paramètres dans les champs fournis.
  8. Cliquez sur Exécuter la tâche.

GCLOUD

Exécution à partir de l'outil de ligne de commande gcloud

Remarque : Pour exécuter des modèles à l'aide de l'outil de ligne de commande gcloud, vous devez disposer du SDK Cloud version 138.0.0 ou ultérieure.

Lors de l'exécution de ce modèle, vous aurez besoin du chemin d'accès Cloud Storage au modèle :

gs://dataflow-templates/VERSION/GCS_Text_to_BigQuery

Vous devez remplacer les valeurs suivantes dans l'exemple ci-dessous :

  • Remplacez YOUR_PROJECT_ID par votre ID de projet.
  • Remplacez JOB_NAME par le nom de tâche de votre choix. Le nom de la tâche doit correspondre à l'expression régulière [a-z]([-a-z0-9]{0,38}[a-z0-9])? pour être valide.
  • Remplacez YOUR_JAVASCRIPT_FUNCTION par le nom de votre UDF.
  • Remplacez PATH_TO_BIGQUERY_SCHEMA_JSON par le chemin d'accès Cloud Storage au fichier JSON contenant la définition du schéma.
  • Remplacez PATH_TO_JAVASCRIPT_UDF_FILE par le chemin d'accès Cloud Storage au fichier .js contenant votre code JavaScript.
  • Remplacez PATH_TO_YOUR_TEXT_DATA par le chemin d'accès Cloud Storage à votre ensemble de données texte.
  • Remplacez BIGQUERY_TABLE par le nom de votre table BigQuery.
  • Remplacez PATH_TO_TEMP_DIR_ON_GCS par le chemin d'accès Cloud Storage au répertoire temporaire.
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/GCS_Text_to_BigQuery \
    --parameters \
javascriptTextTransformFunctionName=YOUR_JAVASCRIPT_FUNCTION,\
JSONPath=PATH_TO_BIGQUERY_SCHEMA_JSON,\
javascriptTextTransformGcsPath=PATH_TO_JAVASCRIPT_UDF_FILE,\
inputFilePattern=PATH_TO_YOUR_TEXT_DATA,\
outputTable=BIGQUERY_TABLE,\
bigQueryLoadingTemporaryDirectory=PATH_TO_TEMP_DIR_ON_GCS

API

Exécution à partir de l'API REST

Lors de l'exécution de ce modèle, vous aurez besoin du chemin d'accès Cloud Storage au modèle :

gs://dataflow-templates/VERSION/GCS_Text_to_BigQuery

Pour exécuter ce modèle avec une requête API REST, envoyez une requête HTTP POST avec votre ID de projet. Cette requête nécessite une autorisation.

Vous devez remplacer les valeurs suivantes dans l'exemple ci-dessous :

  • Remplacez YOUR_PROJECT_ID par votre ID de projet.
  • Remplacez JOB_NAME par le nom de tâche de votre choix. Le nom de la tâche doit correspondre à l'expression régulière [a-z]([-a-z0-9]{0,38}[a-z0-9])? pour être valide.
  • Remplacez YOUR_JAVASCRIPT_FUNCTION par le nom de votre UDF.
  • Remplacez PATH_TO_BIGQUERY_SCHEMA_JSON par le chemin d'accès Cloud Storage au fichier JSON contenant la définition du schéma.
  • Remplacez PATH_TO_JAVASCRIPT_UDF_FILE par le chemin d'accès Cloud Storage au fichier .js contenant votre code JavaScript.
  • Remplacez PATH_TO_YOUR_TEXT_DATA par le chemin d'accès Cloud Storage à votre ensemble de données texte.
  • Remplacez BIGQUERY_TABLE par le nom de votre table BigQuery.
  • Remplacez PATH_TO_TEMP_DIR_ON_GCS par le chemin d'accès Cloud Storage au répertoire temporaire.
POST https://dataflow.googleapis.com/v1b3/projects/YOUR_PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/GCS_Text_to_BigQuery
{
   "jobName": "JOB_NAME",
   "parameters": {
       "javascriptTextTransformFunctionName": "YOUR_JAVASCRIPT_FUNCTION",
       "JSONPath": "PATH_TO_BIGQUERY_SCHEMA_JSON",
       "javascriptTextTransformGcsPath": "PATH_TO_JAVASCRIPT_UDF_FILE",
       "inputFilePattern":"PATH_TO_YOUR_TEXT_DATA",
       "outputTable":"BIGQUERY_TABLE",
       "bigQueryLoadingTemporaryDirectory": "PATH_TO_TEMP_DIR_ON_GCS"
   },
   "environment": { "zone": "us-central1-f" }
}

Texte Cloud Storage vers Cloud Datastore

Le modèle Texte Cloud Storage vers Cloud Datastore est un pipeline par lots qui lit les fichiers texte stockés dans Cloud Storage et écrit les entités codées JSON dans Cloud Datastore. Chaque ligne des fichiers texte d'entrée doit être au format JSON spécifié dans https://cloud.google.com/datastore/docs/reference/rest/v1/Entity.

Conditions requises pour ce pipeline :

  • Datastore doit être activé dans le projet de destination.

Paramètres de modèle

Paramètre Description
textReadPattern Modèle de chemin d'accès au fichier Cloud Storage qui spécifie l'emplacement de vos fichiers de données de texte. Par exemple, gs://mybucket/somepath/*.json.
javascriptTextTransformGcsPath Modèle de chemin d'accès Cloud Storage qui contient tous vos codes JavaScript. Par exemple, gs://mybucket/mytransforms/*.js. Si vous ne souhaitez pas fournir de fonction, ne renseignez pas ce paramètre.
javascriptTextTransformFunctionName Nom de la fonction JavaScript à appeler. Par exemple, si votre fonction JavaScript est function myTransform(inJson) { ...dostuff...}, le nom de la fonction est myTransform. Si vous ne souhaitez pas fournir de fonction, ne renseignez pas ce paramètre.
datastoreWriteProjectId ID du projet GCP où écrire les entités Cloud Datastore.
errorWritePath Fichier de sortie de journal d'erreurs à utiliser pour les échecs d'écriture en cours de traitement. Par exemple, gs://bucket-name/errors.txt.

Exécuter le modèle Texte Cloud Storage vers Datastore

CONSOLE

Exécution à partir de la console Google Cloud Platform
  1. Accédez à la page Cloud Dataflow dans la console GCP.
  2. Accéder à la page Cloud Dataflow
  3. Cliquez sur Créer une tâche à partir d'un modèle.
  4. Bouton
  5. Sélectionnez the Cloud Storage Text to Datastore template dans le menu déroulant du modèle Cloud Dataflow.
  6. Saisissez un nom de tâche dans le champ Nom de la tâche. Le nom du projet doit correspondre à l'expression régulière [a-z]([-a-z0-9]{0,38}[a-z0-9])? pour être valide.
  7. Saisissez vos valeurs de paramètres dans les champs fournis.
  8. Cliquez sur Exécuter la tâche.

GCLOUD

Exécution à partir de l'outil de ligne de commande gcloud

Remarque : Pour exécuter des modèles à l'aide de l'outil de ligne de commande gcloud, vous devez disposer du SDK Cloud version 138.0.0 ou ultérieure.

Lors de l'exécution de ce modèle, vous aurez besoin du chemin d'accès Cloud Storage au modèle :

gs://dataflow-templates/VERSION/GCS_Text_to_Datastore

Vous devez remplacer les valeurs suivantes dans l'exemple ci-dessous :

  • Remplacez YOUR_PROJECT_ID par votre ID de projet.
  • Remplacez JOB_NAME par le nom de tâche de votre choix. Le nom de la tâche doit correspondre à l'expression régulière [a-z]([-a-z0-9]{0,38}[a-z0-9])? pour être valide.
  • Remplacez PATH_TO_INPUT_TEXT_FILES par le modèle de fichiers d'entrée sur Cloud Storage.
  • Remplacez YOUR_JAVASCRIPT_FUNCTION par le nom de votre fonction JavaScript.
  • Remplacez PATH_TO_JAVASCRIPT_UDF_FILE par le chemin d'accès Cloud Storage au fichier .js contenant votre code JavaScript.
  • Remplacez ERROR_FILE_WRITE_PATH par le chemin d'accès vers le fichier d'erreur sur Cloud Storage de votre choix.
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/GCS_Text_to_Datastore \
    --parameters \
textReadPattern=PATH_TO_INPUT_TEXT_FILES,\
javascriptTextTransformGcsPath=PATH_TO_JAVASCRIPT_UDF_FILE,\
javascriptTextTransformFunctionName=YOUR_JAVASCRIPT_FUNCTION,\
datastoreWriteProjectId=YOUR_PROJECT_ID,\
errorWritePath=ERROR_FILE_WRITE_PATH

API

Exécution à partir de l'API REST

Lors de l'exécution de ce modèle, vous aurez besoin du chemin d'accès Cloud Storage au modèle :

gs://dataflow-templates/VERSION/GCS_Text_to_Datastore

Pour exécuter ce modèle avec une requête API REST, envoyez une requête HTTP POST avec votre ID de projet. Cette requête nécessite une autorisation.

Vous devez remplacer les valeurs suivantes dans l'exemple ci-dessous :

  • Remplacez YOUR_PROJECT_ID par votre ID de projet.
  • Remplacez JOB_NAME par le nom de tâche de votre choix. Le nom de la tâche doit correspondre à l'expression régulière [a-z]([-a-z0-9]{0,38}[a-z0-9])? pour être valide.
  • Remplacez PATH_TO_INPUT_TEXT_FILES par le modèle de fichiers d'entrée sur Cloud Storage.
  • Remplacez YOUR_JAVASCRIPT_FUNCTION par le nom de votre fonction JavaScript.
  • Remplacez PATH_TO_JAVASCRIPT_UDF_FILE par le chemin d'accès Cloud Storage au fichier .js contenant votre code JavaScript.
  • Remplacez ERROR_FILE_WRITE_PATH par le chemin d'accès vers le fichier d'erreur sur Cloud Storage de votre choix.
POST https://dataflow.googleapis.com/v1b3/projects/YOUR_PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/GCS_Text_to_Datastore
{
   "jobName": "JOB_NAME",
   "parameters": {
       "textReadPattern": "PATH_TO_INPUT_TEXT_FILES",
       "javascriptTextTransformGcsPath": "PATH_TO_JAVASCRIPT_UDF_FILE",
       "javascriptTextTransformFunctionName": "YOUR_JAVASCRIPT_FUNCTION",
       "datastoreWriteProjectId": "YOUR_PROJECT_ID",
       "errorWritePath": "ERROR_FILE_WRITE_PATH"
   },
   "environment": { "zone": "us-central1-f" }
}

Texte Cloud Storage vers Cloud Pub/Sub (Lot)

Le modèle crée un pipeline par lots qui lit les enregistrements à partir de fichiers texte stockés dans Cloud Storage et les publie dans un thème Cloud Pub/Sub. Il peut être utilisé pour publier des enregistrements dans un fichier délimité par une nouvelle ligne contenant des enregistrements JSON ou un fichier CSV dans un thème Cloud Pub/Sub pour un traitement en temps réel. Vous pouvez utiliser ce modèle pour relire des données dans Cloud Pub/Sub.

Notez que ce modèle ne définit pas d'horodatage sur les enregistrements individuels. Par conséquent, la durée de l'événement sera égale à la date de publication au cours de l'exécution. Si votre pipeline dépend d'une heure d'événement précise pour le traitement, ne l'utilisez pas.

Conditions requises pour ce pipeline :

  • Les fichiers à lire doivent être au format CSV ou JSON délimité par un retour à la ligne. Les enregistrements couvrant plusieurs lignes dans les fichiers source peuvent poser des problèmes en aval, car chaque ligne des fichiers sera publiée sous forme de message dans Cloud Pub/Sub.
  • Le sujet Cloud Pub/Sub doit exister avant l'exécution du pipeline.

Paramètres de modèle

Paramètre Description
inputFilePattern Modèle de fichier d'entrée à lire. Par exemple, gs://bucket-name/files/*.json.
outputTopic Fichier d'entrée Cloud Pub/Sub Cloud dans lequel écrire. Le nom doit être au format projects/<project-id>/topics/<topic-name>.

Exécuter le modèle Texte Cloud Storage vers Cloud Pub/Sub (Lot)

CONSOLE

Exécution à partir de la console Google Cloud Platform
  1. Accédez à la page Cloud Dataflow dans la console GCP.
  2. Accéder à la page Cloud Dataflow
  3. Cliquez sur Créer une tâche à partir d'un modèle.
  4. Bouton
  5. Sélectionnez the Cloud Storage Text to Cloud Pub/Sub (Batch) template dans le menu déroulant du modèle Cloud Dataflow.
  6. Saisissez un nom de tâche dans le champ Nom de la tâche. Le nom du projet doit correspondre à l'expression régulière [a-z]([-a-z0-9]{0,38}[a-z0-9])? pour être valide.
  7. Saisissez vos valeurs de paramètres dans les champs fournis.
  8. Cliquez sur Exécuter la tâche.

GCLOUD

Exécution à partir de l'outil de ligne de commande gcloud

Remarque : Pour exécuter des modèles à l'aide de l'outil de ligne de commande gcloud, vous devez disposer du SDK Cloud version 138.0.0 ou ultérieure.

Lors de l'exécution de ce modèle, vous aurez besoin du chemin d'accès Cloud Storage au modèle :

gs://dataflow-templates/VERSION/GCS_Text_to_Cloud_PubSub

Vous devez remplacer les valeurs suivantes dans l'exemple ci-dessous :

  • Remplacez YOUR_PROJECT_ID par votre ID de projet.
  • Remplacez JOB_NAME par le nom de tâche de votre choix. Le nom de la tâche doit correspondre à l'expression régulière [a-z]([-a-z0-9]{0,38}[a-z0-9])? pour être valide.
  • Remplacez YOUR_TOPIC_NAME par le nom de votre sujet Cloud Pub/Sub.
  • Remplacez YOUR_BUCKET_NAME par le nom du bucket Cloud Storage.
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/GCS_Text_to_Cloud_PubSub \
    --parameters \
inputFilePattern=gs://YOUR_BUCKET_NAME/files/*.json,\
outputTopic=projects/YOUR_PROJECT_ID/topics/YOUR_TOPIC_NAME

API

Exécution à partir de l'API REST

Lors de l'exécution de ce modèle, vous aurez besoin du chemin d'accès Cloud Storage au modèle :

gs://dataflow-templates/VERSION/GCS_Text_to_Cloud_PubSub

Pour exécuter ce modèle avec une requête API REST, envoyez une requête HTTP POST avec votre ID de projet. Cette requête nécessite une autorisation.

Vous devez remplacer les valeurs suivantes dans l'exemple ci-dessous :

  • Remplacez YOUR_PROJECT_ID par votre ID de projet.
  • Remplacez JOB_NAME par le nom de tâche de votre choix. Le nom de la tâche doit correspondre à l'expression régulière [a-z]([-a-z0-9]{0,38}[a-z0-9])? pour être valide.
  • Remplacez YOUR_TOPIC_NAME par le nom de votre sujet Cloud Pub/Sub.
  • Remplacez YOUR_BUCKET_NAME par le nom du bucket Cloud Storage.
POST https://dataflow.googleapis.com/v1b3/projects/YOUR_PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/GCS_Text_to_Cloud_PubSub
{
   "jobName": "JOB_NAME",
   "parameters": {
       "inputFilePattern": "gs://YOUR_BUCKET_NAME/files/*.json",
       "outputTopic": "projects/YOUR_PROJECT_ID/topics/YOUR_TOPIC_NAME"
   },
   "environment": { "zone": "us-central1-f" }
}

Texte Cloud Storage vers Cloud Spanner

Le modèle Texte Cloud Storage vers Cloud Spanner est un pipeline par lots qui lit les fichiers texte CSV dans Cloud Storage et les importe dans une base de données Cloud Spanner.

Conditions requises pour ce pipeline :

  • La base de données et la table cibles Cloud Spanner doivent exister.
  • Vous devez disposer d'autorisations en lecture pour le bucket Cloud Storage et d'autorisations en écriture pour la base de données Cloud Spanner cible.
  • Le chemin d'accès Cloud Storage en entrée contenant les fichiers CSV doit exister.
  • Vous devez créer un fichier manifeste d'importation contenant une description JSON des fichiers CSV, puis le stocker dans Cloud Storage.
  • Si la base de données Cloud Spanner cible possède déjà un schéma, toutes les colonnes spécifiées dans le fichier manifeste doivent disposer des mêmes types de données que les colonnes correspondantes dans le schéma de la base de données cible.
  • Le fichier manifeste, encodé au format ASCII ou UTF-8, doit respecter le format suivant :

  • Les fichiers texte à importer doivent être au format CSV, avec un encodage ASCII ou UTF-8. Nous vous déconseillons d'utiliser l'indicateur d'ordre des octets (BOM) dans les fichiers encodés au format UTF-8.
  • Les données doivent correspondre à l'un des typessuivants :
    • INT64
    • FLOAT64
    • BOOL
    • STRING
    • DATE
    • TIMESTAMP

Paramètres de modèle

Paramètre Description
instanceId ID d'instance de la base de données Cloud Spanner.
databaseId ID de base de données de la base de données Cloud Spanner.
importManifest Chemin d'accès Cloud Storage au fichier manifeste d'importation.
columnDelimiter Séparateur de colonne utilisé par le fichier source. La valeur par défaut est ,.
fieldQualifier Caractère devant entourer toutes les valeurs du fichier source contenant le code columnDelimiter. La valeur par défaut est ".
trailingDelimiter Indique si les lignes des fichiers sources comportent des séparateurs finaux (c'est-à-dire si le caractère columnDelimiter apparaît à la fin de chaque ligne, après la dernière valeur de colonne). La valeur par défaut est true.
escape Caractère d'échappement utilisé par le fichier source. Par défaut, ce paramètre n'est pas défini et le modèle n'utilise pas de caractère d'échappement.
nullString Chaîne représentant une valeur NULL. Par défaut, ce paramètre n'est pas défini et le modèle n'utilise pas de chaîne NULL.
dateFormat Format utilisé pour l'analyse des colonnes de date. Par défaut, le pipeline tente d'analyser les colonnes de date au format yyyy-M-d[' 00:00:00'] (par exemple, 2019-01-31 ou 2019-1-1 00:00:00). Si votre format de date est différent, spécifiez-le à l'aide des modèles java.time.format.DateTimeFormatter.
timestampFormat Format utilisé pour l'analyse des colonnes d'horodatage. Si l'horodatage est un entier long, il est analysé selon l'époque Unix. Dans le cas contraire, il est analysé comme chaîne au format java.time.format.DateTimeFormatter.ISO_INSTANT. Dans les autres cas, spécifiez votre propre chaîne de modèle (par exemple, MMM dd yyyy HH:mm:ss.SSSVV pour les horodatages au format "Jan 21 1998 01:02:03.456+08:00".).

Si vous devez utiliser des formats de date ou d'horodatage personnalisés, assurez-vous qu'ils constituent des modèles java.time.format.DateTimeFormatter valides. Le tableau suivant présente des exemples supplémentaires de formats personnalisés pour les colonnes de date et d'horodatage :

Type Valeur d'entrée Format Remarque
DATE 2011-3-31 Par défaut, le modèle peut analyser ce format. Vous n'avez pas besoin de spécifier le paramètre dateFormat.
DATE 2011-3-31 00:00:00 Par défaut, le modèle peut analyser ce format. Vous n'avez pas besoin de spécifier le format. Si vous le souhaitez, vous pouvez utiliser le format yyyy-M-d' 00:00:00'.
DATE 01 Apr, 18 dd MMM, yy
DATE Wednesday, April 3, 2019 AD EEEE, LLLL d, yyyy G
TIMESTAMP 2019-01-02T11:22:33Z
2019-01-02T11:22:33.123Z2019-01-02T11:22:33.12356789Z
Le format par défaut ISO_INSTANT permet d'analyser ce type d'horodatage. Vous n'avez pas besoin de spécifier le paramètre timestampFormat.
TIMESTAMP 1568402363 Par défaut, le modèle peut analyser ce type d'horodatage et le traiter selon l'époque Unix.
TIMESTAMP Tue, 3 Jun 2008 11:05:30 GMT EEE, d MMM yyyy HH:mm:ss VV
TIMESTAMP 2018/12/31 110530.123PST yyyy/MM/dd HHmmss.SSSz
TIMESTAMP 2019-01-02T11:22:33Z ou 2019-01-02T11:22:33.123Z yyyy-MM-dd'T'HH:mm:ss[.SSS]VV Si la colonne d'entrée est un mélange entre 2019-01-02T11:22:33Z et 2019-01-02T11:22:33.123Z, le format par défaut peut analyser ce type d'horodatage. Vous n'avez pas besoin de spécifier votre propre format. Toutefois, vous pouvez exploiter le format yyyy-MM-dd'T'HH:mm:ss[.SSS]VV dans ces deux cas. Vous ne pouvez pas utiliser le format yyyy-MM-dd'T'HH:mm:ss[.SSS]'Z', car le suffixe "Z" doit être analysé en tant qu'ID de fuseau horaire, et non en tant que littéral de caractères. En interne, la colonne d'horodatage est convertie en élément java.time.Instant. Par conséquent, elle doit être spécifiée au format UTC ou associée à des informations de fuseau horaire. Il est impossible d'analyser le format date/heure local, tel que 2019-01-02 11:22:33, en tant qu'élément java.time.Instant valide.

Exécuter le modèle

Console

Exécution dans la console Google Cloud Platform
  1. Accédez à la page Cloud Dataflow dans la console GCP.
  2. Accéder à la page Cloud Dataflow
  3. Cliquez sur Créer une tâche à partir d'un modèle.
  4. Bouton
  5. Sélectionnez the Cloud Storage Text to Cloud Spanner template dans le menu déroulant du modèle Cloud Dataflow.
  6. Saisissez un nom de tâche dans le champ Nom de la tâche. Le nom du projet doit correspondre à l'expression régulière [a-z]([-a-z0-9]{0,38}[a-z0-9])? pour être valide.
  7. Saisissez vos valeurs de paramètres dans les champs fournis.
  8. Cliquez sur Exécuter la tâche.

gcloud

Exécution à l'aide de l'outil de ligne de commande gcloud

Remarque : Pour exécuter des modèles à l'aide de l'outil de ligne de commande gcloud, vous devez disposer du SDK Cloud version 138.0.0 ou ultérieure.

Lors de l'exécution de ce modèle, vous aurez besoin du chemin d'accès Cloud Storage au modèle :

gs://dataflow-templates/VERSION/GCS_Text_to_Cloud_Spanner

Utilisez cet exemple de requête comme indiqué dans la section Utiliser l'API REST. Cette requête nécessite une autorisation et vous devez spécifier un tempLocation dans lequel vous disposez d'autorisations en écriture. Vous devez remplacer les valeurs suivantes dans l'exemple ci-dessous :

  • Remplacez [DATAFLOW_REGION] par la région dans laquelle vous souhaitez exécuter la tâche Cloud Dataflow (par exemple, us-central1).
  • Remplacez [YOUR_INSTANCE_ID] par votre ID d'instance Cloud Spanner.
  • Remplacez [YOUR_DATABASE_ID] par votre ID de base de données Cloud Spanner.
  • Remplacez [GCS_PATH_TO_IMPORT_MANIFEST] par le chemin d'accès Cloud Storage au fichier manifeste d'importation.
  • Remplacez [JOB_NAME] par le nom de tâche de votre choix. Le nom de la tâche doit correspondre à l'expression régulière [a-z]([-a-z0-9]{0,38}[a-z0-9])? pour être valide.
gcloud dataflow jobs run [JOB_NAME] \
    --gcs-location='gs://dataflow-templates/[VERSION]/GCS_Text_to_Cloud_Spanner' \
    --region=[DATAFLOW_REGION] \
    --parameters='instanceId=[YOUR_INSTANCE_ID],databaseId=[YOUR_DATABASE_ID],importManifest=[GCS_PATH_TO_IMPORT_MANIFEST]'

API

Exécution avec l'API Rest

Lors de l'exécution de ce modèle, vous aurez besoin du chemin d'accès Cloud Storage au modèle :

gs://dataflow-templates/VERSION/GCS_Text_to_Cloud_Spanner

Utilisez cet exemple de requête comme indiqué dans la section Utiliser l'API REST. Cette requête nécessite une autorisation et vous devez spécifier un tempLocation dans lequel vous disposez d'autorisations en écriture. Vous devez remplacer les valeurs suivantes dans l'exemple ci-dessous :

  • Remplacez [YOUR_PROJECT_ID] par l'ID du projet.
  • Remplacez [DATAFLOW_REGION] par la région dans laquelle vous souhaitez exécuter la tâche Cloud Dataflow (par exemple, us-central1).
  • Remplacez [YOUR_INSTANCE_ID] par votre ID d'instance Cloud Spanner.
  • Remplacez [YOUR_DATABASE_ID] par votre ID de base de données Cloud Spanner.
  • Remplacez [GCS_PATH_TO_IMPORT_MANIFEST] par le chemin d'accès Cloud Storage au fichier manifeste d'importation.
  • Remplacez [JOB_NAME] par le nom de tâche de votre choix. Le nom de la tâche doit correspondre à l'expression régulière [a-z]([-a-z0-9]{0,38}[a-z0-9])? pour être valide.
POST https://dataflow.googleapis.com/v1b3/projects/[YOUR_PROJECT_ID]/locations/[DATAFLOW_REGION]/templates:launch?gcsPath=gs://dataflow-templates/[VERSION]/GCS_Text_to_Cloud_Spanner

{
   "jobName": "[JOB_NAME]",
   "parameters": {
       "instanceId": "[YOUR_INSTANCE_ID]",
       "databaseId": "[YOUR_DATABASE_ID]",
       "importManifest": "[GCS_PATH_TO_IMPORT_MANIFEST]"
   },
   "environment": {
       "machineType": "n1-standard-2"
   }
}

Java Database Connectivity (JDBC) vers BigQuery

Le modèle JDBC vers BigQuery est un pipeline par lots qui copie les données d'une table de base de données relationnelle vers une table BigQuery existante. Ce pipeline utilise JDBC pour se connecter à la base de données relationnelle. Vous pouvez utiliser ce modèle pour copier des données de toute base de données relationnelle contenant les pilotes JDBC disponibles dans BigQuery. Pour obtenir une couche supplémentaire de protection, vous pouvez également transmettre une clé Cloud KMS chiffrée avec des paramètres de nom d'utilisateur, de mot de passe et de chaîne de connexion encodés en base64. Pour en savoir plus sur le chiffrement des paramètres de nom d'utilisateur, de mot de passe et de chaîne de connexion, consultez la page sur le point de terminaison du chiffrement de l'API Cloud KMS.

Conditions requises pour ce pipeline :

  • Les pilotes JDBC de la base de données relationnelle doivent être disponibles.
  • La table BigQuery doit exister avant l'exécution du pipeline.
  • La table BigQuery doit avoir un schéma compatible.
  • La base de données relationnelle doit être accessible à partir du sous-réseau dans lequel Cloud Dataflow est exécuté.

Paramètres de modèle

Paramètre Description
driverJars Liste séparée par des virgules de pilotes JAR. Par exemple, gs://<my-bucket>/driver_jar1.jar,gs://<my-bucket>/driver_jar2.jar.
driverClassName Nom de la classe du pilote JDBC. Par exemple, com.mysql.jdbc.Driver.
connectionURL La chaîne d'URL de connexion JDBC. Par exemple, jdbc:mysql://some-host:3306/sampledb. Peut être transmis en tant que chaîne encodée en base64 et chiffrée avec une clé Cloud KMS.
query Requête à exécuter sur la source pour extraire les données. Par exemple, select * from sampledb.sample_table.
outputTable Emplacement de la table de sortie BigQuery, au format <my-project>:<my-dataset>.<my-table>.
bigQueryLoadingTemporaryDirectory Répertoire temporaire pour le processus de chargement de BigQuery. Par exemple, gs://<my-bucket>/my-files/temp_dir.
connectionProperties [Facultatif] Chaîne de propriétés à utiliser pour la connexion JDBC. Par exemple, unicode=true&characterEncoding=UTF-8.
username [Facultatif] Nom d'utilisateur à utiliser pour la connexion JDBC. Peut être transmis en tant que chaîne encodée en base64 et chiffrée avec une clé Cloud KMS.
password [Facultatif] Mot de passe à utiliser pour la connexion JDBC. Peut être transmis en tant que chaîne encodée en base64 et chiffrée avec une clé Cloud KMS.
KMSEncryptionKey [Facultatif] Clé de chiffrement Cloud KMS permettant de déchiffrer le nom d'utilisateur, le mot de passe et la chaîne de connexion. Si la clé Cloud KMS est transmise, le nom d'utilisateur, le mot de passe et la chaîne de connexion doivent tous être transmis de manière chiffrée.

Exécuter le modèle JDBC vers BigQuery

CONSOLE

Exécution à partir de la console Google Cloud Platform
  1. Accédez à la page Cloud Dataflow dans la console GCP.
  2. Accéder à la page Cloud Dataflow
  3. Cliquez sur Créer une tâche à partir d'un modèle.
  4. Bouton
  5. Sélectionnez the JDBC to BigQuery template dans le menu déroulant du modèle Cloud Dataflow.
  6. Saisissez un nom de tâche dans le champ Nom de la tâche. Le nom du projet doit correspondre à l'expression régulière [a-z]([-a-z0-9]{0,38}[a-z0-9])? pour être valide.
  7. Saisissez vos valeurs de paramètres dans les champs fournis.
  8. Cliquez sur Exécuter la tâche.

GCLOUD

Exécution à partir de l'outil de ligne de commande gcloud

Remarque : Pour exécuter des modèles à l'aide de l'outil de ligne de commande gcloud, vous devez disposer du SDK Cloud version 138.0.0 ou ultérieure.

Lors de l'exécution de ce modèle, vous aurez besoin du chemin d'accès Cloud Storage au modèle :

gs://dataflow-templates/VERSION/Jdbc_to_BigQuery

Vous devez remplacer les valeurs suivantes dans l'exemple ci-dessous :

  • Remplacez YOUR_PROJECT_ID par votre ID de projet.
  • Remplacez JOB_NAME par le nom de tâche de votre choix. Le nom de la tâche doit correspondre à l'expression régulière [a-z]([-a-z0-9]{0,38}[a-z0-9])? pour être valide.
  • Remplacez DRIVER_PATHS par le(s) chemin(s) d'accès Cloud Storage séparé(s) par des virgules vers le(s) pilote(s) JDBC.
  • Remplacez DRIVER_CLASS_NAME par le nom de classe du pilote.
  • Remplacez JDBC_CONNECTION_URL par l'URL de connexion JDBC.
  • Remplacez SOURCE_SQL_QUERY par la requête SQL à exécuter sur la base de données source.
  • Remplacez YOUR_DATASET par votre ensemble de données BigQuery et YOUR_TABLE_NAME par le nom de votre table BigQuery.
  • Remplacez PATH_TO_TEMP_DIR_ON_GCS par le chemin d'accès Cloud Storage au répertoire temporaire.
  • Remplacez CONNECTION_PROPERTIES par les propriétés de connexion JDBC, le cas échéant.
  • Remplacez CONNECTION_USERNAME par le nom d'utilisateur de la connexion JDBC.
  • Remplacez CONNECTION_PASSWORD par le mot de passe de connexion JDBC.
  • Remplacez KMS_ENCRYPTION_KEY par la clé de chiffrement Cloud KMS.
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/Jdbc_to_BigQuery \
    --parameters \
driverJars=DRIVER_PATHS,\
driverClassName=DRIVER_CLASS_NAME,\
connectionURL=JDBC_CONNECTION_URL,\
query=SOURCE_SQL_QUERY,\
outputTable=YOUR_PROJECT_ID:YOUR_DATASET.YOUR_TABLE_NAME,
bigQueryLoadingTemporaryDirectory=PATH_TO_TEMP_DIR_ON_GCS,\
connectionProperties=CONNECTION_PROPERTIES,\
username=CONNECTION_USERNAME,\
password=CONNECTION_PASSWORD,\
KMSEncryptionKey=KMS_ENCRYPTION_KEY

API

Exécution à partir de l'API REST

Lors de l'exécution de ce modèle, vous aurez besoin du chemin d'accès Cloud Storage au modèle :

gs://dataflow-templates/VERSION/Jdbc_to_BigQuery

Pour exécuter ce modèle avec une requête API REST, envoyez une requête HTTP POST avec votre ID de projet. Cette requête nécessite une autorisation.

Vous devez remplacer les valeurs suivantes dans l'exemple ci-dessous :

  • Remplacez YOUR_PROJECT_ID par votre ID de projet.
  • Remplacez JOB_NAME par le nom de tâche de votre choix. Le nom de la tâche doit correspondre à l'expression régulière [a-z]([-a-z0-9]{0,38}[a-z0-9])? pour être valide.
  • Remplacez DRIVER_PATHS par le(s) chemin(s) d'accès Cloud Storage séparé(s) par des virgules vers le(s) pilote(s) JDBC.
  • Remplacez DRIVER_CLASS_NAME par le nom de classe du pilote.
  • Remplacez JDBC_CONNECTION_URL par l'URL de connexion JDBC.
  • Remplacez SOURCE_SQL_QUERY par la requête SQL à exécuter sur la base de données source.
  • Remplacez YOUR_DATASET par votre ensemble de données BigQuery et YOUR_TABLE_NAME par le nom de votre table BigQuery.
  • Remplacez PATH_TO_TEMP_DIR_ON_GCS par le chemin d'accès Cloud Storage au répertoire temporaire.
  • Remplacez CONNECTION_PROPERTIES par les propriétés de connexion JDBC, le cas échéant.
  • Remplacez CONNECTION_USERNAME par le nom d'utilisateur de la connexion JDBC.
  • Remplacez CONNECTION_PASSWORD par le mot de passe de connexion JDBC.
  • Remplacez KMS_ENCRYPTION_KEY par la clé de chiffrement Cloud KMS.
POST https://dataflow.googleapis.com/v1b3/projects/YOUR_PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/Jdbc_to_BigQuery
{
   "jobName": "JOB_NAME",
   "parameters": {
       "driverJars": "DRIVER_PATHS",
       "driverClassName": "DRIVER_CLASS_NAME",
       "connectionURL": "JDBC_CONNECTION_URL",
       "query": "SOURCE_SQL_QUERY",
       "outputTable": "YOUR_PROJECT_ID:YOUR_DATASET.YOUR_TABLE_NAME",
       "bigQueryLoadingTemporaryDirectory": "PATH_TO_TEMP_DIR_ON_GCS",
       "connectionProperties": "CONNECTION_PROPERTIES",
       "username": "CONNECTION_USERNAME",
       "password": "CONNECTION_PASSWORD",
       "KMSEncryptionKey":"KMS_ENCRYPTION_KEY"
   },
   "environment": { "zone": "us-central1-f" }
}
Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

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