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 reformater les données afin de créer un tableau de bord à l'aide de Looker.
Cet atelier de programmation est destiné aux utilisateurs techniques qui connaissent Bigtable, les outils de ligne de commande et les services de streaming d'événements.
Cet atelier de programmation vous explique comment effectuer les tâches suivantes:
- Créez une table Bigtable avec un flux de modifications activé.
- Créez un ensemble de données BigQuery.
- Déployez 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.
2. Configuration du projet
- Dans la console Google Cloud, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.
- Vérifiez que la facturation est activée pour votre projet Google Cloud.
- Consultez la 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 tard dans l'atelier de programmation. Suivez ces instructions afin de créer l'ensemble de données pour la sortie de votre pipeline de données.
- Dans la console Google Cloud, accédez à la page BigQuery.
- Dans le volet Explorer, recherchez le nom de votre projet, puis cliquez sur le menu à développer (trois points verticaux à côté de l'ID de projet).
- Cliquez sur Créer un ensemble de données.
- 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
. - Conservez 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 évolutif horizontalement. Un cas d'utilisation courant est la diffusion de données financières. Vous allez maintenant créer une table pouvant stocker les transactions par carte de crédit. Bigtable peut gérer les écritures de transactions à haut débit des transactions du monde entier et même utiliser ces données pour détecter les fraudes en temps réel.
- Dans la console Google Cloud, accédez à la page Instances Bigtable.
- Cliquez sur l'ID de l'instance que vous utilisez pour ce tutoriel. Si vous n'avez pas d'instance disponible, créez-en une avec le nom de votre choix dans une région proche de vous. Vous pouvez utiliser les configurations par défaut pour tout le reste.
- Dans le volet de navigation de gauche, cliquez sur Tables.
- Cliquez sur Créer une table.
- 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 de la règle de récupération de mémoire et de la durée de conservation.
- Cliquez sur Créer.
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 plage de lignes, mais les analyses à l'échelle de la table peuvent mettre à rude épreuve la capacité de diffusion et les ressources de processeur. BigQuery est idéal pour l'analyse à l'échelle de la table. La solution que vous allez utiliser ici est les écritures doubles. Cela signifie que vous allez écrire vos données dans Bigtable et BigQuery, ce qui est une technique courante. Cela ne nécessitera pas de codage supplémentaire, car vous utiliserez le modèle Dataflow Bigtable change streams to BigQuery
: lorsque des données sont écrites 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 données complet, sans affecter les performances de vos données de diffusion dans Bigtable.
- Sur la page Tables de Bigtable, recherchez la table
retail-database
. - Dans la colonne Flux de modifications, cliquez sur Se connecter.
- Dans la boîte de dialogue Se connecter avec Dataflow, sélectionnez BigQuery.
- Cliquez sur Créer une tâche Dataflow.
- 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
.
- Cliquez sur Run Job (Exécuter la tâche).
- Attendez que l'état de la tâche indique Starting (Démarrage) ou Running (En cours d'exécution) avant de continuer. L'opération peut prendre environ cinq minutes une fois la tâche mise en file d'attente. La page sera automatiquement mise à jour. Ce modèle crée une tâche de streaming afin de pouvoir traiter en continu les nouvelles données écrites dans Bigtable jusqu'à ce que la tâche soit arrêtée manuellement.
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, ainsi que le montant. Dans une application de traitement des cartes de crédit, ces données seraient transmises en temps réel à votre base de données à chaque transaction.
- Ouvrez Cloud Shell en cliquant sur le bouton en haut à droite de la console Cloud.
- Si vous y êtes invité, acceptez l'invite pour autoriser Cloud Shell.
- Téléchargez l'ensemble de données.
gsutil cp gs://cloud-bigtable-public-datasets/change-streams-tutorial/cc-transactions-2023.csv .
- Définir vos variables d'environnement dans la ligne de commande
PROJECT_ID=your-project-id
BIGTABLE_INSTANCE_ID=your-bigtable-instance-id
- Utilisez la CLI
cbt
pour écrire un certain nombre de transactions par carte de crédit dans la tableretail-database
.
cbt -instance=$BIGTABLE_INSTANCE_ID -project=$PROJECT_ID import \
retail-database cc-transactions-2023.csv column-family=transactions
Le résultat indique
Done importing 10000 rows.
7. Afficher les journaux des modifications dans BigQuery
- Dans la console Google Cloud, accédez à la page BigQuery.
- Dans le volet Explorateur, développez votre projet et l'ensemble de données
bigtable_bigquery_tutorial
. - Cliquez sur la table
retail-database_changelog
. Vous devrez peut-être actualiser l'ensemble de données si la table n'est pas présente. - Pour afficher le journal des modifications, cliquez sur Aperçu.
Essayez quelques requêtes
Vous pouvez maintenant exécuter quelques requêtes sur ce jeu 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 fournit plus d'informations sur la création de 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 constaterez 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 ce résultat dans une nouvelle table. Il s'agit d'un format plus facile à interroger.
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
- Cliquez sur Accéder à la vue pour accéder à la page d'informations de la nouvelle vue.
- Cliquez sur Exporter.
- Sélectionnez Explorer avec Looker Studio.
8. Ajouter des graphiques au tableau de bord
Vous pouvez désormais représenter les informations sous forme de graphiques pour les assimiler et les partager plus facilement sous forme de rapport. Vous allez ajouter trois graphiques à votre tableau de bord:
- Montant des transactions au fil du temps
- Nombre total de transactions pour chaque marchand
- Pourcentage de transactions par catégorie
Configurer la page
- Cliquez sur chaque graphique existant, puis appuyez sur "Supprimer" pour les supprimer.
- Sélectionnez Établissements sur la droite de la page pour modifier les données du graphique.
Ajouter les graphiques
Montant des transactions au fil du temps
- Cliquez sur Ajouter un graphique, puis créez un graphique de séries temporelles.
- Définissez Dimension sur
transaction_date
.
- Définissez Metric (Métrique) sur
sales_dollars
.
Nombre total de transactions pour chaque marchand
- Cliquez sur Ajouter un graphique, puis créez un tableau.
- Définissez Dimension sur
merchant
. - Définissez Métrique sur
sales_dollars
.
Pourcentage de transactions par catégorie
- Cliquez sur Ajouter un graphique, puis créez un graphique à secteurs.
- Définissez le champ Dimension sur
category
. - Définissez Métrique sur
sales_dollars
.
Afficher les modifications en temps réel
Prenez le temps d'explorer les valeurs des graphiques. Vous pouvez cliquer sur des marchands spécifiques dans le tableau ou sur des catégories spécifiques du tableau. Les graphiques seront alors filtrés en fonction de ces valeurs spécifiques, ce qui vous donnera plus d'insights. Vous pouvez ensuite écrire d'autres données et voir comment ce graphique s'actualise en temps réel.
- Revenez à Cloud Shell.
- 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
- Revenez à votre tableau de bord Looker et actualisez les données à l'aide de la commande
Ctrl+Shift+E
ou cliquez sur Actualiser les données dans le menu Vue. Les données de janvier 2024 devraient maintenant s'afficher dans les graphiques.
Vous pouvez créer de nombreuses 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 du flux de modifications
- Dans la console Google Cloud, accédez à la page Tâches Dataflow.
- Sélectionnez votre tâche de traitement par flux dans la liste des tâches.
- Dans la barre de navigation, cliquez sur Arrêter.
- 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.
- Dans la console Google Cloud, accédez à la page Instances Bigtable.
- Cliquez sur l'ID de l'instance que vous utilisez pour ce tutoriel.
- Dans le volet de navigation de gauche, cliquez sur Tables.
- Recherchez la table
retail-database
. - Cliquez sur Modifier.
- Décochez la case Activer le flux de modifications.
- Cliquez sur Enregistrer.
- Ouvrez le menu à développer de la table.
- Cliquez sur Supprimer et saisissez le nom de la table pour confirmer.
- Facultatif: Supprimez l'instance si vous en avez créé une autre pour ce tutoriel
Supprimer l'ensemble de données BigQuery
- Dans la console Google Cloud, accédez à la page BigQuery.
- Dans le panneau Explorateur, recherchez l'ensemble de données
bigtable_bigquery_tutorial
, puis cliquez dessus. - Cliquez sur Supprimer, saisissez "delete" (supprimer), puis cliquez sur Supprimer pour confirmer.