Partage de flux avec Pub/Sub

Le partage BigQuery (anciennement Analytics Hub) vous permet de partager des sujets Pub/Sub pour organiser et distribuer des données en flux continu en temps réel entre des organisations internes et externes. Les échanges de données et les fiches vous permettent de catégoriser et de regrouper de grands ensembles de sujets Pub/Sub, et de provisionner l'accès à grande échelle.

Cas d'utilisation

Vous pouvez partager des données de streaming pour prendre en charge des cas d'utilisation dans les secteurs suivants :

  • 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) :
    • Gérez l'inventaire du magasin en temps réel.
    • Personnalisez le marketing et le service client.
    • Ajustez 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
    • Surveillez les signes vitaux avec des dispositifs médicaux connectés.
    • Acquérir, structurer, stocker et traiter automatiquement les données des patients, des professionnels de santé et de l'administration des installations.
  • 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 de partage de flux

Les rôles IAM (Identity and Access Management) pour le partage de sujets Pub/Sub sont analogues aux rôles pour le partage d'ensembles de données BigQuery :

  • Administrateur : gère les autorisations, la visibilité et l'appartenance des échanges et des fiches. Ce rôle est analogue au rôle IAM Administrateur Analytics Hub (roles/analyticshub.admin).
  • Éditeur de sujet partagé : crée, gère et accorde l'accès aux fiches des sujets Pub/Sub partagés. Ce rôle est analogue au rôle IAM Éditeur Analytics Hub (roles/analyticshub.publisher) ou Administrateur de fiches Analytics Hub (roles/analyticshub.listingAdmin). Le diffuseur est un utilisateur, et non l'application de diffusion qui crée et envoie des messages au sujet.
  • Abonné au sujet partagé : s'abonne à la liste des sujets partagés et configure la manière dont Pub/Sub distribue les messages du sujet. Ce rôle est analogue au rôle IAM Abonné Analytics Hub (roles/analyticshub.subscriber) ou Propriétaire d'abonnement Analytics Hub (roles/analyticshub.subscriptionOwner). Selon la manière dont Pub/Sub distribue les données des messages, vous aurez peut-être besoin d'autorisations supplémentaires, telles que les autorisations de compte de service Pub/Sub pour écrire des messages dans BigQuery.

Architecture

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

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

Le partage de flux avec Pub/Sub utilise les composants suivants :

Thèmes partagés
Un sujet partagé est l'unité de partage d'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
Lorsqu'un éditeur ajoute un sujet partagé à un échange, BigQuery Sharing crée une fiche qui référence le sujet partagé.
Échanges
Un échange est un regroupement logique de fiches qui font référence à des sujets partagés.
Abonnements Pub/Sub associés
Lorsqu'un abonné s'abonne à une fiche avec un sujet partagé, BigQuery Sharing crée un abonnement Pub/Sub associé dans le projet de l'abonné. Dans le projet de l'éditeur du sujet partagé, l'abonnement apparaît à la fois comme un abonnement Pub/Sub et comme un abonnement à une fiche BigQuery Sharing.

Limites

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

  • Un sujet partagé accepte un maximum de 10 000 abonnements Pub/Sub. Cette limite inclut les abonnements Pub/Sub associés et les abonnements Pub/Sub créés en dehors de BigQuery Sharing, tels que les abonnements créés directement dans Pub/Sub.
  • Les sujets partagés sont indexés dans Knowledge 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 elles ne sont pas disponibles dans la vue INFORMATION_SCHEMA.SHARED_DATASET_USAGE.

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

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

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

Avant de commencer

Avant de partager des sujets Pub/Sub ou de vous y abonner dans BigQuery Sharing, activez les API requises.

Activer l'API Analytics Hub

Pour activer l'API Analytics Hub, sélectionnez l'une des options suivantes :

Console

Dans la console Google Cloud , accédez à la page Bibliothèque d'API et activez l'API Analytics Hub pour votre projet Google Cloud .

Activer l'API Analytics Hub

gcloud

Activez l'API Analytics Hub à l'aide de la commande gcloud services enable :

gcloud services enable analyticshub.googleapis.com

Activer l'API Pub/Sub

Pour activer l'API Pub/Sub, sélectionnez l'une des options suivantes :

Console

Dans la console Google Cloud , accédez à la page Bibliothèque d'API et activez l'API Pub/Sub pour votre projet Google Cloud .

