1. Présentation
Spanner est un service de base de données entièrement géré, distribué à l'échelle mondiale et à évolutivité horizontale, idéal pour les charges de travail opérationnelles relationnelles et non relationnelles. Au-delà de ses fonctionnalités de base, Spanner propose des fonctionnalités avancées puissantes qui permettent de créer des applications intelligentes et axées sur les données.
Cet atelier de programmation s'appuie sur les connaissances de base de Spanner et explore l'utilisation de ses intégrations avancées pour améliorer vos capacités de traitement et d'analyse des données, en utilisant une application bancaire en ligne comme base.
Nous allons nous concentrer sur trois fonctionnalités avancées clés :
- Intégration de Vertex AI : découvrez comment intégrer Spanner à Vertex AI, la plate-forme d'IA de Google Cloud, de manière fluide. Vous apprendrez à appeler des modèles Vertex AI directement à partir de requêtes Spanner SQL, ce qui permet d'effectuer des transformations et des prédictions puissantes dans la base de données. Notre application bancaire pourra ainsi catégoriser automatiquement les transactions pour des cas d'utilisation tels que le suivi du budget et la détection des anomalies.
- Recherche en texte intégral : découvrez comment implémenter la fonctionnalité de recherche en texte intégral dans Spanner. Vous apprendrez à indexer des données textuelles et à écrire des requêtes efficaces pour effectuer des recherches par mots clés dans vos données opérationnelles. Vous pourrez ainsi découvrir des données puissantes, par exemple en trouvant efficacement des clients par adresse e-mail dans notre système bancaire.
- Requêtes fédérées BigQuery : découvrez comment exploiter les fonctionnalités de requêtes fédérées de Spanner pour interroger directement les données résidant dans BigQuery. Cela vous permet de combiner les données opérationnelles en temps réel de Spanner avec les ensembles de données analytiques de BigQuery pour obtenir des insights et des rapports complets sans duplication de données ni processus ETL complexes. Vous pouvez ainsi alimenter divers cas d'utilisation dans notre application bancaire, comme des campagnes marketing ciblées en combinant les données client en temps réel avec les tendances historiques plus larges de BigQuery.
Points abordés
- Comment configurer une instance Spanner.
- Comment créer une base de données et des tables.
- Comment charger des données dans les tables de votre base de données Spanner.
- Appeler des modèles Vertex AI depuis Spanner
- Comment interroger votre base de données Spanner à l'aide de la recherche approximative et de la recherche en texte intégral.
- Comment effectuer des requêtes fédérées sur Spanner à partir de BigQuery.
- Comment supprimer une instance Spanner.
Prérequis
2. Préparation
Créer un projet
Si vous avez déjà un projet Google Cloud avec la facturation activée, cliquez sur le menu déroulant de sélection du projet en haut à gauche de la console :

Si vous avez déjà sélectionné un projet, passez à Activer les API requises.
Si vous ne possédez pas encore de compte Google (Gmail ou Google Apps), vous devez en créer un. Connectez-vous à la console Google Cloud Platform (console.cloud.google.com) et créez un projet.
Cliquez ensuite sur le bouton "NEW PROJECT" (NOUVEAU PROJET) dans la boîte de dialogue qui s'affiche pour créer un projet :

Si vous n'avez pas encore de projet, une boîte de dialogue semblable à celle-ci apparaîtra pour vous permettre d'en créer un :

La boîte de dialogue de création de projet suivante vous permet de saisir les détails de votre nouveau projet.
Mémorisez l'ID du projet. Il s'agit d'un nom unique permettant de différencier chaque projet Google Cloud. Il sera désigné par le nom PROJECT_ID tout au long de cet atelier de programmation.

Ensuite, si ce n'est pas déjà fait, vous devez activer la facturation dans la console Developers afin de pouvoir utiliser les ressources Google Cloud et activer les API Spanner, Vertex AI, BigQuery et BigQuery Connection.

