BigQuery est un entrepôt de données analytiques à l'échelle du pétaoctet que vous pouvez utiliser pour exécuter des requêtes SQL sur de grandes quantités de données, presque en temps réel.
En créant une vue autorisée dans BigQuery, vous permettez à cette vue d'accéder à un ensemble de données. Une vue autorisée vous permet de partager des résultats de requête avec des utilisateurs et des groupes particuliers sans leur donner accès aux tables sous-jacentes. Vous pouvez également utiliser la requête SQL de la vue pour limiter les colonnes (champs) que les utilisateurs peuvent interroger. Dans ce tutoriel, vous allez créer une vue autorisée.
Objectifs
Ce guide vous explique comment effectuer les tâches suivantes :
- Créer des ensembles de données et leur appliquer des contrôles d'accès
- Attribuer des contrôles d'accès à votre projet
- Créer une vue autorisée restreignant les données que les utilisateurs peuvent interroger
Coûts
BigQuery est un produit payant. Des coûts d'utilisation vous seront donc facturés dans le cadre de ce tutoriel. BigQuery offre des ressources gratuites jusqu'à une limite spécifique. Pour en savoir plus, consultez la section Opérations et versions gratuites de BigQuery.
Avant de commencer
Avant de commencer ce tutoriel, créez ou sélectionnez un projet à l'aide de Google Cloud Console.
- Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
- BigQuery est automatiquement activé dans les nouveaux projets.
Pour activer BigQuery dans un projet préexistant, accédez à
Activez l'API BigQuery
. - Facultatif : Activez la facturation pour le projet. Les étapes décrites dans ce document demeurent valables, même si vous ne souhaitez pas activer la facturation ou fournir une carte de crédit. BigQuery fournit un bac à sable permettant d'accomplir les étapes. Pour en savoir plus, consultez la page Activer le bac à sable BigQuery.
Créer un ensemble de données source
Commencez par créer un ensemble de données pour y stocker les données sources. Pour ce tutoriel, vous allez remplir une table de votre ensemble de données source en interrogeant l'ensemble de données public GitHub. L'ensemble de données source contient des informations que les analystes de données ne doivent pas voir. Vous utilisez donc une vue autorisée pour restreindre l'accès aux données.
Pour créer votre ensemble de données source :
Console
Dans la console Google Cloud, ouvrez la page "BigQuery".
Dans le panneau Explorateur, sélectionnez le projet dans lequel vous souhaitez créer l'ensemble de données.
Développez l'option
Actions, puis cliquez sur Créer un ensemble de données.Dans le champ ID de l'ensemble de données, saisissez
github_source_data
.Ne modifiez aucun autre paramètre par défaut et cliquez sur Créer un ensemble de données.
SQL
Utilisez l'instruction LDD CREATE SCHEMA
:
Dans la console Google Cloud, accédez à la page BigQuery.
Dans l'éditeur de requête, saisissez l'instruction suivante :
CREATE SCHEMA github_source_data;
Cliquez sur
Exécuter.
Pour en savoir plus sur l'exécution des requêtes, consultez Exécuter une requête interactive.
Java
Avant d'essayer cet exemple, suivez les instructions de configuration pour Java du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Java.
Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
Python
Avant d'essayer cet exemple, suivez les instructions de configuration pour Python du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Python.
Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
Une fois l'ensemble de données source créé, remplissez une table via une requête SQL. Cette requête extrait des données de l'ensemble de données public GitHub.
Console
Dans la console Google Cloud, ouvrez la page "BigQuery".
Copiez et collez la requête suivante dans le volet Éditeur.
SELECT commit, author, committer, repo_name FROM `bigquery-public-data.github_repos.commits` LIMIT 1000;
Cliquez sur Plus et sélectionnez Paramètres de requête.
Destination : sélectionnez Définir une table de destination pour les résultats de la requête.
Dans le champ Dataset, saisissez
PROJECT_ID.github_source_data
. Remplacez PROJECT_ID par l'ID de votre projet.Dans le champ ID de table, saisissez
github_contributors
.Cliquez sur Enregistrer.
Cliquez sur Exécuter.
Une fois la requête exécutée, cliquez sur github_contributors puis sur Aperçu pour vérifier que les données ont bien été écrites dans la table.
Java
Avant d'essayer cet exemple, suivez les instructions de configuration pour Java du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Java.
Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
Python
Avant d'essayer cet exemple, suivez les instructions de configuration pour Python du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Python.
Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
Créer un ensemble de données dans lequel stocker la vue
Après avoir créé votre ensemble de données source, vous allez créer un ensemble de données distinct pour stocker la vue autorisée que vous partagerez avec vos analystes de données. Plus tard, vous accorderez à la vue autorisée l'accès aux données de l'ensemble de données source. Vos analystes de données pourront accéder à la vue autorisée, mais pas aux données sources.
Les vues autorisées doivent être créées dans un ensemble de données différent de celui des données sources. De cette façon, les propriétaires de données peuvent autoriser les utilisateurs à accéder à la vue autorisée sans accorder simultanément l'accès aux données sous-jacentes. L'ensemble de données des données source et l'ensemble de données de la vue autorisée doivent se trouver dans le même emplacement régional.
Pour créer un ensemble de données dans lequel stocker votre vue :
Console
Dans la console Google Cloud, ouvrez la page "BigQuery".
Dans le panneau Explorer, sélectionnez le projet dans lequel vous souhaitez créer l'ensemble de données.
Développez l'option
Actions, puis cliquez sur Créer un ensemble de données.Dans le champ ID de l'ensemble de données, saisissez
shared_views
.Ne modifiez aucun autre paramètre par défaut et cliquez sur Créer un ensemble de données.
SQL
Utilisez l'instruction LDD CREATE SCHEMA
:
Dans la console Google Cloud, accédez à la page BigQuery.
Dans l'éditeur de requête, saisissez l'instruction suivante :
CREATE SCHEMA shared_views;
Cliquez sur
Exécuter.
Pour en savoir plus sur l'exécution des requêtes, consultez Exécuter une requête interactive.
Java
Avant d'essayer cet exemple, suivez les instructions de configuration pour Java du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Java.
Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
Python
Avant d'essayer cet exemple, suivez les instructions de configuration pour Python du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Python.
Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
Créer la vue dans le nouvel ensemble de données
Dans le nouvel ensemble de données, créez la vue que vous souhaitez autoriser. Il s'agit de la vue que vous partagerez avec vos analystes de données. Cette vue est créée à l'aide d'une requête SQL qui exclut les colonnes que les analystes de données ne doivent pas voir.
Dans ce tutoriel, votre vue partagée exclut les informations de l'auteur excepté son nom, ainsi que celles du validateur excepté son nom.
Pour créer cette vue dans le nouvel ensemble de données :
Console
Dans la console Google Cloud, ouvrez la page "BigQuery".
Copiez et collez la requête suivante dans le volet Éditeur. Remplacez
PROJECT_ID
par l'ID du projet.SELECT commit, author.name AS author, committer.name AS committer, repo_name FROM `PROJECT_ID.github_source_data.github_contributors`;
Cliquez sur Enregistrer > Enregistrer la vue.
Dans la boîte de dialogue Enregistrer la vue :
- Pour le champ Projet, vérifiez que votre projet est sélectionné.
- Dans le champ Ensemble de données, saisissez
shared_views
. - Pour Table, saisissez
github_analyst_view
. - Cliquez sur Enregistrer.
SQL
Utilisez l'instruction LDD CREATE VIEW
:
Dans la console Google Cloud, accédez à la page BigQuery.
Dans l'éditeur de requête, saisissez l'instruction suivante :
CREATE VIEW shared_views.github_analyst_view AS ( SELECT commit, author.name AS author, committer.name AS committer, repo_name FROM `PROJECT_ID.github_source_data.github_contributors` );
Remplacez
PROJECT_ID
par l'ID du projet.Cliquez sur
Exécuter.
Pour en savoir plus sur l'exécution des requêtes, consultez Exécuter une requête interactive.
Java
Avant d'essayer cet exemple, suivez les instructions de configuration pour Java du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Java.
Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
Python
Avant d'essayer cet exemple, suivez les instructions de configuration pour Python du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Python.
Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
Attribuer un rôle IAM au niveau du projet à vos analystes de données
Pour interroger la vue, vos analystes de données doivent être autorisés à exécuter des tâches de requête. Le rôle bigquery.user
fournit des autorisations permettant d'exécuter des tâches, y compris des requêtes, dans le projet. Si vous attribuez à un utilisateur ou à un groupe d'utilisateurs le rôle bigquery.user
au niveau du projet, chacun de ces utilisateurs pourra créer des ensembles de données et exécuter des tâches de requête sur les tables de ces ensembles de données. Le rôle bigquery.user
n'autorise pas un utilisateur à interroger les données, à afficher les données des tables ni à consulter les détails des schémas de table pour les ensembles de données qu'il n'a pas créés.
Le fait d'attribuer le rôle bigquery.user
au niveau du projet à vos analystes de données n'autorise pas ces derniers à afficher ou interroger les données des tables qui se trouvent dans l'ensemble de données contenant les tables interrogées par la vue. Le rôle bigquery.user
ne permet pas non plus aux utilisateurs de mettre à jour vos vues.
Il est recommandé d'attribuer le rôle bigquery.user
au niveau du projet à la plupart des collaborateurs d'une entreprise (data scientists, analystes d'informatique décisionnelle et analystes de données).
Lorsque vous ajoutez un groupe à un rôle IAM, l'adresse e-mail et le domaine doivent être associés à un compte Google ou Google Apps actif.
Pour attribuer au groupe d'analystes de données le rôle bigquery.user
au niveau du projet, procédez comme suit :
Console
Ouvrez la page "IAM" dans Google Cloud Console.
Assurez-vous que votre projet est sélectionné dans le sélecteur de projet de la barre supérieure.
Cliquez sur
Accorder l'accès.Dans la boîte de dialogue Accorder l'accès à :
- Dans la zone Comptes principaux, saisissez le groupe contenant vos analystes de données (par exemple,
data_analysts@example.com
). - Dans la case Sélectionner un rôle, recherchez le rôle Utilisateur BigQuery et sélectionnez-le.
- Cliquez sur Enregistrer.
- Dans la zone Comptes principaux, saisissez le groupe contenant vos analystes de données (par exemple,
Attribuer des contrôles d'accès à l'ensemble de données contenant la vue
Pour que vos analystes de données puissent interroger la vue, ils doivent disposer du rôle bigquery.dataViewer
sur l'ensemble de données contenant la vue. Le rôle bigquery.user
accorde à vos analystes les autorisations requises pour créer des tâches de requête. Cependant, ils ne peuvent pas interroger la vue, sauf s'ils disposent également d'un accès bigquery.dataViewer
à l'ensemble de données qui la contient.
Pour accorder à vos analystes de données l'accès bigquery.dataViewer
à l'ensemble de données :
Console
Dans la console Google Cloud, ouvrez la page "BigQuery".
Dans le volet Explorateur, sélectionnez l'ensemble de données
shared_views
.Cliquez sur > Autorisations.
PartageDans le volet Autorisations, cliquez sur Ajouter un compte principal.
Dans la zone Comptes principaux, saisissez le groupe contenant vos analystes de données (par exemple,
data_analysts@example.com
).Cliquez sur Sélectionner un rôle et sélectionnez BigQuery > Lecteur de données BigQuery.
Cliquez sur Enregistrer.
Cliquez sur Fermer.
Java
Avant d'essayer cet exemple, suivez les instructions de configuration pour Java du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Java.
Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
Python
Avant d'essayer cet exemple, suivez les instructions de configuration pour Python du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Python.
Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
Autoriser la vue à accéder à l'ensemble de données source
Une fois que vous avez créé des contrôles d'accès pour l'ensemble de données contenant la vue, ajoutez la vue en tant que vue autorisée dans l'ensemble de données source. Cette autorisation permet à la vue, mais pas à votre groupe d'analystes de données, d'accéder aux données sources.
Pour autoriser la vue à accéder aux données source :
Console
Dans la console Google Cloud, ouvrez la page "BigQuery".
Dans le volet Explorateur, sélectionnez l'ensemble de données
github_source_data
.Cliquez sur
Partage, puis sélectionnez Autoriser les vues.Dans le volet Vues autorisées qui s'affiche, saisissez la vue
github_analyst_view
dans le champ Vues autorisées.Cliquez sur Ajouter une autorisation.
La vue github_analyst_view
est maintenant autorisée à accéder aux données de l'ensemble de données source.
Java
Avant d'essayer cet exemple, suivez les instructions de configuration pour Java du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Java.
Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
Python
Avant d'essayer cet exemple, suivez les instructions de configuration pour Python du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Python.
Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
Vérifier la configuration
Une fois la configuration effectuée, un membre de votre groupe d'analystes de données (par exemple, data_analysts
) peut la vérifier en interrogeant la vue.
Pour vérifier la configuration :
SQL
Demandez à un membre de votre groupe d'analystes de données d'effectuer les opérations suivantes :
Dans la console Google Cloud, accédez à la page BigQuery.
Dans l'éditeur de requête, saisissez l'instruction suivante :
SELECT * FROM `PROJECT_ID.shared_views.github_analyst_view`;
Remplacez
PROJECT_ID
par l'ID du projet.Cliquez sur
Exécuter.
Pour en savoir plus sur l'exécution des requêtes, consultez Exécuter une requête interactive.
Code source complet
Voici le code source complet du tutoriel à titre de référence.
Java
Avant d'essayer cet exemple, suivez les instructions de configuration pour Java du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Java.
Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
Python
Avant d'essayer cet exemple, suivez les instructions de configuration pour Python du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Python.
Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
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.
- Dans la console Google Cloud, accédez à la page Gérer les ressources.
- Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer.
- Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez sur Arrêter pour supprimer le projet.
Étape suivante
- Consultez la section Rôles et autorisations prédéfinis pour en savoir plus sur le contrôle des accès dans BigQuery.
- Consultez la page Présentation des vues pour en savoir plus sur les vues BigQuery.
- Pour en savoir plus sur les vues autorisées, consultez la section Créer une vue autorisée.
- Consultez la page de présentation d'IAM pour découvrir les concepts de base d'IAM.
- Consultez la page sur la gestion des stratégies pour apprendre à gérer le contrôle des accès.