Analysez et visualisez des données sur les transactions par carte de crédit dans Bigtable à l'aide de BigQuery et Looker

1. Présentation

Cet atelier de programmation vous explique comment analyser un flux de données de transactions par carte de crédit écrites dans Bigtable. Vous allez découvrir comment utiliser le modèle de flux de modifications Bigtable vers BigQuery pour exporter des données en temps réel. Vous découvrirez ensuite des techniques pour interroger le journal du flux de modifications et comment reformater les données pour créer un tableau de bord à l'aide de Looker.

Cet atelier de programmation est destiné aux utilisateurs techniques qui connaissent Bigtable, l'utilisation des outils de ligne de commande et les services de streaming d'événements.

426dc59200875a20.png

Cet atelier de programmation vous explique comment :

  • Créez une table Bigtable avec un flux de modifications activé.
  • Créez un ensemble de données BigQuery.
  • Déployer le modèle Dataflow Bigtable change streams to BigQuery.
  • Interrogez le flux d'événements dans BigQuery.
  • Visualisez le flux d'événements avec Looker.

Ce schéma illustre l'architecture du système que vous allez déployer.

336e940307d0e0a.png

2. Configuration du projet

  1. Dans la console Google Cloud, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

eb5309715175de69.png

  1. Vérifiez que la facturation est activée pour votre projet Google Cloud.
  2. Accédez à cette page préremplie d'activation des API pour activer les API nécessaires pour Dataflow, Bigtable, BigQuery, Looker et Cloud Storage.

3. Créer un ensemble de données BigQuery

