Partage de flux avec Pub/Sub

Vous pouvez partager des sujets Pub/Sub via BigQuery Sharing (anciennement Analytics Hub) pour organiser et distribuer une bibliothèque de données de flux entre plusieurs limites organisationnelles internes et externes. Les données de streaming en temps réel sont partagées à l'aide des échanges et des fiches de partage BigQuery, ce qui vous permet de catégoriser et de regrouper logiquement de grands ensembles de sujets Pub/Sub, et de provisionner l'accès à grande échelle.

Vous pouvez partager des données de streaming pour effectuer les opérations suivantes :

  • Services financiers:
    • Partagez en temps réel les prix des instruments, les devis et les commandes évoluant rapidement.
    • Détecter le blanchiment d'argent et la fraude de paiement.
    • Permettre les calculs des risques liés aux transactions.
  • Commerce de détail et produits de grande consommation (PGC) :
    • Gérez l'inventaire des magasins en temps réel.
    • Personnalisez le marketing et le service client.
    • Ajustez les prix de façon dynamique.
    • Surveillez les comptes de réseaux sociaux.
    • Optimisez l'agencement des magasins physiques.
  • Santé:
    • Optimiser des algorithmes prédictifs pour surveiller les patients et analyser les risques en temps réel.
    • Surveillez vos constantes vitales avec des dispositifs médicaux portables.
    • Acquisition, structuration, stockage et traitement automatiques des données des patients, des professionnels de santé et de l'administration des établissements
  • Télécommunications:
    • Surveillez l'état du réseau et prédisez les défaillances.
    • Découvrez les schémas de comportement des utilisateurs pour mieux localiser les appareils et les antennes.

Rôles requis

Les rôles permettant de partager des sujets Pub/Sub sont analogues à ceux permettant de partager des ensembles de données BigQuery :

Architecture

Le schéma suivant décrit comment les éditeurs et les abonnés aux ressources Pub/Sub interagissent avec le partage BigQuery :

Workflow illustrant l'interaction entre les éditeurs de sujets partagés et BigQuery Sharing.
Figure 1. Workflow d'éditeur et d'abonné de sujet partagé avec les sujets Pub/Sub.

Sujets partagés

Un sujet partagé est l'unité permettant de partager un sujet Pub/Sub dans BigQuery Sharing. En tant qu'éditeur de sujet partagé, vous créez un sujet Pub/Sub ou en utilisez un existant pour distribuer des données de message aux abonnés. BigQuery Sharing ne réplique pas le sujet Pub/Sub source.

Fiches

Une fiche est créée lorsqu'un éditeur ajoute un sujet partagé à un échange. Elle fait référence au sujet partagé.

Échanges

Un échange est un regroupement logique de fiches faisant référence à des thèmes partagés.

Abonnements Pub/Sub associés

 Lorsque vous vous abonnez à une fiche avec un sujet partagé, un abonnement Pub/Sub associé est créé dans le projet de l'abonné au sujet partagé. Le projet de l'éditeur de sujet partagé représente également un abonnement Pub/Sub en tant qu'abonnement Pub/Sub et un abonnement à une fiche de partage.

Limites

Le partage de flux avec Pub/Sub présente les limites suivantes:

  • Un sujet partagé peut comporter jusqu'à 10 000 abonnements Pub/Sub. Cette limite inclut les abonnements Pub/Sub associés et ceux créés en dehors du partage (par exemple, ceux créés directement à partir de Pub/Sub).
  • Les thèmes partagés sont indexés dans Data Catalog (obsolète) et Dataplex Universal Catalog, mais vous ne pouvez pas filtrer spécifiquement par type de ressource.

  • Les métriques d'utilisation sont capturées et affichées dans le tableau de bord des métriques pour les sujets et abonnements Pub/Sub partagés, mais ne sont pas disponibles dans INFORMATION_SCHEMA.SHARED_DATASET_USAGE.

    Pour surveiller les métriques, consultez Surveiller Pub/Sub dans Cloud Monitoring.

    Ces métriques peuvent inclure les éléments suivants :

    • Nombre de messages publiés
    • Requêtes de publication
    • Débit de publication en octets
    • Cinq principaux abonnements
    • Octets ingérés
    • Autres

Activer l'API Analytics Hub

Pour activer l'API Analytics Hub, procédez comme suit :

Console

Accédez à la bibliothèque d'API et activez l'API Analytics Hub pour votre projetGoogle Cloud .