Activez l'API Pub/Sub

gcloud

Activez l'API Pub/Sub à l'aide de la commande gcloud services enable :

gcloud services enable pubsub.googleapis.com

Workflows de l'éditeur de sujets partagés

En tant qu'éditeur de sujet partagé, 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.
  • Partager une fiche.
  • Gérer les abonnements à votre fiche.
  • Supprimez des abonnés de votre fiche.

Autorisations d'éditeur supplémentaires

Pour effectuer des tâches d'éditeur de sujet partagé, 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 auxquels vous avez accès dans les projets d'une organisation, vous devez disposer de l'autorisation resourcemanager.organizations.get.

En outre, vous devez disposer de l'autorisation pubsub.topics.setIamPolicy sur le sujet Pub/Sub que vous souhaitez lister. 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 les messages de l'abonnement Pub/Sub.

Créer une fiche de sujet partagé

Pour ajouter un sujet partagé à un échange en créant une fiche, sélectionnez l'une des options suivantes :

Console

  1. Dans la console Google Cloud , accédez à la page Partage (Analytics Hub).

    Accéder à Partage (Analytics Hub)

    La page liste tous les échanges de données que vous pouvez consulter.

  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, dans la liste Type de ressource, sélectionnez Sujet Pub/Sub.

  5. Dans la liste Sujet partagé, sélectionnez un sujet Pub/Sub existant 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. Facultatif : saisissez les informations suivantes :

    • Catégorie : sélectionnez jusqu'à cinq catégories qui représentent le mieux votre fiche. Les abonnés au sujet partagé peuvent filtrer les fiches en fonction de ces catégories.

    • Affinité des données : spécifiez la ou les régions dans lesquelles vous publiez des données dans le sujet partagé. 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 de transfert de données.

    • Icône : importez une icône au format PNG ou JPEG pour votre fiche. Les icônes doivent avoir une taille inférieure à 512 Kio et des dimensions ne dépassant pas 512 x 512 pixels.

    • Description : saisissez une brève description de votre fiche. Les abonnés au sujet partagé peuvent rechercher des fiches en fonction de la description.

    • Visibilité publique : activez la visibilité publique de votre fiche dans le catalogue de partage BigQuery. Après avoir créé la fiche, vous devez également attribuer à allUsers ou allAuthenticatedUsers le rôle Lecteur Analytics Hub (roles/analyticshub.viewer) sur la fiche. Si l'échange de données est déjà public, la fiche hérite de ces autorisations et ne nécessite aucune autre action.

    • Documentation > Markdown : saisissez des informations supplémentaires, telles que des liens vers la documentation pertinente et d'autres détails qui aident les abonnés au sujet partagé à utiliser votre sujet.

  8. Facultatif : sur la page Informations de contact de la fiche, saisissez les informations suivantes :

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

    • Contact pour demander l'accès : saisissez une adresse e-mail ou une URL pour le formulaire de participation que les abonnés au sujet partagé peuvent utiliser pour vous contacter.

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

      • Nom du fournisseur : saisissez le nom du fournisseur du sujet.
      • Contact principal du fournisseur : saisissez une adresse e-mail ou une URL pour le contact principal du fournisseur du sujet.

      Les abonnés à un sujet 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 : saisissez votre nom ou celui de votre organisation en tant qu'éditeur du sujet partagé.
      • Contact principal de l'éditeur : saisissez une adresse e-mail ou une URL pour votre contact principal en tant qu'éditeur du sujet partagé.
  9. Examinez la page Aperçu de la fiche.

  10. Pour publier la fiche, cliquez sur Publier.

API

Utilisez la méthode projects.locations.dataExchanges.listings.create :

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

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet contenant l'échange de données.
  • LOCATION : emplacement de votre échange de données. Pour en savoir plus sur les emplacements compatibles avec le partage BigQuery, 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 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. Dans la console Google Cloud , 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 sujet partagé de la fiche.

  6. Pour enregistrer les modifications, cliquez sur Save (Enregistrer).

API

Utilisez la méthode projects.locations.dataExchanges.listings.patch :

PATCH https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/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.
  • LOCATION : emplacement de votre échange de données. Pour en savoir plus sur les emplacements compatibles avec le partage BigQuery, 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

