GSP1049
Présentation
Cloud Spanner est un service Google de base de données relationnelle entièrement géré et offrant des capacités d'évolutivité horizontale. Les clients des secteurs des services financiers, des jeux vidéo, du commerce et de bien d'autres domaines d'activité font confiance à Cloud Spanner pour exécuter leurs charges de travail les plus exigeantes, où la cohérence et la disponibilité à grande échelle sont primordiales.
Dans cet atelier, vous allez découvrir différentes façons de charger des données dans Cloud Spanner et de sauvegarder votre base de données.
Objectifs de l'atelier
- Insérer des données avec le langage LMD
- Insérer des données à l'aide d'une bibliothèque cliente
- Insérer des données par lot à l'aide d'une bibliothèque cliente
- Charger des données à l'aide de Dataflow
- Sauvegarder votre base de données
Préparation
Avant de cliquer sur le bouton "Démarrer l'atelier"
Lisez ces instructions. Les ateliers sont minutés, et vous ne pouvez pas les mettre en pause. Le minuteur, qui démarre lorsque vous cliquez sur Démarrer l'atelier, indique combien de temps les ressources Google Cloud resteront accessibles.
Cet atelier pratique vous permet de suivre les activités dans un véritable environnement cloud, et non dans un environnement de simulation ou de démonstration. Des identifiants temporaires vous sont fournis pour vous permettre de vous connecter à Google Cloud le temps de l'atelier.
Pour réaliser cet atelier :
- Vous devez avoir accès à un navigateur Internet standard (nous vous recommandons d'utiliser Chrome).
Remarque : Ouvrez une fenêtre de navigateur en mode incognito (recommandé) ou de navigation privée pour effectuer cet atelier. Vous éviterez ainsi les conflits entre votre compte personnel et le compte temporaire de participant, qui pourraient entraîner des frais supplémentaires facturés sur votre compte personnel.
- Vous disposez d'un temps limité. N'oubliez pas qu'une fois l'atelier commencé, vous ne pouvez pas le mettre en pause.
Remarque : Utilisez uniquement le compte de participant pour cet atelier. Si vous utilisez un autre compte Google Cloud, des frais peuvent être facturés à ce compte.
Démarrer l'atelier et se connecter à la console Google Cloud
-
Cliquez sur le bouton Démarrer l'atelier. Si l'atelier est payant, une boîte de dialogue s'affiche pour vous permettre de sélectionner un mode de paiement.
Sur la gauche, vous trouverez le panneau "Détails concernant l'atelier", qui contient les éléments suivants :
- Le bouton "Ouvrir la console Google Cloud"
- Le temps restant
- Les identifiants temporaires que vous devez utiliser pour cet atelier
- Des informations complémentaires vous permettant d'effectuer l'atelier
-
Cliquez sur Ouvrir la console Google Cloud (ou effectuez un clic droit et sélectionnez Ouvrir le lien dans la fenêtre de navigation privée si vous utilisez le navigateur Chrome).
L'atelier lance les ressources, puis ouvre la page "Se connecter" dans un nouvel onglet.
Conseil : Réorganisez les onglets dans des fenêtres distinctes, placées côte à côte.
Remarque : Si la boîte de dialogue Sélectionner un compte s'affiche, cliquez sur Utiliser un autre compte.
-
Si nécessaire, copiez le nom d'utilisateur ci-dessous et collez-le dans la boîte de dialogue Se connecter.
{{{user_0.username | "Username"}}}
Vous trouverez également le nom d'utilisateur dans le panneau "Détails concernant l'atelier".
-
Cliquez sur Suivant.
-
Copiez le mot de passe ci-dessous et collez-le dans la boîte de dialogue Bienvenue.
{{{user_0.password | "Password"}}}
Vous trouverez également le mot de passe dans le panneau "Détails concernant l'atelier".
-
Cliquez sur Suivant.
Important : Vous devez utiliser les identifiants fournis pour l'atelier. Ne saisissez pas ceux de votre compte Google Cloud.
Remarque : Si vous utilisez votre propre compte Google Cloud pour cet atelier, des frais supplémentaires peuvent vous être facturés.
-
Accédez aux pages suivantes :
- Acceptez les conditions d'utilisation.
- N'ajoutez pas d'options de récupération ni d'authentification à deux facteurs (ce compte est temporaire).
- Ne vous inscrivez pas à des essais sans frais.
Après quelques instants, la console Cloud s'ouvre dans cet onglet.
Remarque : Pour accéder aux produits et services Google Cloud, cliquez sur le menu de navigation ou saisissez le nom du service ou du produit dans le champ Recherche.
Activer Cloud Shell
Cloud Shell est une machine virtuelle qui contient de nombreux outils pour les développeurs. Elle comprend un répertoire d'accueil persistant de 5 Go et s'exécute sur Google Cloud. Cloud Shell vous permet d'accéder via une ligne de commande à vos ressources Google Cloud.
-
Cliquez sur Activer Cloud Shell
en haut de la console Google Cloud.
-
Passez les fenêtres suivantes :
- Accédez à la fenêtre d'informations de Cloud Shell.
- Autorisez Cloud Shell à utiliser vos identifiants pour effectuer des appels d'API Google Cloud.
Une fois connecté, vous êtes en principe authentifié et le projet est défini sur votre ID_PROJET : . Le résultat contient une ligne qui déclare l'ID_PROJET pour cette session :
Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}
gcloud est l'outil de ligne de commande pour Google Cloud. Il est préinstallé sur Cloud Shell et permet la complétion par tabulation.
- (Facultatif) Vous pouvez lister les noms des comptes actifs à l'aide de cette commande :
gcloud auth list
- Cliquez sur Autoriser.
Résultat :
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- (Facultatif) Vous pouvez lister les ID de projet à l'aide de cette commande :
gcloud config list project
Résultat :
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
Remarque : Pour consulter la documentation complète sur gcloud, dans Google Cloud, accédez au guide de présentation de la gcloud CLI.
Tâche 1 : Explorer l'instance
Lors du déploiement, une instance, une base de données et une table Cloud Spanner ont été créées automatiquement.
- Dans la console, ouvrez le menu de navigation (
) > Afficher tous les produits. Dans la section Bases de données, cliquez sur Spanner.
Le nom de l'instance est banking-instance. Cliquez dessus pour explorer les bases de données.
La base de données associée se nomme banking-db.
Cliquez dessus pour l'explorer. Vous verrez qu'il existe déjà une table nommée Customer.
Cliquez dessus pour consulter le schéma.
- Pour le moment, la table est vide. Revenez à la page initiale de
banking-db. Dans le menu de gauche, cliquez sur Spanner Studio, puis exécutez le code ci-dessous :
SELECT * FROM Customer;
- Aucun résultat n'est renvoyé.
Tâche 2 : Insérer des données avec le langage LMD
Le moyen le plus simple d'insérer des données dans Spanner est d'utiliser le langage LMD. Avec Cloud Shell et gcloud, vous pouvez exécuter n'importe quelle instruction LMD, y compris INSERT.
- Dans Cloud Shell, exécutez la commande suivante :
gcloud spanner databases execute-sql banking-db --instance=banking-instance \
--sql="INSERT INTO Customer (CustomerId, Name, Location) VALUES ('bdaaaa97-1b4b-4e58-b4ad-84030de92235', 'Richard Nelson', 'Ada Ohio')"
- Revenez à la console et, dans le menu de gauche, cliquez sur Présentation. Accédez à la table Customer et sélectionnez Data (Données). La ligne que vous venez d'insérer s'affiche.
Comme indiqué précédemment, gcloud permet d'exécuter toutes les commandes LMD. Consultez la documentation sur le langage LMD et Spanner.
Notez que charger une base de données ligne par ligne n'est évidemment pas l'idéal.
Tâche 3 : Insérer des données à l'aide d'une bibliothèque cliente
Le meilleur moyen d'accéder à Spanner est d'utiliser une interface programmatique. Il existe une grande variété de bibliothèques clientes, y compris C++, C#, Go, Java, Node.js, PHP, Python et Ruby.
- Dans Cloud Shell, saisissez la commande suivante pour appeler l'éditeur de texte Nano et créer un fichier de configuration vide nommé insert.py.
nano insert.py
- Collez le bloc de code ci-dessous.
from google.cloud import spanner
from google.cloud.spanner_v1 import param_types
INSTANCE_ID = "banking-instance"
DATABASE_ID = "banking-db"
spanner_client = spanner.Client()
instance = spanner_client.instance(INSTANCE_ID)
database = instance.database(DATABASE_ID)
def insert_customer(transaction):
row_ct = transaction.execute_update(
"INSERT INTO Customer (CustomerId, Name, Location)"
"VALUES ('b2b4002d-7813-4551-b83b-366ef95f9273', 'Shana Underwood', 'Ely Iowa')"
)
print("{} record(s) inserted.".format(row_ct))
database.run_in_transaction(insert_customer)
-
Appuyez sur Ctrl+X pour quitter Nano, sur Y pour confirmer la mise à jour, puis sur Entrée pour enregistrer vos modifications.
-
Exécutez le code Python.
python3 insert.py
- Actualisez la console Cloud Console ou cliquez sur un autre élément du menu de gauche, puis à nouveau sur Data (Données). Vous verrez alors la nouvelle ligne dans votre base de données.
Comme avec gcloud, vous pouvez exécuter n'importe quelle instruction LMD à partir des bibliothèques clientes. Vous trouverez plusieurs exemples pour tous les langages dans la documentation.
Cette méthode est plus flexible que le chargement de données à l'aide de gcloud, mais elle présente des limites lorsque vous devez charger une source contenant un grand nombre de lignes.
- Cliquez sur Vérifier ma progression pour valider l'objectif.
Insérer des données à l'aide d'une bibliothèque cliente
Tâche 4 : Insérer des données par lot à l'aide d'une bibliothèque cliente
Pour charger plus efficacement vos données dans Spanner, il est préférable de le faire par lot. Toutes les bibliothèques clientes sont compatibles avec le chargement par lot. Cet exemple utilise Python.
- Dans Cloud Shell, saisissez la commande suivante pour appeler l'éditeur de texte Nano et créer un fichier de configuration vide nommé batch_insert.py.
nano batch_insert.py
- Collez le bloc de code ci-dessous.
from google.cloud import spanner
from google.cloud.spanner_v1 import param_types
INSTANCE_ID = "banking-instance"
DATABASE_ID = "banking-db"
spanner_client = spanner.Client()
instance = spanner_client.instance(INSTANCE_ID)
database = instance.database(DATABASE_ID)
with database.batch() as batch:
batch.insert(
table="Customer",
columns=("CustomerId", "Name", "Location"),
values=[
('edfc683f-bd87-4bab-9423-01d1b2307c0d', 'John Elkins', 'Roy Utah'),
('1f3842ca-4529-40ff-acdd-88e8a87eb404', 'Martin Madrid', 'Ames Iowa'),
('3320d98e-6437-4515-9e83-137f105f7fbc', 'Theresa Henderson', 'Anna Texas'),
('6b2b2774-add9-4881-8702-d179af0518d8', 'Norma Carter', 'Bend Oregon'),
],
)
print("Rows inserted")
-
Appuyez sur Ctrl+X pour quitter Nano, sur Y pour confirmer la mise à jour, puis sur Entrée pour enregistrer vos modifications.
-
Exécutez le code Python.
python3 batch_insert.py
- Revenez à la console Cloud et actualisez-la pour afficher les nouvelles données que vous venez d'insérer.
La méthode par lot est plus efficace, car elle s'exécute en une seule requête. Il n'y a qu'un seul aller-retour entre le client et le serveur, ce qui réduit la latence.
Cependant, cette méthode de chargement des données est très lente et consomme beaucoup de ressources.
- Cliquez sur Vérifier ma progression pour valider l'objectif.
Insérer des données par lot à l'aide d'une bibliothèque cliente
Tâche 5 : Charger des données à l'aide de Dataflow
Dataflow est un service Google Cloud permettant de traiter des données par flux et par lot à grande échelle. Dataflow utilise plusieurs nœuds de calcul pour exécuter le traitement des données en parallèle. La façon dont les données sont traitées est définie à l'aide de pipelines qui transforment les données entre leur point d'origine (sources) et leur point de destination (récepteurs).
Certains connecteurs pour Spanner permettent de connecter une base de données en tant que source ou récepteur dans Dataflow.
Lorsque vous devez charger de grandes quantités de données, Dataflow offre des capacités de traitement distribué sans serveur permettant de lire les données à partir d'une source (par exemple, un fichier CSV dans Google Cloud Storage) et de les charger dans votre base de données Spanner à l'aide d'un connecteur de récepteur.
- Pour préparer le job Dataflow, exécutez ces commandes dans Cloud Shell afin de créer un bucket dans votre projet et un dossier contenant un fichier vide.
gsutil mb gs://{{{project_0.project_id|Project ID}}}
touch emptyfile
gsutil cp emptyfile gs://{{{project_0.project_id|Project ID}}}/tmp/emptyfile
- Pour vérifier que les API sont activées et que les autorisations appropriées sont définies, exécutez le bloc de code suivant dans Cloud Shell.
gcloud services disable dataflow.googleapis.com --force
gcloud services enable dataflow.googleapis.com
-
Dans la console, ouvrez le menu de navigation (
) > Afficher tous les produits. Dans la section Analyse, cliquez sur Dataflow.
-
En haut de l'écran, cliquez sur Créer un job à partir d'un modèle.
-
Placez les valeurs suivantes dans le modèle :
-
Faites défiler le sélecteur Modèle Dataflow vers le bas pour afficher les différents plans que vous pouvez utiliser avec Dataflow. Vous pouvez bien entendu créer vos propres pipelines sur mesure à l'aide du SDK Beam.
Il existe deux principaux types de modèles :
- Les modèles par flux permettent de créer un pipeline pour gérer les données en mouvement perpétuel qui sont traitées en continu (par exemple, les commandes en ligne d'un site Web).
- Les modèles par lot traitent un ensemble de données qui a un début et une fin (par exemple, les fichiers stockés dans Google Cloud Storage).
Dans votre scénario, vous allez charger des données dans la base de données bancaire Spanner à partir d'un fichier CSV contenant plus de 150 000 lignes.
-
Sélectionnez le modèle Text Files on Cloud Storage to Cloud Spanner (Fichiers texte dans Cloud Storage vers Cloud Spanner).
-
Placez les valeurs suivantes dans le modèle :
| Élément |
Valeur |
| ID de l'instance Cloud Spanner |
banking-instance |
| ID de la base de données Cloud Spanner |
banking-db |
| Fichier manifeste d'importation de texte |
spls/gsp1049/manifest.json |
Le format du fichier manifest.json est expliqué dans le tutoriel de ce modèle (vous pouvez y accéder en cliquant sur Ouvrir le tutoriel, juste au-dessus des champs de saisie des paramètres).
Le fichier manifeste doit être stocké dans un bucket Google Cloud Storage auquel Dataflow peut accéder et à partir duquel il peut lire des données. Pour cet atelier, voici le contenu du fichier manifest.json :
{
"tables": [
{
"table_name": "Customer",
"file_patterns": [
"gs://spls/gsp1049/Customer_List.csv"
],
"columns": [
{"column_name" : "CustomerId", "type_name" : "STRING" },
{"column_name" : "Name", "type_name" : "STRING" },
{"column_name" : "Location", "type_name" : "STRING" }
]
}
]
}
Le fichier manifeste spécifie la table, le nom et le type des colonnes (dans l'ordre dans lequel elles apparaissent dans le fichier CSV), ainsi que le fichier CSV lui-même, qui est également stocké dans un bucket Google Cloud Storage.
Voici à quoi ressemble le fichier CSV :
9d238899-8348-4642-9c00-77dc4481145b,Nicole Anderson,Ada Ohio
360ecaa6-9ec3-4fa0-81a5-3b0dc629e1fa,Ellen Richardson,Ada Ohio
8ee6c2ea-923b-45db-8d51-7f8e7a117af0,Wendy Daniel,Ada Ohio
1d7112cc-c1ee-414f-9325-95c97f9a25d3,Virginia Beasley,Ada Ohio
...
- Pour le paramètre Emplacement temporaire, saisissez la valeur suivante :
{{{project_0.project_id|Project ID}}}/tmp
-
Développez la section Paramètres facultatifs.
-
Décochez Utiliser le type de machine par défaut.
-
Sous Usage général, sélectionnez les options suivantes :
- Série : E2
- Type de machine : e2-medium (2 vCPU, 4 Go de mémoire)
-
Cliquez sur Exécuter le job pour démarrer le pipeline.
-
Le processus prendra environ 12 à 16 minutes. Dataflow exécutera plusieurs étapes : il va d'abord démarrer les nœuds de calcul et analyser le pipeline à partir du modèle, puis il lira le fichier manifeste et commencera à traiter le fichier CSV.
Remarque : Si votre pipeline échoue en raison d'une erreur liée au provisionnement des nœuds de calcul, créez un job portant le même nom à partir du même modèle en commençant à l'étape 4. Cette fois, choisissez un autre point de terminaison régional aux États-Unis. Par exemple, si le point de terminaison régional us-east4 est indiqué à l'étape 5, essayez us-east1 au deuxième essai.
Attendez que Dataflow ait terminé le traitement avant de continuer. Une fois l'opération terminée, l'état sera Réussi.
-
Revenez à Spanner en le sélectionnant dans le menu de gauche de la console Cloud. Accédez à la table Customer et sélectionnez Data (Données). Vous verrez toutes les nouvelles lignes qui ont été chargées à l'aide de Dataflow.
-
Revenez à la page initiale de banking-db. Dans le menu de gauche, cliquez sur Spanner Studio et exécutez le code ci-dessous pour afficher le nombre total de lignes dans la table Customer :
SELECT COUNT(*) FROM Customer;
Les modèles Dataflow permettent de charger de grandes quantités de données facilement et rapidement. Vous pouvez charger des dumps provenant d'autres bases de données, des fichiers CSV, mais aussi des fichiers Avro, en suivant la même procédure. Vous pouvez même exécuter le processus dans l'autre sens, en utilisant votre base de données Spanner comme source dans Dataflow pour exporter les données au format CSV ou Avro.
- Cliquez sur Vérifier ma progression pour valider l'objectif.
Charger des données à l'aide de Dataflow
Tâche 6 : Sauvegarder votre base de données
Les procédures décrites ci-dessus pourraient vous permettre de créer des sauvegardes de vos données avec Dataflow. Mais Spanner dispose de son propre outil de sauvegarde.
Vous pouvez sauvegarder une base de données Spanner à partir de la console Cloud, des bibliothèques clientes ou des commandes gcloud. Consultez les liens précédents pour accéder à la documentation.
Dans cet atelier, vous allez sauvegarder votre base de données avec la console Cloud.
-
Sélectionnez Sauvegardes/Restaurations dans le menu de gauche.
-
Cliquez sur Créer une sauvegarde.
-
Saisissez ou sélectionnez les valeurs suivantes dans l'assistant :
| Élément |
Valeur |
| Nom de la base de données |
banking-db |
| Nom de la sauvegarde |
banking-backup-001 |
| Date d'expiration |
1 an |
-
Cliquez sur Créer.
-
La sauvegarde prendra environ 15 minutes. Elle apparaîtra dans la liste Sauvegardes pendant sa création.
Félicitations !
Vous maîtrisez désormais plusieurs méthodes pour charger des données dans une instance Cloud Spanner et effectuer des sauvegardes.
Formations et certifications Google Cloud
Les formations et certifications Google Cloud vous aident à tirer pleinement parti des technologies Google Cloud. Nos cours portent sur les compétences techniques et les bonnes pratiques à suivre pour être rapidement opérationnel et poursuivre votre apprentissage. Nous proposons des formations pour tous les niveaux, à la demande, en salle et à distance, pour nous adapter aux emplois du temps de chacun. Les certifications vous permettent de valider et de démontrer vos compétences et votre expérience en matière de technologies Google Cloud.
Dernière mise à jour du manuel : 16 septembre 2025
Dernier test de l'atelier : 16 septembre 2025
Copyright 2026 Google LLC. Tous droits réservés. Google et le logo Google sont des marques de Google LLC. Tous les autres noms d'entreprises et de produits peuvent être des marques des entreprises auxquelles ils sont associés.