Le modèle SourceDB vers Spanner est un pipeline par lots qui copie les données d'une base de données relationnelle vers une base de données Spanner 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 Spanner. Cette fonctionnalité n'est compatible qu'avec un nombre limité de types de MySQL.
Pour obtenir une couche supplémentaire de protection, vous pouvez également transmettre une clé Cloud KMS avec des paramètres de nom d'utilisateur, de mot de passe et de chaîne de connexion encodés en base64 et chiffrés avec la clé Cloud KMS. 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.
- Les tables Spanner doivent exister avant l'exécution du pipeline.
- Les tables Spanner doivent avoir un schéma compatible.
- La base de données relationnelle doit être accessible à partir du sous-réseau dans lequel Dataflow est exécuté.
Paramètres de modèle
Paramètre | Description |
---|---|
sourceConfigURL |
Chaîne d'URL de connexion JDBC. Par exemple, jdbc:mysql://127.4.5.30:3306/my-db?autoReconnect=true&maxReconnects=10&unicode=true&characterEncoding=UTF-8 ou la configuration de segmentation. |
instanceId |
Instance Cloud Spanner de destination. |
databaseId |
Base de données Cloud Spanner de destination. |
projectId |
Il s'agit du nom du projet Cloud Spanner. |
outputDirectory |
Ce répertoire permet de vider les enregistrements défaillants/ignorés/filtrés lors d'une migration. |
jdbcDriverJars |
Facultatif : Liste des fichiers JAR du pilote, séparés par une virgule. Par exemple : gs://your-bucket/driver_jar1.jar,gs://your-bucket/driver_jar2.jar . La valeur par défaut est vide. |
jdbcDriverClassName |
Facultatif : Nom de la classe du pilote JDBC. Exemple : com.mysql.jdbc.Driver . La valeur par défaut est com .mysql.jdbc.Driver. |
username |
Facultatif : Nom d'utilisateur à utiliser pour la connexion JDBC. La valeur par défaut est vide. |
password |
Facultatif : Mot de passe à utiliser pour la connexion JDBC. La valeur par défaut est vide. |
tables |
Facultatif : Tables à migrer depuis la source. La valeur par défaut est vide. |
numPartitions |
Facultatif : nombre de partitions. Ce paramètre, avec les limites inférieure et supérieure, forme des pas de partition pour les expressions de clause WHERE générées, qui sont utilisées pour diviser la colonne de partition de manière uniforme. Lorsque l'entrée est inférieure à 1, le nombre est défini sur 1.
La valeur par défaut est 0 . |
spannerHost |
Facultatif: Point de terminaison Cloud Spanner à appeler dans le modèle. Par exemple : https://batch-spanner.googleapis.com . La valeur par défaut est https://batch-spanner .googleapis.com. |
maxConnections |
Facultatif : Configure le pool de connexions JDBC sur chaque nœud de calcul avec le nombre maximal de connexions. Utilisez un nombre négatif pour ne pas définir de limite. Exemple : -1 . La valeur par défaut est 0 . |
sessionFilePath |
Facultatif : Chemin d'accès de la session dans Cloud Storage contenant des informations de mappage de l'outil de migration Spanner. La valeur par défaut est vide. |
transformationJarPath |
Facultatif : Emplacement du fichier JAR personnalisé dans Cloud Storage contenant la logique de transformation personnalisée pour le traitement des enregistrements. La valeur par défaut est vide. |
transformationClassName |
Facultatif : Nom de classe complet avec une logique de transformation personnalisée. Ce champ est obligatoire si la valeur de transformationJarPath est spécifiée. La valeur par défaut est vide. |
transformationCustomParameters |
Facultatif : Chaîne contenant les paramètres personnalisés à transmettre à la classe de transformation personnalisée. La valeur par défaut est vide. |
disabledAlgorithms |
Facultatif : algorithmes à désactiver, séparés par une virgule. Si cette valeur est définie sur aucun, aucun algorithme n'est désactivé. Utilisez ce paramètre avec prudence, car les algorithmes désactivés par défaut peuvent présenter des failles ou des problèmes de performances. Par exemple : SSLv3, RC4 . |
extraFilesToStage |
Facultatif : Chemins d'accès Cloud Storage ou secrets Secret Manager séparés par une virgule afin que les fichiers soient traités dans le nœud de calcul. Ces fichiers sont enregistrés dans le répertoire "/extra_files" de chaque nœud de calcul. Par exemple : gs://<BUCKET>/file.txt,projects/<PROJECT_ID>/secrets/<SECRET_ID>/versions/<VERSION_ID> . |
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.
- 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 Sourcedb to Spanner template.
- Dans les champs fournis, saisissez vos valeurs de paramètres.
- Cliquez sur Run Job (Exécuter la tâche).
gcloud CLI
Dans le shell ou le terminal, exécutez le modèle :
gcloud dataflow flex-template run JOB_NAME \ --template-file-gcs-location=gs://dataflow-templates-REGION_NAME/VERSION/flex/Sourcedb_to_Spanner_Flex \ --project=PROJECT_ID \ --region=REGION_NAME \ --parameters \ sourceConfigURL=SOURCE_CONFIG_URL,\ instanceId=INSTANCE_ID,\ databaseId=DATABASE_ID,\ projectId=PROJECT_ID,\ outputDirectory=OUTPUT_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
SOURCE_CONFIG_URL
: URL permettant de se connecter à l'hôte de la base de données source. La valeur peut être de 1. URL de connexion JDBC, qui doit contenir le nom de l'hôte, du port et de la base de données source, et peut éventuellement contenir des propriétés telles que autoReconnect, maxReconnects etc. Format: `jdbc:mysql://{host}:{port}/{dbName}?{parameters}`2. Chemin d'accès à la configuration de segmentationINSTANCE_ID
: ID de l'instance Cloud SpannerDATABASE_ID
: ID de la base de données Cloud SpannerPROJECT_ID
: ID du projet Cloud SpannerOUTPUT_DIRECTORY
: répertoire de sortie pour les événements défaillants/ignorés/filtrés
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/flexTemplates:launch { "launchParameter": { "jobName": "JOB_NAME", "parameters": { "sourceConfigURL": "SOURCE_CONFIG_URL", "instanceId": "INSTANCE_ID", "databaseId": "DATABASE_ID", "projectId": "PROJECT_ID", "outputDirectory": "OUTPUT_DIRECTORY", }, "containerSpecGcsPath": "gs://dataflow-templates-LOCATION/VERSION/flex/Sourcedb_to_Spanner_Flex", "environment": { "maxWorkers": "10" } } }
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
SOURCE_CONFIG_URL
: URL permettant de se connecter à l'hôte de la base de données source. La valeur peut être de 1. URL de connexion JDBC, qui doit contenir le nom de l'hôte, du port et de la base de données source, et peut éventuellement contenir des propriétés telles que autoReconnect, maxReconnects etc. Format: `jdbc:mysql://{host}:{port}/{dbName}?{parameters}`2. Chemin d'accès à la configuration de segmentationINSTANCE_ID
: ID de l'instance Cloud SpannerDATABASE_ID
: ID de la base de données Cloud SpannerPROJECT_ID
: ID du projet Cloud SpannerOUTPUT_DIRECTORY
: répertoire de sortie pour les événements défaillants/ignorés/filtrés