Activer l'API Analytics Hub

gcloud

Exécutez la commande gcloud services enable :

gcloud services enable analyticshub.googleapis.com

Activer l'API Pub/Sub

Accédez à la bibliothèque d'API et activez l'API Pub/Sub pour votre projet Google Cloud .

Activez l'API Pub/Sub

Workflows pour les éditeurs de sujets partagés

En tant qu'éditeur de thèmes partagés, vous pouvez effectuer les opérations suivantes :

  • Ajoutez des sujets partagés à un échange en créant une fiche.
  • Mettre à jour une fiche.
  • Supprimer une fiche.
  • Partagez une fiche.
  • Gérez les abonnements à votre fiche.
  • Supprimez des abonnés de votre fiche.

Autorisations d'éditeur supplémentaires

Pour effectuer des tâches d'éditeur de sujets partagés, vous devez disposer du rôle Éditeur Analytics Hub (roles/analyticshub.publisher) sur un échange ou une fiche. Pour afficher tous les échanges de données entre les projets d'une organisation à laquelle vous avez accès, vous devez disposer de l'autorisation resourcemanager.organizations.get.

En outre, vous avez besoin de l'autorisation pubsub.topics.setIamPolicy sur le sujet Pub/Sub que vous souhaitez répertorier. Pour partager des sujets auxquels un schéma est associé, vous devez accorder aux abonnés BigQuery Sharing l'autorisation pubsub.schemas.get sur le schéma associé au sujet. Cette autorisation permet aux abonnés BigQuery Sharing d'analyser correctement les messages de l'abonnement Pub/Sub.

Créer une fiche (pour ajouter un sujet partagé)

Pour ajouter un thème partagé à une fiche, sélectionnez l'une des options suivantes :

Console

  1. Accédez à la page Partage (Analytics Hub).

    Accéder à "Partage" (Analytics Hub)

    La page répertorie tous les échanges de données auxquels vous pouvez accéder.

  2. Cliquez sur le nom de l'échange de données dans lequel vous souhaitez créer la fiche.

  3. Cliquez sur Créer une fiche.

  4. Sur la page Créer une fiche, sélectionnez Sujet Pub/Sub dans la liste Type de ressource.

  5. Sélectionnez un sujet Pub/Sub existant dans la liste Sujet partagé ou cliquez sur Créer un sujet.

  6. Sur la page Détails de la fiche, dans le champ Nom à afficher, saisissez le nom de la fiche.

  7. Saisissez les informations facultatives suivantes :

    • Catégorie : sélectionnez jusqu'à deux catégories qui représentent le mieux votre fiche. Les abonnés aux thèmes partagés peuvent filtrer les fiches en fonction de ces catégories.

    • Affinité des données : région ou régions utilisées par l'éditeur de thèmes partagés pour publier des données. Ces informations aident les abonnés aux sujets partagés à minimiser ou à éviter les coûts de sortie du réseau Pub/Sub en lisant les données de la même région. Pour en savoir plus sur les coûts de sortie, consultez Coûts du transfert de données.

    • Icône : icône pour votre fiche. Les formats de fichiers PNG et JPEG sont acceptés. Les icônes doivent avoir une taille inférieure à 512 Kio et des dimensions ne dépassant pas 512 x 512 pixels.

    • Description : brève description de votre fiche. Les abonnés aux thèmes partagés peuvent rechercher des fiches en fonction de la description.

    • Visibilité publique : activez la visibilité publique de votre fiche dans le catalogue de partage BigQuery. Vous devez également définir des autorisations pour la fiche. Cliquez sur Actions pour l'échange, puis sur Définir des autorisations. Attribuez à allUsers ou allAuthenticatedusers le rôle Lecteur Analytics Hub (roles/analyticshub.viewer). Cliquez sur Autoriser l'accès public.

    • Documentation > Markdown : informations supplémentaires, telles que des liens vers la documentation appropriée et d'autres détails qui aident les abonnés aux thèmes partagés à utiliser votre thème.

  8. Sur la page Informations de contact de la fiche, saisissez les informations facultatives suivantes :

    • Contact principal : saisissez une adresse e-mail ou une URL pour le contact principal de la fiche.

    • Contact pour la demande d'accès : saisissez une adresse e-mail ou une URL du formulaire de participation que les abonnés aux thèmes partagés peuvent utiliser pour vous contacter.

    • Fournisseur : développez la section Fournisseur et spécifiez les détails dans les champs suivants :

      • Nom du fournisseur : nom du fournisseur du sujet.
      • Contact principal du fournisseur : adresse e-mail ou URL du contact principal du fournisseur du thème.

      Les abonnés à un thème partagé peuvent filtrer les fiches en fonction des fournisseurs de données.

    • Éditeur : développez la section Éditeur et spécifiez les détails dans les champs suivants :

      • Nom de l'éditeur : nom de l'éditeur du sujet partagé qui crée la fiche.
      • Contact principal de l'éditeur : adresse e-mail ou URL du contact principal de l'éditeur du sujet partagé.
  9. Consultez la page Aperçu de la fiche.

  10. Cliquez sur Publier.

