Créer une application bancaire en ligne avec Spanner

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

  • Projet Google Cloud associé à un compte de facturation.
  • Un navigateur Web (Chrome ou Firefox, par exemple).

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 :

Projet existant

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 :

Nouveau 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 :

Boîte de dialogue "Projet"

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.

Détails des projets

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.

Facturation du projet

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 Icône Cloud Shell (l'opération de provisionnement et la connexion à l'environnement ne devraient prendre que quelques minutes).

Cloud Shell

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 :

ID du projet

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</