Gérer les échanges de données

Vous pouvez utiliser des échanges de données dans BigQuery Sharing pour partager des ensembles de données de manière sécurisée entre des projets, des organisations ou avec le public. En tant qu'administrateur du partage BigQuery, vous pouvez effectuer les tâches suivantes :

  • Créer, mettre à jour, afficher, partager et supprimer des échanges de données.
  • Gérez les autorisations d'accès et les rôles pour les échanges de données.
  • Rendez les échanges de données accessibles au public.

Pour gérer les fiches dans un échange de données, consultez Gérer les fiches.

Par défaut, un échange de données est privé. Seuls les utilisateurs ou les groupes ayant accès à un échange peuvent afficher les fiches associées ou s'y abonner. Vous pouvez rendre votre échange de données public. Si vous rendez votre échange de données public, les utilisateursGoogle Cloud (allAuthenticatedUsers) pourront découvrir et s'abonner aux fiches.

Avant de commencer

Pour commencer à utiliser BigQuery Sharing (anciennement Analytics Hub), vous devez activer l'API Analytics Hub dans votre projet Google Cloud .

Pour activer l'API Analytics Hub, vous devez disposer des autorisations IAM (Identity and Access Management) suivantes :

  • serviceUsage.services.get
  • serviceUsage.services.list
  • serviceUsage.services.enable

Le rôle IAM prédéfini suivant inclut les autorisations dont vous avez besoin pour activer l'API Analytics Hub :

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

Console

Accédez à la page de l'API Analytics Hub et activez-la pour votre projet Google Cloud .

Activer l'API Analytics Hub

gcloud

Exécutez la commande gcloud services enable :

gcloud services enable analyticshub.googleapis.com

Rôles requis

Pour obtenir les autorisations nécessaires pour gérer les échanges de données, demandez à votre administrateur de vous accorder le rôle IAM Administrateur Analytics Hub (roles/analyticshub.admin) sur votre projet. Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.

Créer un échange de données

Vous pouvez créer un échange de données pour partager des ensembles de données avec des personnes ou des groupes spécifiques, ou avec le public. Lorsque vous créez un échange de données, vous spécifiez son projet, sa région, son nom à afficher et les paramètres facultatifs tels que la journalisation des adresses e-mail des abonnés et la détectabilité publique.

Pour créer un échange de données, procédez comme suit :

Console

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

    Accéder au partage (Analytics Hub)

  2. Cliquez sur Créer un échange.

  3. Dans la boîte de dialogue Créer un échange, sélectionnez un projet et une région pour votre échange de données. Vous ne pouvez pas modifier le projet ni la région après avoir créé l'échange de données.

  4. Dans le champ Nom à afficher, saisissez le nom de votre échange de données.

  5. Facultatif : saisissez des valeurs dans les champs suivants :

    • Contact principal : saisissez l'URL ou l'adresse e-mail du contact principal pour l'échange de données.
    • Description : saisissez une description de l'échange de données.
  6. Pour consigner les identifiants principaux de tous les utilisateurs qui exécutent des jobs et des requêtes sur les ensembles de données associés, cliquez sur le bouton Journalisation des adresses e-mail des abonnés pour l'activer. Lorsque vous activez ce paramètre, la journalisation des adresses e-mail des abonnés est activée pour toutes les futures fiches de l'échange de données. Les données enregistrées sont disponibles dans le champ job_principal_subject de la vue INFORMATION_SCHEMA.SHARED_DATASET_USAGE.

  7. Pour rendre l'échange visible par tous les internautes, cliquez sur le bouton Visibilité publique pour l'activer. Lorsqu'une place de marché est visible publiquement, toutes les fiches qu'elle contient s'affichent et peuvent faire l'objet d'une recherche dans le catalogue. Tenez compte des facteurs suivants lorsque vous activez la visibilité publique :

    • Héritage des fiches : par défaut, toutes les fiches héritent du paramètre de visibilité publique de l'échange de données. Les échanges publics ne peuvent pas comporter de fiches privées, mais les échanges privés peuvent comporter des fiches publiques. Vous pouvez configurer le type de visibilité publique au niveau de la fiche individuelle.
    • Autorisations : si vous activez la visibilité publique, configurez les autorisations d'échange pour accorder le rôle Lecteur Analytics Hub (roles/analyticshub.viewer) à allUsers ou allAuthenticatedUsers.
    • Exigences concernant le projet : le projet dans lequel vous créez l'échange de données doit être associé à une organisation et à un compte de facturation.
  8. Pour créer l'échange de données, cliquez sur Créer un échange.

  9. Facultatif : Dans la section Autorisations de l'échange, procédez comme suit :

    1. Dans les champs suivants, saisissez les adresses e-mail pour attribuer les rôles IAM (Identity and Access Management) :

    2. Pour enregistrer les autorisations, cliquez sur Définir des autorisations.

  10. Si vous n'avez pas défini d'autorisations pour votre échange de données, cliquez sur Ignorer.