API

Exécutez la méthode projects.locations.dataExchanges.listings.create.

POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/location/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings?listingId=LISTING_ID

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet contenant l'échange de données dans lequel vous souhaitez créer la liste.
  • LOCATION : emplacement de votre échange de données. Pour en savoir plus sur les emplacements compatibles avec le partage, consultez la section Régions où le service est disponible.
  • DATAEXCHANGE_ID : ID de l'échange de données
  • LISTING_ID : ID de la liste.

Dans le corps de la requête, indiquez les informations détaillées sur la fiche. Si la requête aboutit, le corps de la réponse contient les détails de la fiche.

Pour plus d'informations sur les tâches que vous pouvez effectuer sur des listes à l'aide des API, consultez la documentation sur les méthodes projects.locations.dataExchanges.listings.

Mettre à jour une fiche

Pour créer une fiche, choisissez l'une des options suivantes :

Console

  1. Accédez à la page Partage (Analytics Hub).

    Accéder à "Partage" (Analytics Hub)

  2. Cliquez sur le nom de l'échange de données contenant la fiche.

  3. Cliquez sur la fiche que vous souhaitez mettre à jour.

  4. Cliquez sur Modifier la fiche.

  5. Modifiez les valeurs des champs. Vous pouvez modifier toutes les valeurs, sauf le thème partagé de la fiche.

  6. Pour enregistrer les modifications, cliquez sur Publier.

API

Exécutez la méthode projects.locations.dataExchanges.listings.patch.

PATCH https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/location/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings/LISTING_ID?updateMask=UPDATEMASK

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet contenant l'échange de données dans lequel vous souhaitez créer la liste.
  • LOCATION : emplacement de votre échange de données. Pour en savoir plus sur les emplacements compatibles avec le partage, consultez la section Régions où le service est disponible.
  • DATAEXCHANGE_ID : ID de l'échange de données
  • LISTING_ID : ID de la liste.
  • UPDATEMASK : liste des champs que vous souhaitez mettre à jour. Pour mettre à jour plusieurs valeurs, utilisez une liste d'éléments séparés par une virgule.

Dans le corps de la requête, spécifiez les valeurs mises à jour.

Pour plus d'informations sur les tâches que vous pouvez effectuer sur des listes à l'aide des API, consultez la documentation sur les méthodes projects.locations.dataExchanges.listings.

Supprimer une fiche

Vous ne pouvez pas supprimer les fiches avec des sujets Pub/Sub partagés qui comportent des abonnements actifs. Révoquez tous les abonnements actifs avant de tenter de supprimer une fiche de thème partagée. Vous ne pouvez pas annuler la suppression d'une fiche.

Pour supprimer une fiche, sélectionnez l'une des options suivantes :

Console

  1. Accédez à la page Partage (Analytics Hub).

    Accéder à "Partage" (Analytics Hub)

  2. Cliquez sur le nom de l'échange de données contenant la fiche.

  3. Cliquez sur la fiche que vous souhaitez supprimer.

  4. Cliquez sur  Supprimer.

  5. Dans la boîte de dialogue Supprimer la fiche ?, confirmez la suppression en saisissant delete.

  6. Cliquez sur Supprimer.

API

Exécutez la méthode projects.locations.dataExchanges.listings.delete.

DELETE https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/location/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings/LISTING_ID

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet contenant l'échange de données dans lequel vous souhaitez créer la liste.
  • LOCATION : emplacement de votre échange de données. Pour en savoir plus sur les emplacements compatibles avec le partage, consultez la section Régions où le service est disponible.
  • DATAEXCHANGE_ID : ID de l'échange de données
  • LISTING_ID : ID de la liste.