Les tarifs de Spanner sont décrits sur cette page. Les autres coûts associés à d'autres ressources seront indiqués sur les pages de tarification spécifiques.
Les nouveaux utilisateurs de Google Cloud Platform peuvent bénéficier d'un essai sans frais avec 300$de crédits.
Configuration de Google Cloud Shell
Dans cet atelier de programmation, nous allons utiliser Google Cloud Shell, un environnement de ligne de commande exécuté dans le cloud.
Cette machine virtuelle basée sur Debian contient tous les outils de développement dont vous aurez besoin. Elle comprend un répertoire d'accueil persistant de 5 Go et s'exécute sur Google Cloud, ce qui améliore nettement les performances du réseau et l'authentification. Cela signifie que tout ce dont vous avez besoin pour cet atelier de programmation est un navigateur.
Pour activer Cloud Shell à partir de la console Cloud, cliquez simplement sur Activer Cloud Shell
(l'opération de provisionnement et la connexion à l'environnement ne devraient prendre que quelques minutes).

Une fois connecté à Cloud Shell, vous êtes normalement déjà authentifié et le projet PROJECT_ID est sélectionné :
gcloud auth list
Résultat attendu :
Credentialed Accounts ACTIVE: * ACCOUNT: <myaccount>@<mydomain>.com
gcloud config list project
Résultat attendu :
[core] project = <PROJECT_ID>
Si, pour une raison quelconque, le projet n'est pas défini, exécutez la commande suivante :
gcloud config set project <PROJECT_ID>
Vous recherchez votre PROJECT_ID ? Vérifiez l'ID que vous avez utilisé pendant les étapes de configuration ou recherchez-le dans le tableau de bord Cloud Console :

Par défaut, Cloud Shell définit certaines variables d'environnement qui pourront s'avérer utiles pour exécuter certaines commandes dans le futur.
echo $GOOGLE_CLOUD_PROJECT
Résultat attendu :
<PROJECT_ID>
Activer les API requises
Activez les API Spanner, Vertex AI et BigQuery pour votre projet :
gcloud services enable spanner.googleapis.com
gcloud services enable aiplatform.googleapis.com
gcloud services enable bigquery.googleapis.com
gcloud services enable bigqueryconnection.googleapis.com
Résumé
Au cours de cette étape, vous avez configuré votre projet si vous n'en aviez pas déjà un, activé Cloud Shell et activé les API requises.
Étape suivante
Vous allez ensuite configurer l'instance Spanner.
3. Configurer une instance Spanner
Créer l'instance Spanner
Dans cette étape, vous allez configurer une instance Spanner pour l'atelier de programmation. Pour ce faire, ouvrez Cloud Shell et exécutez la commande suivante :
export SPANNER_INSTANCE=cloudspanner-onlinebanking
gcloud spanner instances create $SPANNER_INSTANCE \
--config=regional-us-central1 \
--description="Spanner Online Banking" \
--nodes=1 \
--edition=ENTERPRISE \
--default-backup-schedule-type=NONE
Résultat attendu :
Creating instance...done.
Résumé
Lors de cette étape, vous avez créé l'instance Spanner.
Étape suivante
Vous allez ensuite préparer l'application initiale, puis créer la base de données et le schéma.
4. Créer une base de données et un schéma
Préparer la demande initiale
Dans cette étape, vous allez créer la base de données et le schéma à l'aide du code.
Pour commencer, créez une application Java nommée onlinebanking à l'aide de Maven :
mvn -B archetype:generate \
-DarchetypeGroupId=org.apache.maven.archetypes \
-DgroupId=com.google.codelabs \
-DartifactId=onlinebanking \
-DjavaCompilerVersion=1.8 \
-DjunitVersion=4.13.2 \
-DarchetypeVersion=1.5
Extrayez et copiez les fichiers de données que nous ajouterons à la base de données (consultez ici pour accéder au dépôt de code) :
git clone https://github.com/GoogleCloudPlatform/cloud-spanner-samples.git
cp -r ./cloud-spanner-samples/banking/data ./onlinebanking
Accédez au dossier de l'application :
cd onlinebanking
Ouvrez le fichier Maven pom.xml. Ajoutez la section de gestion des dépendances pour utiliser Maven BOM afin de gérer la version des bibliothèques Google Cloud :
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>libraries-bom</artifactId>
<version>26.56.0</version>
<type>pom</type>
<scope>import</