Le modèle de fichiers Cloud Storage Avro vers Spanner est un pipeline par lots qui lit les fichiers Avro exportés à partir de Spanner et stockés dans Cloud Storage, et qui les importe dans une base de données Spanner.
Conditions requises pour ce pipeline
- La base de données 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 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. - Si le fichier Avro source ne contient pas de clé primaire, vous devez créer une table Spanner vide avec une clé primaire avant d'exécuter le modèle. Cette étape n'est pas obligatoire si le fichier Avro définit la clé primaire.
Paramètres de modèle
Paramètres obligatoires
- instanceId : ID d'instance de la base de données Spanner
- databaseId : ID de base de données de la base de données Spanner
- inputDir : chemin d'accès Cloud Storage à partir duquel les fichiers Avro sont importés.
Paramètres facultatifs
- 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.
- waitForIndexes : si la valeur est
true
, le pipeline attend que les index soient créés. Si la valeur estfalse
, le job peut se terminer alors que les index sont encore en cours de création en arrière-plan. La valeur par défaut estfalse
. - waitForForeignKeys : si la valeur est
true
, le pipeline attend que les clés étrangères soient créées. Si la valeur estfalse
, le job peut se terminer alors que les clés étrangères sont encore en cours de création en arrière-plan. La valeur par défaut estfalse
. - waitForChangeStreams : si la valeur est
true
, le pipeline attend que les flux de modifications soient créés. Si la valeur estfalse
, le job peut se terminer alors que les flux de modifications sont encore en cours de création en arrière-plan. La valeur par défaut esttrue
. - waitForSequences : par défaut, le pipeline d'importation est bloqué lors de la création de séquences. Si la valeur est
false
, le pipeline d'importation peut se terminer alors que des séquences sont encore en cours de création en arrière-plan. - earlyIndexCreateFlag : spécifie si la création d'index anticipée est activée. Si le modèle exécute un grand nombre d'instructions LDD, il est plus efficace de créer des index avant de charger des données. Par conséquent, le comportement par défaut consiste à créer d'abord les index lorsque le nombre d'instructions LDD dépasse un seuil. Pour désactiver cette fonctionnalité, définissez
earlyIndexCreateFlag
surfalse
. La valeur par défaut esttrue
. - spannerProjectId : ID du projet Google Cloud qui contient la base de données Spanner. Si ce paramètre n'est pas défini, le projet Google Cloud par défaut est utilisé.
- ddlCreationTimeoutInMinutes : délai avant expiration, exprimé en minutes, pour les instructions LDD effectuées par le modèle. La valeur par défaut est de trente minutes.
- spannerPriority : priorité des requêtes pour les appels Spanner. Les valeurs possibles sont
HIGH
,MEDIUM
, etLOW
. La valeur par défaut estMEDIUM
.
Exécuter le modèle
Console
- Accédez à la page Dataflow Créer un job à partir d'un modèle. Accéder à la page Créer un job à partir d'un modèle
- Dans le champ Nom du job, saisissez un nom de job unique.
Pour que le job s'affiche sur la page Instances Spanner de la console Google Cloud, le nom du job doit correspondre au format suivant :
cloud-spanner-import-SPANNER_INSTANCE_ID-SPANNER_DATABASE_NAME
Remplacez les éléments suivants :
SPANNER_INSTANCE_ID
: ID de votre instance SpannerSPANNER_DATABASE_NAME
: nom de votre base de données Spanner
- 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.
- Dans le menu déroulant Modèle Dataflow, sélectionnez the Avro Files on Cloud Storage to Cloud Spanner template.
- Dans les champs fournis, saisissez vos valeurs de paramètres.
- 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/GCS_Avro_to_Cloud_Spanner \ --region REGION_NAME \ --staging-location GCS_STAGING_LOCATION \ --parameters \ instanceId=INSTANCE_ID,\ databaseId=DATABASE_ID,\ inputDir=GCS_DIRECTORY
Remplacez les éléments suivants :
JOB_NAME
: nom de job unique de votre choixVERSION
: version du modèle que vous souhaitez utiliserVous pouvez utiliser les valeurs suivantes :
latest
pour utiliser la dernière version du modèle, disponible dans le dossier parent non daté du bucket gs://dataflow-templates-REGION_NAME/latest/- Le nom de la version, par exemple
2023-09-12-00_RC00
, pour utiliser une version spécifique du modèle, qui est imbriqué dans le dossier parent daté respectif dans le bucket : gs://dataflow-templates-REGION_NAME/
REGION_NAME
: région dans laquelle vous souhaitez déployer votre job Dataflow, par exempleus-central1
INSTANCE_ID
: ID de l'instance Spanner contenant la base de donnéesDATABASE_ID
: ID de la base de données Spanner dans laquelle effectuer l'importationGCS_DIRECTORY
: chemin d'accès à Cloud Storage à partir duquel les fichiers Avro sont importés, par exemple,gs://mybucket/somefolder
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/GCS_Avro_to_Cloud_Spanner { "jobName": "JOB_NAME", "parameters": { "instanceId": "INSTANCE_ID", "databaseId": "DATABASE_ID", "inputDir": "gs://GCS_DIRECTORY" }, "environment": { "machineType": "n1-standard-2" } }
Remplacez les éléments suivants :
PROJECT_ID
: ID du projet Google Cloud dans lequel vous souhaitez exécuter le job DataflowJOB_NAME
: nom de job unique de votre choixVERSION
: version du modèle que vous souhaitez utiliserVous pouvez utiliser les valeurs suivantes :
latest
pour utiliser la dernière version du modèle, disponible dans le dossier parent non daté du bucket gs://dataflow-templates-REGION_NAME/latest/- Le nom de la version, par exemple
2023-09-12-00_RC00
, pour utiliser une version spécifique du modèle, qui est imbriqué dans le dossier parent daté respectif dans le bucket : gs://dataflow-templates-REGION_NAME/
LOCATION
: région dans laquelle vous souhaitez déployer votre job Dataflow, par exempleus-central1
INSTANCE_ID
: ID de l'instance Spanner contenant la base de donnéesDATABASE_ID
: ID de la base de données Spanner dans laquelle effectuer l'importationGCS_DIRECTORY
: chemin d'accès à Cloud Storage à partir duquel les fichiers Avro sont importés, par exemple,gs://mybucket/somefolder
Étapes suivantes
- Apprenez-en plus sur les modèles Dataflow.
- Consultez la liste des modèles fournis par Google.