Pour plus d'informations sur les tâches que vous pouvez effectuer sur des listes à l'aide des API, consultez la documentation sur les méthodes projects.locations.dataExchanges.listings.

Partager une fiche

Pour autoriser des utilisateurs à accéder à une fiche privée, définissez une stratégie IAM pour une personne ou un groupe associé à cette fiche. Pour une fiche commerciale, votre échange de données doit être public. Les fiches d'un échange de données public apparaissent dans "Partage" pour tous les utilisateursGoogle Cloud (allAuthenticatedUsers). Pour permettre aux utilisateurs de demander l'accès à des fiches commerciales, accordez-leur le rôle Lecteur Analytics Hub (roles/analyticshub.viewer).

Pour permettre aux utilisateurs d'afficher votre fiche ou de s'y abonner, procédez comme suit :

  1. Accédez à la page Partage (Analytics Hub).

    Accéder à "Partage" (Analytics Hub)

  2. Cliquez sur le nom de l'échange de données contenant la fiche.

  3. Cliquez sur la fiche à laquelle vous souhaitez ajouter des abonnés aux thèmes partagés.

  4. Cliquez sur  Définir les autorisations.

  5. Pour ajouter des comptes principaux, cliquez sur Ajouter un compte principal.

  6. Dans le champ Nouveaux comptes principaux, ajoutez des informations en fonction du type de fiche :

    • Pour une fiche privée, saisissez les adresses e-mail des identités auxquelles vous souhaitez accorder l'accès.
    • Pour une fiche publique, ajoutez allAuthenticatedUsers.
  7. Dans le menu Sélectionner un rôle, sélectionnez Analytics Hub, puis l'un des rôles suivants en fonction du type de fiche :

  8. Cliquez sur Enregistrer.

Pour en savoir plus, consultez Rôles d'abonné et de lecteur Analytics Hub.

Gérer les abonnements

Pour permettre à un utilisateur de s'abonner à une fiche avec un sujet partagé, accordez-lui les rôles abonné Analytics Hub (roles/analyticshub.subscriber) et propriétaire d'abonnement Analytics Hub (roles/analyticshub.subscriptionOwner) sur une fiche spécifique :

  1. Accédez à la page Partage (Analytics Hub).

    Accéder à "Partage" (Analytics Hub)

  2. Cliquez sur le nom de l'échange de données contenant la fiche pour laquelle vous souhaitez gérer les abonnements.

  3. Cliquez sur la fiche pour laquelle vous souhaitez répertorier les abonnés aux thèmes partagés.

  4. Cliquez sur  Définir les autorisations.

  5. Pour ajouter des comptes principaux, cliquez sur Ajouter un compte principal.

  6. Dans le champ Nouveaux comptes principaux, saisissez les noms d'utilisateur ou les adresses e-mail des abonnés que vous souhaitez ajouter.

  7. Pour Sélectionner un rôle, sélectionnez Analytics Hub > Abonné Analytics Hub.

  8. Cliquez sur Ajouter un autre rôle.

  9. Pour Sélectionner un rôle, sélectionnez Analytics Hub > Propriétaire d'abonnement Analytics Hub.

  10. Cliquez sur Enregistrer.

Supprimez et mettez à jour des abonnés à tout moment en cliquant sur Définir des autorisations.

Révoquer un abonnement

Pour supprimer un abonnement à une fiche de sujet partagé dans BigQuery Sharing, sélectionnez l'une des options suivantes :

Console

  1. Pour répertorier les abonnés à un sujet partagé pour une fiche, suivez les instructions de la consoleGoogle Cloud dans Afficher tous les abonnements.

  2. Cliquez sur l'onglet Abonnements pour afficher tous les abonnements de l'échange de données.

  3. Cochez la case à côté des abonnements que vous souhaitez supprimer ou sélectionnez tous les abonnements.

  4. Dans la boîte de dialogue Résilier l'abonnement ?, saisissez revoke pour confirmer.

  5. Cliquez sur Révoquer.

API

Pour supprimer un abonnement, utilisez la méthode projects.locations.subscriptions.revoke.

POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/location/LOCATION/subscriptions/SUBSCRIPTION_ID:revoke

Remplacez les éléments suivants :

  • PROJECT_ID : ID de projet de l'abonnement que vous souhaitez supprimer.
  • LOCATION : emplacement de l'abonnement.
  • SUBSCRIPTION_ID : ID de l'abonnement que vous souhaitez supprimer.

