Partage de flux avec Pub/Sub

Vous pouvez partager des sujets Pub/Sub via le partage BigQuery pour organiser et distribuer une bibliothèque de données de streaming au-delà de 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:
    • Partager 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).
    • Aider les magasins à gérer l'inventaire en temps réel
    • Personnaliser le marketing et le service client
    • Ajuster les prix de façon dynamique
    • Surveiller les comptes de réseaux sociaux
    • Optimiser l'agencement des magasins physiques
  • Santé:
    • Optimiser des algorithmes prédictifs pour surveiller les patients et analyser les risques en temps réel
    • Surveiller les signes vitaux 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 installations
  • Télécommunications:
    • Examiner l'état du réseau et prédire les défaillances
    • Découvrez les habitudes 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 :

Interaction entre les éditeurs Analytics Hub et le partage.
Figure 1. Workflow pour les éditeurs et les abonnés Analytics Hub avec les sujets Pub/Sub.

Sujets partagés

Un sujet partagé est l'unité de partage d'un sujet Pub/Sub dans le partage. En tant qu'éditeur, vous créez ou utilisez un sujet Pub/Sub existant pour distribuer des données de message à vos abonnés. Le partage 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 contient une référence au sujet partagé.

Échanges

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

Abonnements Pub/Sub associés

 Lorsqu'un utilisateur s'abonne à une fiche avec un sujet partagé, un abonnement Pub/Sub associé est créé dans le projet de l'abonné. Un abonnement Pub/Sub est également représenté dans le projet de l'éditeur en tant qu'abonnement Pub/Sub et abonnement à une fiche de partage.

Limites

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

  • Un sujet partagé peut comporter un maximum de 10 000 abonnements Pub/Sub. Cette limite inclut les abonnements Pub/Sub associés et ceux créés en dehors du partage (par exemple, les abonnements créés directement à partir de Pub/Sub).
  • Les thèmes partagés sont indexés dans Data Catalog (obsolète) et dans le catalogue universel Dataplex, 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 projet Trusted 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 Trusted Cloud .

Activez l'API Pub/Sub

Workflows pour les éditeurs

En tant qu'éditeur Analytics Hub, vous pouvez effectuer les opérations suivantes :

  • Ajouter des sujets partagés à un échange en créant une fiche
  • Mettre à jour une fiche
  • Supprimer une fiche
  • Partager une fiche
  • Gérer les abonnements à votre fiche
  • Supprimer des abonnés de votre fiche

Autorisations d'éditeur supplémentaires

Pour effectuer des tâches d'éditeur, 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 auxquels 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 Analytics Hub pubsub.schemas.get l'autorisation sur le schéma associé au sujet. Cela permet aux abonnés Analytics Hub 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)

    Une page qui répertorie tous les échanges de données auxquels vous pouvez accéder s'affiche.

  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 le menu déroulant Type de ressource.

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

  6. Sur la page Détails de la liste, dans 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 peuvent filtrer les fiches en fonction de ces catégories.

    • Affinité des données: région(s) utilisée par l'éditeur pour publier les données. Ces informations sont utiles aux abonnés pour minimiser ou éviter les coûts de sortie 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 de 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 de fichier inférieure à 512 KiB et des dimensions ne dépassant pas 512 x 512 pixels.

    • Description : brève description de votre fiche. Les abonné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 dans l'échange, puis sur Définir des autorisations. Attribuez à allUsers ou allAuthenticatedusers au rôle Lecteur Analytics Hub. Cliquez sur Autoriser l'accès public.

    • Documentation > Markdown : informations supplémentaires, comme des liens vers la documentation appropriée et toute information supplémentaire pouvant aider les abonnés à utiliser votre thème.

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

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

    • Contact pour demander l'accès : saisissez une adresse e-mail ou une URL du formulaire de participation pour que les abonnés puissent 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 sujet.

      Les abonnés 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 qui crée la fiche.
      • Contact principal de l'éditeur : adresse e-mail ou URL du contact principal de l'éditeur du sujet.
  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 page Régions compatibles.
  • 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 des 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 page Régions compatibles.
  • 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

Les fiches avec des thèmes Pub/Sub partagés ne peuvent pas être supprimées si des abonnements sont actifs. Révoquez tous les abonnements actifs avant de tenter de supprimer une fiche de thème partagée. Une fois une fiche supprimée, vous ne pouvez pas annuler la suppression. 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 page Régions compatibles.
  • 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

Si vous souhaitez autoriser des utilisateurs à accéder à une fiche privée, vous devez définir 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 utilisateurs Google Cloud (allAuthenticatedUsers). Pour permettre aux utilisateurs de demander l'accès à des fiches commerciales, vous devez leur attribuer le rôle Lecteur Analytics Hub.

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 pour laquelle vous souhaitez ajouter des abonné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 les informations suivantes en fonction du type de fiche :

    • Pour une fiche privée, saisissez les adresses e-mail de l'identité à laquelle 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 en fonction du type de fiche, sélectionnez l'un des rôles suivants :

  8. Cliquez sur Enregistrer.

Pour en savoir plus, consultez la section 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 tous les abonné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.

Vous pouvez supprimer et mettre à jour des abonnés à tout moment en cliquant sur Définir des autorisations.

Révoquer un abonnement

Pour supprimer un abonnement à une liste de sujets partagés depuis le partage, sélectionnez l'une des options suivantes :

Console

  1. Pour répertorier tous les abonnés d'une fiche, suivez les instructions de la console Trusted 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 "révoquer" pour confirmer.

  5. Cliquez sur Révoquer.

API

Pour retirer 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.

Si vous révoquez un abonnement au partage BigQuery, l'abonné ne recevra plus les données de message du thème partagé. L'abonnement Pub/Sub est dissocié du sujet partagé. Si un abonnement est supprimé directement depuis Pub/Sub, l'abonnement de partage BigQuery persiste et doit être supprimé.

Workflows des abonnés

En tant qu'abonné Analytics Hub, vous pouvez afficher une fiche et vous y abonner. Le fait de s'abonner à une fiche d'un sujet partagé crée un abonnement Pub/Sub associé dans le projet de l'abonné. L'abonnement Pub/Sub sera visible dans le projet de l'éditeur.

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 une liste des fiches auxquelles vous avez accès, suivez les étapes décrites dans la section Afficher les fiches.

  2. Parcourez les fiches et cliquez sur une fiche à 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 l'API Analytics Hub n'est pas activée 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 d'abonnement : spécifiez le nom de l'abonnement que vous créez.
    • Type de distribution: sélectionnez le mécanisme 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 sur 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 ne sont pas facturés pour lister et partager des sujets via le partage. Les éditeurs sont facturés du nombre total d'octets écrits (débit de publication) dans le thème partagé et de la sortie réseau (le cas échéant). Les abonné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 en savoir plus, consultez les tarifs de Pub/Sub.

VPC Service Controls

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