API

Pour créer un échange de données, utilisez la méthode projects.locations.dataExchanges.create :

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

Remplacez les éléments suivants :

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

Dans le corps de la requête, indiquez les détails de l'échange de données.

Si la requête aboutit, le corps de la réponse contient les détails de l'échange de données.

Si vous activez la journalisation des e-mails des abonnés avec le champ logLinkedDatasetQueryUserEmail, la réponse à l'échange de données contient log_linked_dataset_query_user_email: true. Les données enregistrées sont disponibles dans le champ job_principal_subject de la vue INFORMATION_SCHEMA.SHARED_DATASET_USAGE.

Pour plus d'informations sur les tâches que vous pouvez effectuer sur des échanges de données à l'aide des API, consultez la page Méthodes projects.locations.dataExchanges.

Mettre à jour un échange de données

Vous pouvez modifier la configuration d'un échange de données existant, comme son nom à afficher, sa description, son contact principal et ses paramètres de visibilité publique. Vous ne pouvez pas modifier le projet ni la région d'un échange de données existant.

Pour mettre à jour un échange de données, procédez comme suit :

Console

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

    Accéder au partage (Analytics Hub)

  2. Dans la liste des échanges de données, sélectionnez celui que vous souhaitez mettre à jour.

  3. Cliquez sur l'onglet Détails.

  4. Cliquez sur Modifier l'échange.

  5. Dans la boîte de dialogue Modifier l'échange, mettez à jour les champs suivants :

    • Nom à afficher : saisissez un nouveau nom à afficher.
    • Contact principal : saisissez une URL ou une adresse e-mail mises à jour.
    • Description : saisissez une description mise à jour.
    • Visibilité publique : activez ou désactivez la visibilité publique.

      • Si vous activez la visibilité publique, accordez le rôle Lecteur Analytics Hub (roles/analyticshub.viewer) à allUsers ou allAuthenticatedUsers.
      • Si vous désactivez la visibilité publique, supprimez le rôle Lecteur Analytics Hub (roles/analyticshub.viewer) de allUsers ou allAuthenticatedUsers. Les échanges publics ne peuvent pas comporter de fiches privées, mais les échanges privés peuvent comporter des fiches publiques.
    • Journalisation des e-mails des abonnés : activez ou désactivez la journalisation des e-mails des abonnés.

  6. Pour appliquer vos modifications, cliquez sur Enregistrer.

API

Pour mettre à jour un échange de données, utilisez la méthode projects.locations.dataExchanges.patch :

PATCH https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATAEXCHANGE_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.
  • DATAEXCHANGE_ID : ID de votre échange de données.
  • UPDATEMASK : liste des champs à mettre à jour, séparés par une virgule (par exemple, displayName,primaryContact).