Vous ne pouvez pas supprimer les fiches contenant des sujets Pub/Sub partagés qui ont des abonnements actifs. Avant de supprimer une fiche de sujet partagé, révoquez tous les abonnements actifs. La suppression d'une fiche est irréversible.

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

Console

  1. Dans la console Google Cloud , 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 ?, saisissez delete pour confirmer la suppression.

  6. Cliquez sur Supprimer.

API

Utilisez la méthode projects.locations.dataExchanges.listings.delete :

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

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet contenant l'échange de données.
  • LOCATION : emplacement de votre échange de données. Pour en savoir plus sur les emplacements compatibles avec le partage BigQuery, 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

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 listes d'un échange de données public apparaissent dans BigQuery Sharing 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. Dans la console Google Cloud , 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 partager.

  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 informations en fonction du type de fiche :

    • Pour une fiche privée, saisissez les adresses e-mail des comptes principaux auxquels vous souhaitez accorder l'accès.
    • Pour une fiche publique, saisissez 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. Pour enregistrer vos modifications, cliquez sur Enregistrer.

Gérer les abonnements

Pour permettre à un utilisateur de s'abonner à une fiche avec un sujet partagé, vous devez lui accorder les rôles Abonné Analytics Hub (roles/analyticshub.subscriber) et Propriétaire d'abonnement Analytics Hub (roles/analyticshub.subscriptionOwner) sur la fiche.

Pour attribuer ces rôles sur une fiche, procédez comme suit :

  1. Dans la console Google Cloud , 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 gérer les abonnements.

  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. Dans le menu Sélectionner un rôle, sélectionnez Analytics Hub > Abonné Analytics Hub.

  8. Cliquez sur Ajouter un autre rôle.

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

  10. Pour enregistrer vos modifications, cliquez sur Enregistrer.

Vous pouvez modifier ou supprimer 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é de BigQuery Sharing, sélectionnez l'une des options suivantes :

Console

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

  2. Pour afficher tous les abonnements à l'échange de données, cliquez sur l'onglet Abonnements.

  3. Cochez la case à côté des abonnements que vous souhaitez supprimer ou sélectionnez tous les abonnements, puis cliquez sur Révoquer.

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

  5. Cliquez sur Révoquer.

API

Utilisez la méthode projects.locations.subscriptions.revoke :

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

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet contenant 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 BigQuery Sharing persiste et vous devez le supprimer dans BigQuery Sharing.

Workflows des abonnés

En tant qu'abonné à BigQuery Sharing, vous pouvez afficher une fiche et vous y abonner. L'abonnement à une fiche de sujet partagé crée un abonnement Pub/Sub associé dans votre projet. L'abonnement Pub/Sub est visible dans le projet de l'éditeur du sujet 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 sujet partagé, sélectionnez l'une des options suivantes :

Console

  1. Pour afficher les fiches disponibles, suivez les étapes décrites dans la section 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. Pour ouvrir la boîte de dialogue Créer un abonnement, cliquez sur S'abonner.

  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 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 le 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 le transfert des messages non distribuables vers un file d'attente de 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. Le partage BigQuery crée l'abonnement Pub/Sub associé dans votre projet.

API

Utilisez la méthode projects.locations.dataExchanges.listings.subscribe :

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

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet contenant la fiche à laquelle vous souhaitez vous abonner.
  • LOCATION : emplacement de la fiche à laquelle vous souhaitez vous abonner.
  • DATAEXCHANGE_ID : ID de l'échange de données contenant 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 les détails de l'abonnement Pub/Sub associé que vous souhaitez créer. Si la requête aboutit, le corps de la réponse contient les détails de l'abonnement.

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

Tarifs

Les éditeurs de sujets partagés n'encourent aucuns frais supplémentaires pour lister et partager des sujets via BigQuery Sharing. Les éditeurs de sujets partagés sont facturés pour le débit de publication, qui correspond au nombre total d'octets écrits dans le sujet partagé, et pour toute sortie réseau applicable. Les abonnés à un sujet partagé sont facturés pour le débit d'abonnement, qui correspond au nombre total d'octets lus à partir de l'abonnement associé, et pour toute sortie réseau applicable. Pour plus d'informations, consultez les tarifs de Pub/Sub.

VPC Service Controls

Pour les sujets partagés 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 sujets partagés.

Étapes suivantes