Vous analyserez les données à l'aide de BigQuery plus loin dans l'atelier de programmation. Suivez ces instructions pour créer l'ensemble de données pour la sortie de votre pipeline de données.

  1. Dans la console Google Cloud, accédez à la page BigQuery.
  2. Dans le volet Explorateur, recherchez le nom de votre projet, puis cliquez sur le menu à développer (trois points verticaux à côté de l'ID du projet).
  3. Cliquez sur Créer un ensemble de données.

122bc1a411b8dc63.png

  1. Dans le panneau Créer un ensemble de données, procédez comme suit :
  • Dans le champ ID de l'ensemble de données, saisissez bigtable_bigquery_tutorial.
  • Ne modifiez pas les autres paramètres par défaut.
  • Cliquez sur Créer un ensemble de données.

4. Créer une table Bigtable avec un flux de modifications activé

Bigtable est un service de base de données NoSQL à faible latence et à évolutivité horizontale. L'un de ses cas d'utilisation courants est la diffusion de données financières. Vous allez créer une table permettant de stocker les transactions par carte de crédit. Bigtable peut gérer le débit d'écriture élevé des transactions dans le monde entier et même utiliser ces données pour la détection des fraudes en temps réel.

  1. Dans la console Google Cloud, accédez à la page Instances Bigtable.
  2. Cliquez sur l'ID de l'instance que vous utilisez pour ce tutoriel. Si vous ne disposez pas d'instance, créez-en une avec le nom de votre choix dans une région proche de chez vous. Vous pouvez utiliser les configurations par défaut pour tout le reste.

a2e8de7b66dc42e.png

  1. Dans le volet de navigation de gauche, cliquez sur Tables.
  2. Cliquez sur Créer une table.

9c267c00f93747c4.png

  • Nommez la table retail-database.
  • Ajoutez une famille de colonnes nommée transactions.
  • Sélectionnez Activer le flux de modifications.
  • Conservez les valeurs par défaut pour la stratégie de récupération de mémoire et la période de conservation.
  • Cliquez sur Créer.

696cd1399c354816.png

5. Initialiser un pipeline de données pour capturer le flux de modifications

Les performances de Bigtable sont optimales pour les lectures ponctuelles et les analyses de plages de lignes, mais les analyses à l'échelle de la table peuvent mettre à rude épreuve la capacité de diffusion et les ressources du processeur. BigQuery est idéal pour l'analyse à l'échelle de la table. La solution que vous allez utiliser ici est donc la double écriture. Cela signifie que vous écrirez vos données dans Bigtable et BigQuery, ce qui est une technique courante. Aucun code supplémentaire ne sera nécessaire, car vous utiliserez le modèle Dataflow Bigtable change streams to BigQuery : lorsqu'une donnée est écrite dans Bigtable, le pipeline écrit un enregistrement de modification dans BigQuery. Une fois les données dans BigQuery, vous pouvez effectuer des requêtes optimisées sur l'ensemble de vos données sans impacter les performances de vos données de diffusion dans Bigtable.

f4cd9d8faf10ce77.png

  1. Sur la page Tables de Bigtable, recherchez votre table retail-database.
  2. Dans la colonne Flux de modifications, cliquez sur Connecter.
  3. Dans la boîte de dialogue Se connecter avec Dataflow, sélectionnez BigQuery.
  4. Cliquez sur Créer un job Dataflow.
  5. Dans les champs fournis, saisissez vos valeurs de paramètres. Vous n'avez pas besoin de fournir de paramètres facultatifs.
  • Définissez l'ID du profil d'application Cloud Bigtable sur default.
  • Définissez l'ensemble de données BigQuery sur bigtable_bigquery_tutorial.
  1. Cliquez sur Run Job (Exécuter la tâche).
  2. Attendez que l'état du job soit Démarrage ou En cours d'exécution avant de continuer. Une fois le job mis en file d'attente, l'opération peut prendre environ cinq minutes. La page s'actualisera automatiquement. Ce modèle crée un job de traitement en flux continu. Il peut donc traiter en continu les nouvelles données écrites dans Bigtable jusqu'à ce que le job soit arrêté manuellement.

a04908b37c6fe96b.png

6. Écrire des données dans Bigtable

Vous allez maintenant écrire une année de transactions par carte de crédit dans votre table Bigtable. Cet exemple d'ensemble de données inclut des informations telles que le numéro de carte de crédit, le nom et l'ID du marchand, et le montant. Dans une véritable application de traitement des cartes de crédit, ces données seraient diffusées en temps réel dans votre base de données à chaque transaction.

  1. Ouvrez Cloud Shell en cliquant sur le bouton en haut à droite de la console cloud.

f6395329b04ecb64.png

  1. Si vous y êtes invité, acceptez d'autoriser Cloud Shell.
  2. Téléchargez l'ensemble de données.
gsutil cp gs://cloud-bigtable-public-datasets/change-streams-tutorial/cc-transactions-2023.csv .
  1. Définir vos variables d'environnement dans la ligne de commande
PROJECT_ID=your-project-id
BIGTABLE_INSTANCE_ID=your-bigtable-instance-id
  1. Utilisez la CLI cbt pour écrire un certain nombre de transactions par carte de crédit dans la table retail-database.
cbt -instance=$BIGTABLE_INSTANCE_ID -project=$PROJECT_ID import \
retail-database cc-transactions-2023.csv  column-family=transactions

Le résultat sera

Done importing 10000 rows.

7. Afficher les journaux des modifications dans BigQuery

  1. Dans la console Google Cloud, accédez à la page BigQuery.
  2. Dans le volet Explorateur, développez votre projet et l'ensemble de données bigtable_bigquery_tutorial.
  3. Cliquez sur la table retail-database_changelog. Si la table n'est pas présente, vous devrez peut-être actualiser l'ensemble de données.
  4. Pour afficher le journal des modifications, cliquez sur Aperçu.

aa97ff01f944832.png

Testez quelques requêtes

Vous pouvez maintenant exécuter quelques requêtes sur cet ensemble de données pour obtenir des insights. Les requêtes SQL sont fournies ici, mais la documentation Interroger un journal des modifications Bigtable dans BigQuery contient plus d'informations sur la façon d'écrire des requêtes pour les données du journal des modifications.

Rechercher une transaction

Utilisez la requête suivante pour rechercher les données d'une transaction spécifique.

SELECT *
FROM `bigtable_bigquery_tutorial.retail-database_changelog`
WHERE row_key="3034-442694-3052#2023-03-03T14:50:46.824Z"

Vous verrez que chaque colonne écrite a été transformée en ligne individuelle dans BigQuery.

Trouver le nombre d'achats dans chaque catégorie

Utilisez la requête suivante pour compter le nombre d'achats par catégorie.

SELECT value as category, count(*) as `number of sales`
FROM `bigtable_bigquery_tutorial.retail-database_changelog`
WHERE column="category"
GROUP BY category

Reformater les données

Pour reconstruire chaque transaction dans une seule ligne de table BigQuery, vous allez pivoter les données et enregistrer le résultat dans une nouvelle table. Il s'agit d'un format de requête plus facile à gérer.

CREATE VIEW bigtable_bigquery_tutorial.retail_transactions_view AS (
    SELECT *, parse_numeric(amount) as sales_dollars FROM (
      SELECT row_key, timestamp, column, value
      FROM `bigtable_bigquery_tutorial.retail-database_changelog`
      )
      PIVOT (
      MAX(value)
      FOR column in ("merchant", "amount", "category", "transaction_date")
    )
)

Créer un tableau de bord Looker

  1. Cliquez sur Accéder à la vue pour accéder à la page d'informations de la nouvelle vue.
  2. Cliquez sur Exporter.
  3. Sélectionnez Explorer avec Looker Studio.

bb45482e9101b0f.png

8. Ajouter des graphiques au tableau de bord

Vous pouvez désormais représenter les informations sous forme de graphique pour les rendre plus faciles à comprendre et à partager dans un rapport. Vous allez ajouter trois graphiques à votre tableau de bord :

  • Montants des transactions au fil du temps
  • Nombre total de transactions pour chaque marchand
  • Pourcentage de transactions par catégorie

426dc59200875a20.png

Configurer la page

  1. Cliquez sur chaque graphique existant et appuyez sur Supprimer pour les supprimer.
  2. Sélectionnez Propriétés sur la droite de la page pour modifier les données du graphique.

Ajouter les graphiques

Montants des transactions au fil du temps

  1. Cliquez sur Ajouter un graphique, puis créez un graphique de séries temporelles.
  2. Définissez la dimension sur transaction_date.
  1. Définissez Metric (Métrique) sur sales_dollars.

372bdf2a2bcdb817.png

Nombre total de transactions pour chaque marchand

  1. Cliquez sur Ajouter un graphique, puis créez un tableau.
  2. Définissez Dimension sur merchant.
  3. Définissez Métrique sur sales_dollars.

Pourcentage de transactions par catégorie

  1. Cliquez sur Ajouter un graphique, puis créez un graphique à secteurs.
  2. Définissez Dimension sur category.
  3. Définissez Métrique sur sales_dollars.

Voir les modifications en temps réel

Prenez le temps d'explorer les valeurs des graphiques. Vous pouvez cliquer sur des marchands ou des catégories spécifiques dans le tableau pour filtrer tous les graphiques sur ces valeurs et obtenir ainsi plus d'insights. Vous pouvez ensuite écrire d'autres données et voir comment ce graphique se met à jour en temps réel.

  1. Revenez à votre Cloud Shell.
  2. Téléchargez et écrivez le deuxième ensemble de données.
gsutil cp gs://cloud-bigtable-public-datasets/change-streams-tutorial/cc-transactions-2024-jan.csv .

cbt -instance=$BIGTABLE_INSTANCE_ID -project=$PROJECT_ID import \
retail-database cc-transactions-2024-jan.csv  column-family=transactions
  1. Revenez à votre tableau de bord Looker et actualisez les données à l'aide de la commande Ctrl+Shift+E ou en cliquant sur Actualiser les données dans le menu Afficher. Vous devriez maintenant voir les données de janvier 2024 dans les graphiques.

Vous pouvez créer de nombreuses autres variations de graphiques et de métriques. Pour en savoir plus, consultez la documentation Looker.

9. Effectuer un nettoyage

Pour éviter que les ressources utilisées lors de ce tutoriel soient facturées sur votre compte Google Cloud, supprimez le projet contenant les ressources, ou conservez le projet et supprimez chaque ressource individuellement.

Arrêter le pipeline de flux de modifications

  1. Dans la console Google Cloud, accédez à la page Tâches Dataflow.
  2. Sélectionnez votre tâche de traitement par flux dans la liste des tâches.
  3. Dans la barre de navigation, cliquez sur Arrêter.
  4. Dans la boîte de dialogue "Arrêter la tâche", sélectionnez Annuler, puis cliquez sur Arrêter la tâche.

Supprimer les ressources Bigtable

Si vous avez créé une instance Bigtable pour ce tutoriel, vous pouvez la supprimer ou nettoyer la table que vous avez créée.

  1. Dans la console Google Cloud, accédez à la page Instances Bigtable.
  2. Cliquez sur l'ID de l'instance que vous utilisez pour ce tutoriel.
  3. Dans le volet de navigation de gauche, cliquez sur Tables.
  4. Recherchez la table retail-database.
  5. Cliquez sur Modifier.
  6. Décochez la case Activer le flux de modifications.
  7. Cliquez sur Enregistrer.
  8. Ouvrez le menu à développer du tableau.
  9. Cliquez sur Supprimer, puis saisissez le nom de la table pour confirmer.
  10. Facultatif : Supprimez l'instance si vous en avez créé une pour ce tutoriel.

Supprimer l'ensemble de données BigQuery

  1. Dans la console Google Cloud, accédez à la page BigQuery.
  2. Dans le panneau Explorateur, recherchez l'ensemble de données bigtable_bigquery_tutorial et cliquez dessus.
  3. Cliquez sur Supprimer, saisissez "supprimer", puis cliquez sur Supprimer pour confirmer.

Étape suivante