Dans le corps de la requête, spécifiez les valeurs mises à jour pour l'un des champs suivants :

  • displayName
  • description
  • primaryContact
  • documentation
  • icon
  • discoveryType
  • logLinkedDatasetQueryUserEmail

Pour en savoir plus sur ces champs, consultez Ressource : DataExchange.

Pour plus d'informations sur les tâches que vous pouvez effectuer sur des échanges de données à l'aide des API, consultez la page Méthodes projects.locations.dataExchanges.

Afficher les échanges de données

Vous pouvez afficher la liste des échanges de données dans votre projet ou votre organisation Google Cloud auxquels vous avez accès.

Pour afficher les échanges de données, procédez comme suit :

Console

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

    Accéder au partage (Analytics Hub)

  2. Dans la liste des échanges de données, affichez ceux qui sont associés à votre projetGoogle Cloud . Si vous disposez de l'autorisation resourcemanager.organizations.get, vous pouvez également afficher les échanges de données dans votre organisation Google Cloud .

API

Pour afficher les échanges de données dans votre projet, utilisez la méthode projects.locations.dataExchanges.list :

GET https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet dans lequel vous souhaitez lister les échanges de données.
  • LOCATION : emplacement pour lequel vous souhaitez répertorier les échanges de données existants.

Pour afficher les échanges de données dans votre organisation, utilisez la méthode organizations.locations.dataExchanges.list :

GET https://analyticshub.googleapis.com/v1/organizations/ORGANIZATION_ID/locations/LOCATION/dataExchanges

Remplacez les éléments suivants :

  • ORGANIZATION_ID : ID de l'organisation. Pour en savoir plus, consultez Obtenir l'ID de votre organisation.
  • LOCATION : emplacement pour lequel vous souhaitez répertorier les échanges de données existants.

Partager un échange de données

Si un éditeur BigQuery Sharing appartient à une organisation différente de celle qui contient l'échange de données, il ne peut pas parcourir ni afficher votre échange de données dans BigQuery Sharing. Pour permettre à l'éditeur d'accéder à l'échange de données, vous pouvez copier et partager un lien direct.

Pour partager un lien vers un échange de données, procédez comme suit :

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

    Accéder au partage (Analytics Hub)

  2. Dans la liste des échanges de données, recherchez celui que vous souhaitez partager, puis cliquez sur Autres options.

  3. Pour copier le lien dans le presse-papiers, cliquez sur Copier le lien de partage.

Autoriser des utilisateurs à accéder à un échange de données

Pour autoriser des utilisateurs à accéder à un échange de données, définissez la stratégie IAM pour cet échange. Pour en savoir plus sur les rôles utilisateur IAM prédéfinis, consultez Rôles IAM de partage BigQuery.

Console

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

    Accéder au partage (Analytics Hub)

  2. Cliquez sur le nom de l'échange de données pour lequel vous souhaitez définir des autorisations.

  3. Cliquez sur l'onglet Détails.

  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 l'adresse e-mail du compte principal auquel vous souhaitez accorder l'accès. Vous pouvez également utiliser allUsers pour rendre une ressource publique et accessible à tous les internautes, ou allAuthenticatedUsers pour la rendre accessible uniquement aux utilisateurs Google connectés.

  7. Dans la liste Sélectionner un rôle, pointez sur Analytics Hub, puis sélectionnez l'un des rôles IAM suivants :

    • Administrateur Analytics Hub
    • Administrateur de listes Analytics Hub
    • Éditeur Analytics Hub
    • Abonné Analytics Hub
    • Propriétaire de l'abonnement Analytics Hub
    • Lecteur Analytics Hub
  8. Cliquez sur Enregistrer.

