Ce tutoriel explique comment utiliser le modèle Flux de modifications Bigtable vers Pub/Sub, y compris comment configurer un sujet et le modèle. Vous pouvez également créer une fonction Cloud Run, dans le langage de programmation de votre choix, déclenchée par le flux d'événements.
Ce tutoriel s'adresse aux utilisateurs techniques qui connaissent Bigtable, la rédaction de code et les services de streaming d'événements.
Objectifs
Ce tutoriel vous explique comment effectuer les tâches suivantes :
- Créez une table Bigtable avec un flux de modifications activé.
- Créez un sujet Pub/Sub avec le schéma de flux de modifications Bigtable.
- Déployez un flux de modifications Bigtable vers un pipeline Pub/Sub sur Dataflow à l'aide du modèle.
- Affichez le flux d'événements directement dans Pub/Sub ou dans les journaux d'une fonction Cloud Run.
Coûts
Dans ce document, vous utilisez les composants facturables suivants de Google Cloud :
Obtenez une estimation des coûts en fonction de votre utilisation prévue à l'aide du simulateur de coût.
Une fois que vous avez terminé les tâches décrites dans ce document, vous pouvez éviter de continuer à payer des frais en supprimant les ressources que vous avez créées. Pour en savoir plus, consultez la section Effectuer un nettoyage.
Avant de commencer
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Dataflow, Cloud Bigtable API, Cloud Bigtable Admin API, Pub/Sub, Cloud Run functions, and Cloud Storage APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Dataflow, Cloud Bigtable API, Cloud Bigtable Admin API, Pub/Sub, Cloud Run functions, and Cloud Storage APIs.
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
- Mettez à jour et installez la CLI
cbt
.gcloud components update gcloud components install cbt
Créer un sujet Pub/Sub
Dans la console Google Cloud, accédez à la page Sujets de Pub/Sub.
Cliquez sur Create topic (Créer un sujet).
Définissez
bigtable-change-stream-topic
comme ID.Sélectionnez Utiliser un schéma.
Dans le menu déroulant Sélectionner un schéma Pub/Sub, cliquez sur Créer un schéma. Un nouvel onglet s'ouvre, dans lequel vous pouvez définir le schéma.
- Définissez l'ID de schéma sur
bigtable-change-stream-schema
. - Définissez le type de schéma sur Avro.
- Collez le code suivant en tant que définition de schéma. Pour en savoir plus sur le schéma, consultez la page de documentation du modèle.
{ "name" : "ChangelogEntryMessage", "type" : "record", "namespace" : "com.google.cloud.teleport.bigtable", "fields" : [ { "name" : "rowKey", "type" : "bytes"}, { "name" : "modType", "type" : { "name": "ModType", "type": "enum", "symbols": ["SET_CELL", "DELETE_FAMILY", "DELETE_CELLS", "UNKNOWN"]} }, { "name": "isGC", "type": "boolean" }, { "name": "tieBreaker", "type": "int"}, { "name": "columnFamily", "type": "string"}, { "name": "commitTimestamp", "type" : "long"}, { "name" : "sourceInstance", "type" : "string"}, { "name" : "sourceCluster", "type" : "string"}, { "name" : "sourceTable", "type" : "string"}, { "name": "column", "type" : ["null", "bytes"]}, { "name": "timestamp", "type" : ["null", "long"]}, { "name": "timestampFrom", "type" : ["null", "long"]}, { "name": "timestampTo", "type" : ["null", "long"]}, { "name" : "value", "type" : ["null", "bytes"]} ] }
- Cliquez sur Créer pour créer le schéma.
- Définissez l'ID de schéma sur
Fermez l'onglet Create schema (Créer un schéma), actualisez la liste des schémas, puis sélectionnez le schéma que vous venez de définir.
Cliquez sur Créer pour créer le sujet.
Facultatif: Créer une fonction Cloud Run
Vous pouvez traiter le flux Pub/Sub avec une fonction Cloud Run.
- Sur la page Détails du sujet
bigtable-change-stream-topic
, cliquez sur Déclencher une fonction Cloud Functions . - Dans le champ Nom de la fonction, saisissez
bt-ps-tutorial-function
. - Dans la section Source Code (Code source), cliquez sur le menu déroulant Runtime (Environnement d'exécution), puis sélectionnez l'environnement d'exécution et le langage de programmation de votre choix. Un
hello world
est généré, qui imprime le flux de modifications à mesure qu'il arrive. Consultez la documentation pour en savoir plus sur l'écriture de fonctions Cloud Run. - Utilisez les valeurs par défaut pour tous les autres champs.
- Cliquez sur Déployer la fonction.
Créer une table avec un flux de modifications activé
Dans la console Google Cloud, accédez à la page Instances de Bigtable.
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 les configurations par défaut dans une région proche de vous.
Dans le volet de navigation de gauche, cliquez sur Tables.
Cliquez sur Créer une table.
Nommez la table
change-streams-pubsub-tutorial
.Ajoutez une famille de colonnes nommée
cf
.Sélectionnez Activer le flux de modifications.
Cliquez sur Créer.
Initialiser un pipeline de données pour capturer le flux de modifications
- Sur la page Tables de Bigtable, recherchez votre table
change-streams-pubsub-tutorial
. - Dans la colonne Flux de modifications, cliquez sur Connecter.
- Dans la boîte de dialogue, sélectionnez Pub/Sub.
- Cliquez sur Créer une tâche Dataflow.
- Sur la page Dataflow Créer un job, définissez le nom du sujet Pub/Sub de sortie sur
bigtable-change-stream-topic
. - Définissez l'ID du profil d'application Bigtable sur
default
. - 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 prend environ cinq minutes une fois la tâche mise en file d'attente.
Écrire des données dans Bigtable
Dans Cloud Shell, écrivez quelques lignes dans Bigtable afin que le journal des modifications puisse écrire des données dans le flux Pub/Sub. Tant que vous écrivez les données après la création de la tâche, les modifications apparaissent. Vous n'avez pas à attendre que l'état de la tâche passe à
running
.cbt -instance=BIGTABLE_INSTANCE_ID -project=YOUR_PROJECT_ID \ set change-streams-pubsub-tutorial user123 cf:col1=abc cbt -instance=BIGTABLE_INSTANCE_ID -project=YOUR_PROJECT_ID \ set change-streams-pubsub-tutorial user546 cf:col1=def cbt -instance=BIGTABLE_INSTANCE_ID -project=YOUR_PROJECT_ID \ set change-streams-pubsub-tutorial user789 cf:col1=ghi
Afficher les journaux de modifications dans Pub/Sub
Dans la console Google Cloud, accédez à la page Abonnements de Pub/Sub.
Cliquez sur l'abonnement créé automatiquement pour votre sujet
bigtable-change-stream-topic
. Il doit être nommébigtable-change-stream-topic-sub
.Accédez à l'onglet Messages.
Cliquez sur Extraire.
Parcourez la liste des messages et affichez les données que vous avez écrites.
(Facultatif) Afficher les modifications dans les journaux des fonctions Cloud Run
Si vous avez créé une fonction Cloud Run Functions, vous pouvez afficher les modifications dans les journaux.
Dans la console Google Cloud, accédez à Fonctions Cloud Run.
Cliquez sur votre fonction
bt-ps-tutorial-function
.Accédez à l'onglet Journaux.
Assurez-vous que Sévérité est défini sur au moins Info pour que vous puissiez voir les journaux.
Explorez les journaux et affichez les données que vous avez écrites.
La sortie ressemble à ceci :
Pub/Sub message: {"rowKey":"user789","modType":"SET_CELL","isGC":false,"tieBreaker":0,"columnFamily":"cf","commitTimestamp":1695653833064548,"sourceInstance":"YOUR-INSTANCE","sourceCluster":"YOUR-INSTANCE-c1","sourceTable":"change-streams-pubsub-tutorial","column":{"bytes":"col1"},"timestamp":{"long":1695653832278000},"timestampFrom":null,"timestampTo":null,"value":{"bytes":"ghi"}}
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 les ressources individuelles.
Supprimer la table Bigtable
Dans la console Google Cloud, accédez à la page Instances de 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
change-streams-pubsub-tutorial
.Cliquez sur Modifier.
Décochez l'option Activer le flux de modifications.
Cliquez sur Enregistrer.
Ouvrez le menu à développer de la table.
Cliquez sur Supprimer, puis saisissez le nom de la table pour confirmer.
Arrêter le pipeline du flux de modifications
Dans la console Google Cloud, accédez à la page Tâches de 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, annulez votre pipeline, puis cliquez sur Arrêter la tâche.
Supprimer le sujet et l'abonnement Pub/Sub
Dans la console Google Cloud, accédez à la page Sujets de Pub/Sub.
Sélectionnez le sujet
bigtable-change-stream-topic
.Cliquez sur Supprimer, puis confirmez la suppression.
Cliquez sur Abonnements dans la barre latérale.
Sélectionnez l'abonnement
bigtable-change-stream-topic-sub
.Cliquez sur Supprimer, puis confirmez la suppression.
Supprimer la fonction Cloud Run
Dans la console Google Cloud, accédez à Fonctions Cloud Run.
Sélectionnez la fonction
bt-ps-tutorial-function
.Cliquez sur Supprimer, puis confirmez la suppression.