Lorsque vous révoquez un abonnement au partage BigQuery, un abonné à un sujet partagé ne reçoit plus les données de message du sujet partagé. L'abonnement Pub/Sub est dissocié du sujet partagé. Si vous supprimez un abonnement directement depuis Pub/Sub, l'abonnement au partage BigQuery persiste et nécessite un nettoyage.

Workflows des abonnés

En tant qu'abonné au partage BigQuery, vous pouvez consulter une fiche et vous y abonner. L'abonnement à une fiche d'un sujet partagé crée un abonnement Pub/Sub associé dans le projet de l'abonné. L'abonnement Pub/Sub est visible dans le projet de l'éditeur du thème partagé.

Autorisations supplémentaires d'abonné

Pour effectuer des tâches d'abonné, vous devez disposer du rôle Abonné Analytics Hub (roles/analyticshub.subscriber) au niveau du projet, de l'échange ou de la fiche.

S'abonner à une fiche de sujet partagé

Pour vous abonner à une fiche avec un thème partagé, sélectionnez l'une des options suivantes :

Console

  1. Pour afficher la liste des fiches auxquelles vous avez accès, suivez les étapes décrites dans Afficher les fiches.

  2. Parcourez les fiches et cliquez sur celle à laquelle vous souhaitez vous abonner. Une boîte de dialogue contenant les détails de la fiche s'affiche.

  3. Cliquez sur S'abonner pour ouvrir la boîte de dialogue Créer un abonnement.

  4. Si vous n'avez pas activé l'API Analytics Hub dans votre projet, un message d'erreur s'affiche avec un lien permettant d'activer l'API. Cliquez sur Activer l'API Analytics Hub.

  5. Dans la boîte de dialogue Créer un abonnement, spécifiez les détails suivants :

    • ID de l'abonnement : spécifiez le nom de l'abonnement que vous créez.
    • Type de distribution : sélectionnez le mode de distribution des données du message.
    • Durée de conservation des messages : définissez la durée de conservation des messages.
    • Délai d'expiration : définit la date à laquelle l'abonnement expire après inactivité, le cas échéant.
    • Délai de confirmation : définissez l'heure et la date du délai de confirmation.
    • Filtre d'abonnement : définissez la syntaxe du filtre pour les messages.
    • Distribution de type "exactement une fois" : activez la distribution de type "exactement une fois".
    • Tri des messages : permet d'activer le tri des messages à l'aide d'une clé de tri.
    • Sujet de lettres mortes : activez la gestion des lettres mortes.
    • Stratégie de nouvelle tentative : définissez une stratégie de nouvelle tentative.

    Pour en savoir plus sur les propriétés des abonnements Pub/Sub, consultez Propriétés des abonnements.

  6. Pour enregistrer vos modifications, cliquez sur Créer. L'abonnement Pub/Sub associé est créé dans votre projet.

API

Exécutez la méthode projects.locations.dataExchanges.listings.subscribe.

POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/location/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings/LISTING_ID:subscribe

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet de la fiche à laquelle vous souhaitez vous abonner.
  • LOCATION : emplacement de la fiche à laquelle vous souhaitez vous abonner.
  • DATAEXCHANGE_ID : ID d'échange de données de la fiche à laquelle vous souhaitez vous abonner.
  • LISTING_ID : ID de la fiche à laquelle vous souhaitez vous abonner.

Dans le corps de la requête, spécifiez l'abonnement Pub/Sub dans lequel vous souhaitez créer l'abonnement Pub/Sub associé. Si la requête aboutit, le corps de la réponse est vide.

Pour en savoir plus sur les abonnements Pub/Sub, consultez la présentation des abonnements.

Tarifs

Les éditeurs de sujets Pub/Sub n'ont aucun frais supplémentaire à payer pour lister et partager des sujets via BigQuery Sharing. Les éditeurs de sujets partagés sont facturés du nombre total d'octets écrits (débit de publication) dans le sujet partagé et de la sortie réseau (le cas échéant). Les abonnés aux thèmes partagés sont facturés du nombre total d'octets lus (débit d'abonnement) de l'abonnement associé et de la sortie réseau (le cas échéant). Pour plus d'informations, consultez les tarifs Pub/Sub.

VPC Service Controls

Pour les thèmes partagés provenant de projets avec des périmètres VPC Service Controls, définissez les règles d'entrée et de sortie appropriées pour accorder l'accès aux éditeurs et aux abonnés des thèmes partagés.

Étapes suivantes