API

  1. Pour lire la stratégie existante, utilisez la méthode projects.locations.dataExchanges.getIamPolicy :

    POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATAEXCHANGE_ID:getIamPolicy
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet, par exemple my-project-1
    • LOCATION : emplacement de votre échange de données Utilisez des lettres minuscules.
    • DATAEXCHANGE_ID : ID de l'échange de données

    Le partage BigQuery renvoie la règle actuelle.

  2. Pour ajouter ou supprimer des membres et les rôles IAM qui leur sont associés, modifiez la stratégie à l'aide d'un éditeur de texte. Utilisez le format suivant pour ajouter des membres :

    • user:test-user@gmail.com
    • group:admins@googlegroups.com
    • serviceAccount:server@example.gserviceaccount.com
    • domain:example.com

    Par exemple, pour accorder le rôle roles/analyticshub.subscriber à group:subscribers@googlegroups.com, ajoutez la liaison suivante à la stratégie :

    {
     "members": [
       "group:subscribers@googlegroups.com"
     ],
     "role":"roles/analyticshub.subscriber"
    }
    
  3. Pour définir le règlement relatif à l'échange de données, utilisez la méthode projects.locations.dataExchanges.setIamPolicy. Dans le corps de la requête, indiquez la stratégie IAM mise à jour de l'étape précédente :

    POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATAEXCHANGE_ID:setIamPolicy
    

Créer des administrateurs du partage BigQuery

Pour déléguer la gestion des échanges de données, vous pouvez créer des administrateurs d'échanges de données en attribuant aux utilisateurs le rôle Administrateur Analytics Hub (roles/analyticshub.admin) au niveau du projet ou de l'échange de données.

Rendre un échange de données public

Par défaut, un échange de données est privé. Seuls les utilisateurs ou les groupes ayant accès à un échange peuvent afficher les fiches associées ou s'y abonner. Vous pouvez rendre un échange de données public, ce qui permet aux utilisateursGoogle Cloud (allAuthenticatedUsers) de découvrir ses fiches et de s'y abonner.

Pour rendre un échange de données public, procédez comme suit :

  1. Pour permettre à allAuthenticatedUsers d'afficher des fiches, accordez-lui le rôle Lecteur Analytics Hub (roles/analyticshub.viewer) au niveau de l'échange de données.

  2. Pour permettre à allAuthenticatedUsers de s'abonner aux fiches, accordez-lui le rôle Abonné Analytics Hub (roles/analyticshub.subscriber) au niveau de l'échange de données.

  3. Lorsque vous créez ou mettez à jour un échange de données, cliquez sur le bouton Visibilité publique pour l'activer.

Supprimer un échange de données

Lorsque vous supprimez un échange de données, toutes les fiches qu'il contient sont également supprimées. Les ensembles de données partagés et associés ne sont pas supprimés. La suppression d'un projet n'entraîne pas la suppression automatique de ses échanges de données. Vous devez donc supprimer tous les échanges de données avant de fermer le projet. Vous ne pouvez pas annuler la suppression d'un échange de données.

Avant de supprimer un échange de données, remplissez les conditions préalables suivantes en fonction de la configuration de l'échange de données :

Pour supprimer un échange de données, procédez comme suit :

Console

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

    Accéder au partage (Analytics Hub)

  2. Dans la liste des échanges de données, sélectionnez celui que vous souhaitez supprimer.

  3. Cliquez sur l'onglet Détails.

  4. Cliquez sur Supprimer l'échange.

  5. Dans la boîte de dialogue Supprimer l'échange ?, confirmez la suppression en saisissant delete.

  6. Pour supprimer définitivement l'échange de données, cliquez sur Supprimer.

API

Pour supprimer un échange de données, utilisez la méthode projects.locations.dataExchanges.delete :

DELETE https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATAEXCHANGE_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 régions compatibles avec le partage BigQuery, consultez Régions où le service est disponible.
  • DATAEXCHANGE_ID : ID de votre échange de données.

Pour plus d'informations sur les tâches que vous pouvez effectuer sur des échanges de données à l'aide des API, consultez la page Méthodes projects.locations.dataExchanges.

Étapes suivantes